Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.09.2026
Размер:
6 Мб
Скачать
Нам удалось успешно описать распространение сигналов по нейронной сети, т.е. определить величину выходных сигналов при заданных величинах входных сигналов.
Наш следующий шаг заключается в сравнении выходных сигналов нейронной сети с данными тренировочного примера для определения ошибки. Нам необходимо знать величину этой ошибки, чтобы можно было улучшить выходные результаты путем изменения параметров сети.
Корректировка весовых коэффициентов в
процессе обучения нейронной сети
Ранее мы улучшали поведение простого линейного классификатора путем регулирования параметра наклона линейной функции узла. Мы делали это, руководствуясь текущей величиной ошибки, т.е. разности между ответом, вырабатываемым узлом, и известным нам истинным значением. Ввиду простоты соотношения между величинами ошибки и поправки это было несложно. Как нам обновлять весовые коэффициенты связей в случае, если выходной сигнал и его ошибка формируются за счет вкладов более чем одного узла?
1
???
w
w
2
1,1
2,1
=3,0
ВыходнаяB
1
ошибка
=1,0
???
Когда на выходной узел поступал сигнал только от одного узла, все было намного проще. Но как использовать ошибку выходного сигнала при наличии двух входных узлов?
Использовать всю величину ошибки для обновления только одного весового коэффициента не представляется разумным, поскольку при этом полностью игнорируются другая связь и ее вес. Но ведь величина ошибки определяется вкладами всех связей, а не только одной.
Один из возможных способов состоит в том, чтобы распределить ошибку поровну между всеми узлами, вносящими вклад, как показано на диаграмме.
1/2 ошибки?
1
2
w
w
1,1
2,1
=3,0
ВыходнаяB
1
ошибка
=1,0
1/2 ошибки?
Суть другой идеи также заключается в том, чтобы распределять ошибку между узлами, однако это распределение не обязано быть равномерным. Вместо этого
большая доля ошибки приписывается вкладам тех связей,
которые имеют больший вес. Почему? Потому что они оказывают большее влияние на величину ошибки.
1
2
w
w
1,1
2,1
3/4 ошибки?
=3,0
ВыходнаяB
1
ошибка
=1,0
1/4 ошибки?
В данном случае сигнал, поступающий на выходной узел, формируется за счет двух узлов. Весовые коэффициенты связей равны 3,0 и 1,0. Распределив ошибку между двумя узлами пропорционально их весам, вы увидите, что для обновления значения первого, большего веса следует использовать 3/4 величины ошибки, тогда как для обновления значения второго, меньшего веса — 1/4.
Мы можем расширить эту идею на случаи с намного большим количеством узлов. Если бы выходной узел был связан со ста входными узлами, мы распределили бы выходную ошибку между всеми ста связями пропорционально их вкладам, размер которых определяется весами соответствующих связей. Мы используем веса для распространения ошибки в обратном направлении — от выходного слоя вглубь сети.
Этот метод называется обратным распространением ошибки (обратной связью) в процессе обучения нейронной сети.
Обратное распространение ошибок от большего
количества выходных узлов
На диаграмме отображена простая сеть с двумя входными узлами, но на этот раз с двумя выходными узлами.
i
1
входы
i
2
1
2
w
w
1,1
2,2
w
w
2,1
1
,2
1
2
о
1
выходы входные ошибки
о
2
е
е
1
2
Ошибка может формироваться на обоих узлах — фактически эта ситуация очень похожа на ту, которая возникает, когда сеть еще не обучалась. Вы видите, что для коррекции весов внутренних связей нужна информация об ошибках в обоих узлах. Мы можем использовать прежний подход и распределять ошибку выходного узла между связанными с ним узлами пропорционально весовым коэффициентам соответствующих связей. В действительности тот факт, что сейчас имеется более чем один выходной узел, ничего не меняет. Мы просто повторяем для второго узла те же действия, которые уже выполняли для первого. Эта простота объясняется тем, что связи одного выходного узла не зависят от связей другого. Между этими двумя наборами связей отсутствует какая-либо зависимость.
Вернемся к диаграмме, на которой ошибка на первом выходном узле обозначена как e1. Не забывайте, что это разность между желаемым значением, предоставляемым тренировочными данными t1, и фактическим выходным значением o1. Таким образом, e
1 =
(t1 - o1). Ошибка на втором выхо дном узле
обозначена как e2.
Ошибка e1 распределяется пропорционально весам связей, обозначенным как w распределяться пропорционально весам w
и w
11
. Точно так же ошибка e2 должна
21
и w
12
22
.
Ошибка e1 информирует о величинах поправок для весов w w
. При ее распределении между узлами доля e1, информация о
21
11
и
которой используется для обновления w следующим выражением:
w
11
w
11 +
w
21
, определяется
11
Доля e1, используемая для обновления w
w
21
w
11 +
w
21
, определяется
21
аналогичным выражением:
За всеми этими символами стоит очень простая идея, которая заключается в том, что узлы, сделавшие больший вклад в ошибочный ответ, получают больший сигнал об ошибке, тогда как узлы, сделавшие меньший вклад, получают меньший сигнал.
Если w11 в два раза превышает w доля e1, используемая для обновления w
= 6/9 = 2/3. Тогда для другого, меньшего веса w
(скажем, w
21
, составляет 6/(6+3)
11
=6, а w
11
должно
21
=3), то
21
остаться 1/3 e1, что можно подтвердить с помощью выражения 3/(6+3) = 3/9, результат которого действительно равен 1/3.
Как и следовало ожидать, при равных весах будут равны и соответствующие доли. Давайте в этом убедимся. Пусть w и w
=4, тогда в обоих случаях доля будет составлять 4/(4+4) =
21
11
=4
4/8 = 1/2.
Соседние файлы в папке ML - Коротков (2 сем, мага)