Алгоритм обратного распространения - это итеративный градиентный алгоритм обучения, который используется с целью минимизации среднеквадратичного отклонения текущего выхода и желаемого выхода многослойных нейронных сетей.
Алгоритм обратного распространения используется для обучения многослойных нейронных сетей с последовательными связями. Нейроны в таких сетях делятся на группы с общим входным сигналом - слои. На каждый нейрон первого слоя подаются все элементы внешнего входного сигнала. Все выходы нейронов m-го слоя подаются на каждый нейрон слоя m+1. Нейроны выполняют взвешенное суммирование элементов входных сигналов. К сумме элементов входных сигналов, помноженных на соответствующие синаптические веса, прибавляется смещение нейрона. Над результатом суммирования выполняется нелинейное преобразование - функция активации (передаточная функция). Значение функции активации есть выход нейрона.
В нейропарадигме "back propagation" используются сигмоидальные передаточные функции, например
.
Сигмоидальные функции являются монотонно возрастающими и имеют отличные от нуля производные на всей области определения. Эти характеристики обеспечивают правильное функционирование и обучение сети.
ФУНКЦИОНИРОВАНИЕ многослойной сети выполняется в соответствии с формулами:
где s - выход сумматора, w - вес связи, y - выход нейрона, b - смещение, i - номер нейрона, N - число нейронов в слое, m - номер слоя, L - число слоев, f- функция активации.
ОБУЧЕНИЕ СЕТИ разбивается на следующие этапы:
1) Инициализация сети:
Весовым коэффициентам и смещениям сети присваиваются
малые случайные значения из диапазонов
и
соответственно.
2) Определение элемента обучающей выборки:
(<текущий вход>, <желаемый выход>). Текущие входы (x0, x1... xN-1), должны различаться для всех элементов обучающей выборки. При использовании многослойного персептрона в качестве классификатора желаемый выходной сигнал (d0, d1... dN-1) состоит из нулей за исключением одного единичного элемента, соответствующего классу, к которому принадлежит текущий входной сигнал.
3) Вычисление текущего выходного сигнала:
Текущий выходной сигнал определяется в соответствии с традиционной схемой функционирования многослойной нейронной сети.
4) Настройка синаптических весов:
Для настройки весовых коэффициентов используется рекурсивный алгоритм, который сначала применяется к выходным нейронам сети, а затем проходит сеть в обратном направлении до первого слоя. Синаптические веса настраиваются в соответствии с формулой:
где wij - вес от нейрона i или от элемента входного сигнала i к нейрону j в момент времени t, xi' - выход нейрона i или i-ый элемент входного сигнала, r - шаг обучения, gj - значение ошибки для нейрона j.
Если нейрон с номером j принадлежит последнему слою, то
где dj - желаемый выход нейрона j, yj - текущий выход нейрона j.
Если нейрон с номером j принадлежит одному из слоев с первого по предпоследний, то
где k пробегает все нейроны слоя с номером на единицу больше, чем у того, которому принадлежит нейрон j.
Внешние смещения нейронов b настраиваются аналогичным образом.
Гетероассоциативная память
Использование нейропарадигмы "back propagation" для построения моделей гетероассоциативной памяти является традиционным. Нейронная сеть в процессе обучения приобретает способность строить ассоциации между входным сигналом X и выходным сигналов Y. Обучающая выборка состоит из пар
(<вход X>, <известный выход Y>).
В общем случае X и Y - вектора. В моделях гетероассоциативной
памяти размерности входных и выходных векторов различаются .
В большинстве задач распознавания и прогнозирования
. Дан некоторый входной вектор,
требуется определить, к какому классу он относится.
В задачах восстановления образа по номеру класса
(по некоторому коду) .
На рисунках 1 и 2 представлены схемы многослойных сетей, реализующих гетероассоциативную память. Нейроны представлены кружками, связи между нейронами - линиями.
Рис. 1. Многослойная нейронная сеть, .
Рис. 2. Многослойная нейронная сеть, .
С математической точки зрения задача прогнозирования является частным случаем задачи построения гетероассоциативной памяти. В качестве входных сигналов сети используются временные ряды, представляющие значения контролируемых переменных на некотором интервале времени. Выходной сигнал - множество переменных, которое является подмножеством переменных входного сигнала.
Характерные для прогнозирования проблемы:
Эти проблемы могут быть решены с помощью масштабирования элементов входных сигналов (см. ниже).
В моделях автоассоциативной памяти размерности входных и выходных сигналов совпадают (см. рисунок). То есть в результате функционирования сети необходимо получить выходной сигнал, который имеет тот же тип и ту же размерность, что и входной сигнал.
Рис. 3. Многослойная нейронная сеть, .
Использование нейропарадигмы "back propagation" для решения задачи кластеризации возможно, но не является традиционным. Наиболее популярными моделями для кластеризации являются сети ART (Adaptive Resonance Theory).
Пусть дана обучающая выборка, каждый пример которой содержит только входной сигнал. Рассмотрим два этапа кластеризации с помощью "back propagation".
1. Первичное формирование кластеров.
Путем попарного сравнения выбираются два наиболее различающихся входных сигнала. Мерой сходства-различия для бинарных сигналов может служить расстояние Хемминга. Для других типов сигналов - евклидово расстояние. Далее считают, что первый сигнал принадлежит классу (кластеру) 1, другой - второму классу. Строится обучающая выборка традиционного вида, содержащая два примера - пары (<вход>,<известный выход>). По данной выборке проводится обучение сети алгоритмом обратного распространения.
Случайным образом выбирается один из оставшихся входных сигналов и вводится в нейронную сеть. Если среднеквадратичное отклонение текущего выходного сигнала от одного из известных выходных сигналов обучающей выборки меньше заданного порогового значения, то входной сигнал считается принадлежащим классу соответствующего примера. В противном случае считается, что входной сигнал принадлежит новому классу. Строится обучающая выборка из трех примеров и по ней выполняется обучение.
Аналогичные действия повторяются до тех пор, пока не закончатся входные сигналы.
2. Объединение кластеров.
Для каждого сформированного на первом этапе класса (кластера) строится "центральный" или "эталонный" образ, каждый элемент которого есть среднее арифметическое соответствующих элементов всех примеров данного класса.
Далее с помощью меры Хемминга или Евклида определяется расстояние между парами "центральных" образов. Если расстояние меньше некоторого порогового значения, то два класса объединяются в один. Соответствующим образом формируется новая обучающая выборка и по ней проводится обучение нейронной сети.
Эту операцию повторяют до тех пор, пока не останется ни одной пары классов, расстояние между "центральными" образами которых меньше порогового значения.
Размерность входного сигнала и число нейронов последнего слоя в многослойных нейронных сетях определяются заданной обучающей выборкой. Определение числа нейронов в скрытых слоях представляет из себя нетривиальную задачу.
Для приблизительной оценки этого числа можно воспользоваться теоремой Колмогорова-Арнольда и следствием из нее. В соответствии с этими теоретическими результатами в негомогенной двухслойной нейронной сети для реализации произвольного отображения потребуется 2*N нейронов в скрытом слое, где N - размерность выходного сигнала или число нейронов последнего слоя. Сеть негомогенная, нет никаких ограничений на передаточные функции нейронов. Для гомогенных сетей, в которых передаточные функции нейронов фиксированы, данная оценка является заниженной. Число 2*N можно рассматривать как нижнюю границу необходимого числа нейронов скрытого слоя.
Для более точной оценки числа нейронов с скрытых слоях можно воспользоваться формулой для оценки необходимого числа синаптических весов Nw в многослойной сети с сигмоидальными передаточными функциями [48]:
,
где Ny - размерность выходного сигнала, Np - число элементов обучающей выборки, Nx - размерность входного сигнала.
Оценив необходимое число весов, можно рассчитать число нейронов в срытых слоях. Например, число нейронов в двухслойной сети составит:
Аналогично можно рассчитать число нейронов в сетях с большим числом слоев.
В нейропарадигме "back propagation" на типы входных и выходных данных не накладывается никаких ограничений. Входные и выходные сигналы сети могут принадлежать как к одному, так и к разным типам данных, они могут быть двоичными, целыми или действительные (вещественными). Главное - чтобы все элементы сигналов принадлежали к одному типу. Кроме того для успешного обучения и функционирования нейронной сети желательно, чтобы диапазоны изменений элементов входных сигналов незначительно отличались друг от друга.
Однако при решении практических задач эти требования часто не соблюдаются. Например, в задачах финансовых прогнозов входной сигнал может состоять из следующих элементов:
Первый элемент имеет величину порядка нескольких тысяч и в общем случае является вещественным числом, второй элемент - целое число от 1 до 7 и т. д.
Для того, чтобы представить все элементы входного сигнала числами одного типа из одного диапазона, используется операция масштабирования.
Выбирается диапазон изменения элементов входного сигнала ("общий диапазон"). Для каждого элемента входного сигнала определяется его диапазон и выполняется линейное преобразование данного элемента таким образом, чтобы в результате его значения принадлежали общему диапазону.
Еще одна проблема обучения и функционирования нейронных сетей состоит в следующем. В некоторых задачах на значение выходных сигналов сети существенно влияют не абсолютные значения входных сигналов, а небольшие изменения во входных сигналах. Например, небольшие колебания курса валюты могут существенно повлиять на финансовый прогноз. Классический вариант нейропарадигмы "back propagation" позволяет учитывать главным образом абсолютные значения входных сигналов, а не небольшие колебания. Это затрудняет решение некоторых практических задач, в частности, прогнозирования. Для разрешения этой проблемы также можно использовать масштабирование.