Алгоритм обратного распространения ошибки

Дельта – правило, которое применяется при обучении персептрона, использует величину ошибки выходного слоя. Если же сеть имеет два или больше слоев, то для промежуточных слоев значения ошибки в явном виде не существует, и использовать дельта – правило нельзя.

Основная идея обратного распространения состоит в том, как получить оценку ошибки для нейронов скрытых слоев. Заметим, что известные ошибки, делаемые нейронами выходного слоя, возникают вследствие неизвестных ошибок нейронов скрытых слоев. Чем больше значение синаптической связи между нейроном скрытого слоя и выходным нейроном, тем сильнее ошибка первого влияет на ошибку второго. Следовательно, оценку ошибки элементов скрытых слоев можно получить, как взвешенную сумму ошибок последующих слоев.

Алгоритм обратного распространения ошибки (АОРО), являющийся обобщением дельта – правила, позволяет обучать ИНС ПР с любым количеством слоев. Можно сказать, что АОРО фактически использует разновидность градиентного спуска, перестраивая веса в направлении минимума ошибки.

При использовании АОРО предполагается, что в качестве активационной используется сигмоидная функция. Эта функция позволяет экономить вычислительные затраты, поскольку имеет простую производную:

.

Сигмоидная функция ограничивает значением 1 сильные сигналы и усиливает слабые сигналы.

Смысл алгоритма обратного распространения ошибки состоит в том, что при обучении сначала сети предъявляется образ, для которого вычисляется ошибка выхода. Далее эта ошибка распространяется по сети в обратном направлении, изменяя веса межнейронных связей.

Алгоритм включает такую же последовательность действий, как и при обучении персептрона. Сначала веса межнейронных связей получают случайные значения, затем выполняются следующие шаги:

1) Выбирается обучающая пара (X, Z*), X подается на вход;

2) Вычисляется выходсети Z = F (Y);

3) Рассчитывается ошибка выхода E;

4) Веса сети корректируются с целью минимизации ошибки;

5) Возврат к п.п. 1 и так далее, пока не будет минимизирована ошибка по всем обучающим парам.

Шаги 1 и 2 - это прямое распространение по сети, а 3 и 4 - обратное.

Перед обучением необходимо разбить имеющиеся пары «вход – выход» на две части: обучающие и тестовые.

Тестовые пары используются для проверки качества обучения – НС хорошо обучена, если выдает при заданной тестовой парой входе выход, близкий к тестовому.

При обучении возможна ситуация, когда НС показывает хорошие результаты для обучающих данных, но плохие – для тестовых данных. Здесь могут быть две причины:

1. Тестовые данные сильно отличаются от обучающих, т.е. обучающие пары охватывали не все области входного пространства.

2. Возникло явление «переобучения» (overfitting), когда поведение НС оказывается более сложным, чем решаемая задача.

Последний случай для задачи аппроксимации функции по точкам иллюстрирует рис. 3.3, где белые кружки обозначают тестовые данные, а темные – обучающие данные.

 
 


а) б)

Рисунок 3.3. Иллюстрация явления переобучения.

На рисунке 3.3 сплошная линия обозначает выход НС для произвольного входа из области определения Х. График 3.3(а) соответствует хорошо обученной НС, а график 3.3б – переобученной.

Рассмотрим для простоты изложения двухслойную ИНС ПР, в которой веса скрытого слоя описываются вектором W, а веса выходного слоя – вектором V (рис. 3.4).

 
 


Рисунок 3.4. Двухслойная ИНС ПР.

Классический градиентный метод поиска минимума функции f (X), где X – вектор, состоит в изменении аргумента в направлении антиградиента:

.

Для выходного слоя можно записать:

.

Таким образом, вес v jk, связывающий j - й нейрон скрытого слоя и k - й нейрон выходного слоя, корректируется по формуле:

.

Ошибка выхода может быть описана следующим образом:

.

Очевидно, что E явным образом не зависит от V, но для получения производной можно использовать правила дифференцирования сложной функции:

,

где u j – выход j – го нейрона скрытого слоя ().

Таким образом, формула для коррекции весов выходного слоя приобретает вид:

.

Рассмотрим далее коррекцию весов скрытого слоя. Здесь используется формула:

.

Выход нейрона скрытого слоя описывается формулой:

.

По аналогии с формулой для выходного слоя можно записать:

,

Однако величина ошибки для скрытого слоя Dj не задана, т. е. неясно, каким должен быть эталонный выход скрытого слоя. В тоже время, очевидно, что ошибки выходного слоя зависят от ошибки скрытого слоя ИНС, и это влияние тем больше, чем больше вес связи между нейроном скрытого слоя и выходным нейроном. Таким образом, оценку ошибки нейрона скрытого слоя можно получить, как взвешенную сумму ошибок выходного слоя (рис. 3.5).


Рисунок 3.5. Обратное распространение ошибки.

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

Достоинство АОРО заключается в том, что он обобщается для ИНС ПР с любым количеством слоев.

Алгоритм обратного распространения ошибки нашел применение в ряде прикладных разработок. Особенно впечатляющие успехи достигнуты при распознавании печатных букв, где эффективность алгоритма близка к 100%. Однако применение АОРО в других задачах может быть затруднено ввиду причин, характерных для градиентных алгоритмов минимизации:

- при больших значениях сигмоидной функции ее производная становится весьма малой, и процесс обучения замедляется;

- поверхность ошибки сложной сети может иметь локальные минимумы, обнаружив которые сеть перестанет улучшать свое поведение.

Работу АОРО можно улучшить, если учитывать вторые производные активационной функции.

Ускорение работы алгоритма можно добиться при использовании переменной скорости обучения η. В начале работы АОРО ее величина имеет значение, близкое к 1, а затем последовательно примерно до 0.01. Это позволяет быстро подойти к окрестности минимума, а затем точно попасть в него.

Однако локальность АОРО является принципиальным ограничением его использования. Если функция ошибки имеет сложный характер, то требуется использовать методы случайного поиска. Тем не менее, АОРО может быть успешно применен во многих практических задачах, некоторые из которых рассмотрены ниже.


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



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