Обучение алгоритмом обратного распространения ошибки предполагает два прохода по всем слоям сети: прямого и обратного.
При прямом проходе входной вектор подается на входной слой нейронной сети, после чего распространятся по сети от слоя к слою. В результате генерируется набор выходных сигналов, который и является фактической реакцией сети на данный входной образ. Во время прямого прохода все синаптические веса сети фиксированы.
Во время обратного прохода все синаптические веса настраиваются в соответствии с правилом коррекции ошибок, а именно: фактический выход сети вычитается из желаемого, в результате чего формируется сигнал ошибки. Этот сигнал впоследствии распространяется по сети в направлении, обратном направлению синаптических связей. Отсюда и название – алгоритм обратного распространения ошибки. Синаптические веса настраиваются с целью максимального приближения выходного сигнала сети к желаемому.
Алгоритм обучения по дельта-правилу:
1 шаг: инициализация матриц весов случайным образом (в циклах).
|
|
2 шаг: предъявление нейронной сети образа (на вход подаются значения из обучающей выборки – вектор Х) и берется соответствующий выход (вектор D).
3 шаг (прямой проход): вычисление в циклах выходов всех слоев и получение выходных значений нейронной сети (вектор Y).
где - выход i-нейрона k-слоя, - функция активации, - синаптическая связь между j-нейроном слоя k-1 и i-нейроном слоя k, - входное значение.
4 шаг (обратный проход): изменение весов в циклах по формулам:
для последнего (выходного) слоя,
-
для промежуточных слоев, где t-номер текущей итерации цикла обучения (номер эпохи), - коэффициент обучения задается от 0 до 1, - выход i-нейрона k-слоя,
- синаптическая связь между j-нейроном слоя k-1 и i-нейроном слоя k, di – желаемое выходное значение на i-нейроне, yi - реальное значение на i-нейроне выходного слоя.
5 шаг: проверка условия продолжения обучения (вычисление значения ошибки и/или проверка заданного количества итераций). Если обучение не завершено, то 2 шаг, иначе заканчиваем обучение. Среднеквадратичная ошибка вычисляется следующим образом:
где Q – общее число примеров, H - количество нейронов в выходном слое, di – желаемое выходное значение на i-нейроне, yi - реальное значение на i-нейроне выходного слоя.