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