История многослойных нейронных сетей началась в 1960-х годах и связана с работами Розенблатта, Минского, Пейперта и др. Лишь в середине 1980-х несколькими исследователями независимо друг от друга был предложен эффективный алгоритм обучения многослойных персептронов, основанный на вычислении градиента функции ошибки. Алгоритм был назван "обратным распространением ошибки".
Алгоритм обратного распространения - это итеративный градиентный алгоритм, который используется с целью минимизации среднеквадратичного отклонения текущего выхода многослойного персептрона и желаемого выхода.
Алгоритм обратного распространения используется для обучения многослойных нейронных сетей с последовательными связями. Нейроны в таких сетях делятся на группы с общим входным сигналом - слои. На каждый нейрон первого слоя подаются все элементы внешнего входного сигнала. Все выходы нейронов m-го слоя подаются на каждый нейрон слоя m+1. Нейроны выполняют взвешенное суммирование элементов входных сигналов. К сумме элементов входных сигналов, домноженных на соответствующие синаптические веса, прибавляется смещение нейрона. Над результатом суммирования выполняется нелинейное преобразование - функция активации (передаточная функция). Значение функции активации есть выход нейрона.
На рисунке 1 показана подробная схема многослойной сети с обозначенными синапсами, смещениями, сумматорами.
В сетях, обучаемых по методу обратного распространения ошибки могут быть целые или действительные входные сигналы. Выходные сигналы сети - это действительные числа из интервала, заданного передаточной функцией нейронов.
Рис. 1. Многослойная сеть с последовательными связями
В нейронных сетях применяются несколько вариантов сигмоидальных передаточных функций.
Функция Ферми (экспоненциальная сигмоида):
(1.1.1)
где s - выход сумматора нейрона, -
некоторый параметр.
Рациональная сигмоида:
(1.1.2)
Гиперболический тангенс:
(1.1.3)
Перечисленные функции относятся к однопараметрическим. Значение функции зависит от аргумента и одного параметра. Также используются многопараметрические передаточные функции, например:
(1.1.4)
Сигмоидальные функции являются монотонно возрастающими и имеют отличные от нуля производные на всей области определения. Эти характеристики обеспечивают правильное функционирование и обучение сети.
Наиболее эффективной передаточной функцией является рациональная сигмоида. Для вычисления гиперболического тангенса требуется больше всего тактов работы процессора.
Функционирование многослойной сети выполняется в соответствии с формулами:
(1.1.5)
(1.1.6)
где s - выход сумматора, w - вес связи, y - выход нейрона, b - смещение, i - номер нейрона, N - число нейронов в слое, m - номер слоя, L - число слоев, f- функция активации.
Обучение сети разбивается на следующие этапы:
1) Инициализация сети:
Весовым коэффициентам и смещениям сети присваиваются
малые случайные значения из диапазонов
и
соответственно.
2) Определение элемента обучающей выборки:
(<текущий вход>, <желаемый выход>). Текущие входы (x0, x1... xN-1), должны различаться для всех элементов обучающей выборки. При использовании многослойного персептрона в качестве классификатора желаемый выходной сигнал (d0, d1... dN-1) состоит из нулей за исключением одного единичного элемента, соответствующего классу, к которому принадлежит текущий входной сигнал.
3) Вычисление текущего выходного сигнала:
Текущий выходной сигнал определяется в соответствии с традиционной схемой функционирования многослойной нейронной сети.
4) Настройка синаптических весов:
Для настройки весовых коэффициентов используется рекурсивный алгоритм, который сначала применяется к выходным нейронам сети, а затем проходит сеть в обратном направлении до первого слоя. Синаптические веса настраиваются в соответствии с формулой:
(1.1.7)
где wij - вес от нейрона i или от элемента входного сигнала i к нейрону j в момент времени t, xi' - выход нейрона i или i-ый элемент входного сигнала, r - шаг обучения, gj - значение ошибки для нейрона j.
Если нейрон с номером j принадлежит последнему слою, то
(1.1.8)
где dj - желаемый выход нейрона j, yj - текущий выход нейрона j.
Если нейрон с номером j принадлежит одному из слоев с первого по предпоследний, то
(1.1.9)
где k пробегает все нейроны слоя с номером на единицу больше, чем у того, которому принадлежит нейрон j.
Внешние смещения нейронов b настраиваются аналогичным образом.
Расмотренная модель может быть использована для распознавания образов, классификации, прогнозирования. Были попытки построения экспертных систем на основе многослойных персептронов с обучением по методу обратного распространения.
У этой модели нейронной сети есть и недостатки. Многокритериальная задача оптимизации в методе обратного распространения рассматривается как набор однокритериальных - на каждой итерации происходят изменения значений параметров сети, улучшающие работу лишь с одним примером обучающей выборки. Такой подход существенно уменьшает скорость обучения.
Классический метод обратного распространения относится к алгоритмам с линейной сходимостью. Для увеличения скорости сходимости необходимо использовать матрицы вторых производных функции ошибки.
Несмотря на указанные недостатки обратное распространение - первый эффективный алгоритм обучения многослойных нейронных сетей. Один из самых популярных алгоритмов обучения, с его помощью были решены и решаются многочисленные практические задачи.
Были предложены многочисленные модификации алгоритма обратного распространения, которые связаны с использованием различных функций ошибки, различных процедур определения направления и величины шага:
1) функции ошибки:
2) процедуры определения величины шага на каждой итерации:
(1.1.10)
(a - некоторое положительное число, меньше единицы)
3) процедуры определения направления шага: