Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_ИСУ (2).doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
6.53 Mб
Скачать

43. Обратное распространение ошибки. Обновление весовых коэф-в скрытых слоев. Локальные градиенты.

Метод обратного распространения ошибки представляет собой популярную процедуру обучения многослойного персептрона. Он основан на дельта-правиле и использует критерий качества обучения (сумму квадратов ошибок ej=dj-yj) (5) для нейронов выходного слоя. Этот критерий есть сумма квадратов ошибок, получаемых на выходе каждого нейрона выходного слоя. Весовой коэффициент передачи сигнала от p-го нейрона предыдущего слоя к q-му нейрону последующего слоя обновляется в соответствии с обобщенным дельта-правилом (6)

Чтобы обозначения были более понятными, мы опустили индекс обучающего образца k; очевидно, что уравнение (6) является рекуррентным, т.е. в его левой части представляет новое значение весового коэффициента, в то время как в правой части является прежним весом. Здесь - параметр скорости обучения. В обобщенном дельта-правиле корректировка весового коэффициента пропорциональна градиенту ошибки / , другими словами, чувствительности критерия качества к изменению весового коэффициента. Чтобы применить данный алгоритм, необходимы два цикла вычислений, прямое распространение и обратное распространение. В прямом цикле вычислений веса остаются неизменными. Прямое распространение сигнала начинается в последнем скрытом слое, ведя счет от выходного слоя, путем подачи на его вход образцового входного векторного сигнала и заканчивается в выходном слое после вычисления сигнала ошибки (разности между образцовым выходным сигналом и выходным сигналом нейрона) для каждого нейрона выходного слоя. Обратное распространение сигнала начинается в выходном слое и продолжается путем распространения сигнала ошибки назад справа налево через всю сеть, слой за слоем. Для описания алгоритма обратного распространения сигнала ошибки предположим, что jй нейрон является нейроном выходного слоя (рис. 7). На рис. 7 показаны в явном виде связи между нейроном j выходного слоя, нейроном i скрытого слоя 1, нейроном r скрытого слоя 2 и нейроном s скрытого слоя 3.

Найдем формулу для обновления коэффициентов первого скрытого слоя

(9). Ошибка j-го нейрона выходного слоя связана с желаемым выходом и очевидно, что = - . Для i-го нейрона первого скрытого слоя в соответствии с методом обратного распространения ошибки мы должны использовать ошибку , т.к. она по аналогии с (7) должна входить в первые две частные производные для . Однако возникает проблема, обусловленная тем обстоятельством, что такая ошибка неизвестна для нейронов скрытого слоя. Чтобы преодолеть эту трудность, определим произведение упомянутых производных непосредственно (10). Частная производная от по выходу i-го нейрона первого скрытого слоя, с учетом (5) прямо связанная с выходом j-го нейрона выходного слоя, определяется как

(11) (12) (13) (14). Для получения последнего результата принято во внимание, что в соответствии с (4с) ,(4c),где m1 число нейронов первого скрытого слоя. Используя цепное правило дифференцирования с учетом (14) и (17), где m2 число нейронов второго скрытого слоя, запишем производную

.(15). При этом c помощью дельта-правила (9) и (8а) получаем формулу для обновления коэффициентов первого скрытого слоя (16)

где (16а).Здесь i – номер нейрона первого скрытого слоя, r – номер нейрона второго скрытого слоя, предшествующего первому скрытому слою (считая справа налево), j – номер нейрона выходного слоя. Множитель зависит лишь от активационной функции i –го нейрона первого скрытого слоя и . Значения содержат весовые коэффициенты, связанные с нейронами выходного слоя. Наконец, есть выход r –го нейрона второго скрытого слоя и этот выход появляется в выражении для в результате вычисления производной / , т.к. внутренний вход i-го нейрона равен .(17). Как видим, операция суммирования по j требует знания ошибок для всех нейронов выходного слоя посредством . Это говорит о том, что как бы ошибка = - , имеющая место на выходе нейронной сети, «переместилась назад» с выходного слоя на первый скрытый слой.Для s-го нейрона следующего второго скрытого слоя, предшествующего первому скрытому слою, правило обновления применяется рекуррентно по аналогии с (16) и (16а): (17а). Здесь ошибка = - фигурирует в посредством и теперь имеет место перемещение этой ошибки с первого скрытого слоя на второй скрытый

слой. В общем, коррекция (обновление) весового коэффициента , связывающего вход p –го нейрона данного слоя с выходом q – го нейрона предшествующего слоя, определяется как

(18).Здесь - параметр скорости обучения, - называется локальным градиентом [сравните с (8), (16) и (17а)] и - входной сигнал q –го нейрона.

Локальный градиент вычисляется рекуррентно для каждого нейрона и его выражение зависит от того, где расположен нейрон в выходном или скрытом слое:

  1. Если q – й нейрон принадлежит выходному слою, то согласно (8а)

(19). Оба сомножителя в произведении относятся к q –му нейрону.

2.Если q – й нейрон расположен в k–ом скрытом слое (рис. 8), то согласно (17а) при замене r на q , 2 на k, 1 на k-1 и i на r, получаем , (20),где H число скрытых слоев в нейронной сети, mk-1 - число нейронов (k-1)-го скрытого слоя .

Как видим, представляет собой взвешенную сумму локальных градиентов нейронов, расположенных в (k-1)-ом слое, непосредственно предшествующем k-ому скрытому слою (считая, справа налево), причем и вычисляется по формуле (19), а , m0=m. Так при k=1 что совпадает с (16а) при замене r на j и q на i. Весовые коэффициенты связей, питающих выходной слой, обновляются за счет использования дельта-правила (18), в котором локальный градиент определяется по выражению (19). Вычислив для всех нейронов выходного слоя, мы затем используем (20), чтобы найти локальные градиенты для всех нейронов следующего слоя и изменить все весовые коэффициенты связей, питающих этот слой. Чтобы можно было вычислить для каждого нейрона, активационная функция всех нейронов должна быть дифференцируемой.

Алгоритм. Алгоритм обратного распространения включает пять шагов.

а) Инициализация весовых коэффициентов. Установите все весовые коэффициенты равными небольшим случайным числам.

б) Предъявление входов и соответствующих им желаемых выходов (обучающие пары). Подаем на нейронную сеть вектор входа u и соответствующий желаемый вектор выхода d. Вход может быть новым в каждой новой попытке обучения или образцы из обучающего множества могут подаваться на сеть циклически до тех пор, пока весовые коэффициенты не стабилизируются, т.е. перестанут изменяться.

в) Вычисление действительных значений выхода. Вычисляем вектор выхода последовательно используя выражение , где f есть вектор активационных функций.

г) Настройка весовых коэффициентов. Начинаем настройку с весов выходного слоя и затем идем назад к последнему скрытому слою (считая справа налево). Весовые коэффициенты настраиваем с помощью

.(21). В этом уравнении есть весовой коэффициент соединения, связывающего нейрон p скрытого слоя с нейроном q следующего слоя, - выход нейрона p (или внешний вход для нейрона q), есть параметр скорости обучения и - градиент. Если нейрон q является нейроном выходного слоя, то вычисляется с помощью (19) и если нейрон q является нейроном скрытого слоя, то определяется с помощью (20) . Ускорение сходимости можно иногда обеспечить, если добавить значение момента.Замечание. Для пакетного режима обработки дельта-правило (6) модифицируется

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