ISBN :
Возрастное ограничение : 16
Дата обновления : 17.01.2024
Рисунок 2.8. Схема многослойной сети с одним скрытым слоем
Для настройки весов w нейронной сети (обучения сети) используют функцию стоимости, напоминающую функцию стоимости для логистической регрессии (Eq. 2.12).
где L – количество слоев нейронной сети; s
– количество нейронов в слое l; K – количество классов (равно количеству нейронов в выходном слое); W – матрица весов.
Достоинством нейронной сети является возможность классификации c несколькими классами. В случае классификации объектов одного класса, то есть тогда, когда мы должны отделить условно «положительные» объекты от всех остальных, количество нейронов в выходном слое может быть равным и 1 (рисунок 1.5). В этом случае принадлежность объекта к классу «положительных» определяется значением функции гипотезы, то есть если h
(x
) > 0.5, то объект принадлежит к искомому классу. Однако чаще, в том числе с целью унификации, используется метод голосования («победитель забирает все»), когда сеть имеет в выходном слое 2 нейрона для двух классов объектов (рисунок 1.6), три для трех и т.д.
Рисунок 2.9. Схема многослойной сети с двумя выходами
Для обучения, то есть минимизации функции ошибки многослойной ИНС, используют алгоритм обратного распространения ошибки (Backpropagation of errors – BPE) [[55 - Werbos P. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. – Harvard University, 1974. – 38 p.]] и его модификации, направленные на ускорение процесса обучения.
2.6.3. Алгоритм обратного распространения ошибки
Суть алгоритма BPE заключается в следующем. Для тренировочного набора примеров
устанавливаем выход первого слоя нейронов:
Шаг 1. Выполняем этап прямого распространения сигнала по слоям сети, то есть вычисляем сигнал на выходе сети, выполняя расчет для каждого нейрона в каждом слое, как показано в выражениях 1.4, 1.5. Результаты в виде выходных значений нейронов сети a
],a
],…,a
] сохраняем в промежуточном хранилище (кэш).
Шаг 2. Используя полученный результат на выходе сети a
= h
(x), и необходимое для данного примера выходное значение y
, рассчитываем ошибку выходного слоя:
где L – номер выходного слоя нейронной сети.
Шаг 3. «Возвращаем» ошибку, распространяя ее обратно по сети с учетом значения производной:
где знак * – символ поэлементного умножения; g' – производная.
Производная сигмоидальной активационной функции:
Для любого скрытого слоя сети:
В случае сигмоидальной активационной функции:
Рассчитанное значение градиентов ошибки dz
], dz
], … , dz
также сохраняем в кэше.
Шаг 4. Модифицируем веса сети с учетом значения ошибки для всех слоев I ? L:
где i – номер слоя сети; ? – параметр обучения (learning rate) (0 < ? < 1); ?
– матрица весов слоя i; dz
– рассчитанное значение ошибки i-го слоя (точнее говоря, градиент ошибки).
Получив измененные значения весов, повторяем шаги 1–4 до достижения некоторого минимального значения ошибки либо заданное количество раз.
Процесс обучения искусственной нейронной сети можно представить в виде следующей схемы (рисунок 2.10):
Рисунок 2.10. Итеративный процесс обучения искусственной нейронной сети
Рассмотрим пошаговый пример расчета прямого распространения сигнала, обратного распространения ошибки и коррекции весов.
Пошаговый пример расчета алгоритма обратного распространения ошибки
Все книги на сайте предоставены для ознакомления и защищены авторским правом