Обучение сети

Для обучения сети Элмана могут быть использованы как процедура адаптации, так
и процедура обучения, реализуемые с помощью функций adapt и train соответственно.

В процессе процедуры адаптации на каждом шаге выполняются следующие действия:

· моделирование сети при подаче полного набора векторов входа и вычисление ошибки сети;

· вычисление приближенного градиента функционала ошибки относительно весов
и смещений методом обратного распространения ошибки;

· настройка весов с использованием функции настройки, выбираемой пользователем; рекомендуется функция learngdm.

В процессе процедуры обучения на каждом цикле выполняются следующие действия:

· моделирование сети при подаче последовательности входных сигналов, сравнение
с целевыми выходами и вычисление ошибки;

· вычисление приближенного градиента функционала ошибки относительно весов
и смещений методом обратного распространения ошибки;

· настройка весов с использованием функции настройки, выбираемой пользователем; рекомендуется функция traingdx.

Сети Элмана не обеспечивают высокой точности решения, поскольку присутствие обратной связи в рекуррентном слое не позволяет вычислить точно градиент функционала.

В дальнейшем для обучения сети Элмана используется М-функция train. Ее входными аргументами являются обучающие последовательности Pseq и Tseq, в качестве метода обучения используется метод обратного распространения ошибки с возмущением и адаптацией параметра скорости настройки. Количество циклов обучения принимается равным 1000, периодичность вывода результатов – 20 циклов, конечная погрешность обучения – 0.01:

net.trainParam.epochs = 1000;

net.trainParam.show = 25;

net.trainParam.goal = 0.01;

[net,tr] = train(net,Pseq,Tseq);

После 500 циклов обучения получим следующий график ошибки (рис. 8.2).

Рис. 8.2

Требуемая точность обучения обеспечивается за 728 циклов. Теперь можно проверить работу сформированной сети.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: