КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Алгоритм обратного распространения ошибкиВ настоящее время существует множество алгоритмов обучения. Наиболее известный из них – алгоритм обратного распространения ошибки. Данный алгоритм используется для минимизации отклонения реальных значений выходных сигналов нейронной сети от требуемых. В качестве функции ошибки ИНС будем рассматривать следующую величину: (6.1) где fi,k – значение выходного сигнала k-го выходного нейрона сети при подаче на её входы i-го набора обучающих данных, – требуемое значение выходного сигнала k-го выходного нейрона для i-го набора данных для обучения. Суммирование ведется по всем нейронам выходного слоя и по всем наборам данных из обучающей выборки. Обучение ИНС направлено на минимизацию функции . Минимизация методом градиентного спуска обеспечивает подстройку весовых коэффициентов следующим образом: (6.2) где – величина изменения веса связи, соединяющей i-й нейрон (q–1) слоя с j-м нейроном слоя q; η – коэффициент скорости обучения, 0< η <1. Таким образом, вес связи изменяется пропорционально её вкладу в значение ошибки нейрона, для которого эта связь является входной, т.к. частная производная по весу показывает зависимость скорости изменения функции ошибки E от изменения этого веса. Опустим преобразования формулы (6.2) и представим сразу конечный результат (6.3). Подробный вывод формул приведен, например, в [18] и [19]. Изменение веса связи определяется следующим образом: (6.3) где δj – значение ошибки j-го нейрона в слое q, xi – значение i-го входного сигнала для j-го нейрона слоя q. Данная формула применима и для настройки смещений нейронов, только вместо xi необходимо подставить «1». Отметим, что значение ошибки нейрона определяется в зависимости от его положения в сети. Для нейронов выходного слоя (6.4) где yi,k – требуемое, а fi,k – фактическое значение выходного сигнала k-го нейрона для i-го набора данных из обучающей выборки, – значение производной активационной функции k-го нейрона для i-го набора обучающих данных. Если нейрон принадлежит одному из скрытых слоев, то (6.5) где δi(q) – ошибка i-го нейрона в слое q, δj(q+1) – ошибка j-го нейрона в (q+1) слое, wij – вес связи, соединяющей эти нейроны, – значение производной активационной функции i-го нейрона слоя q. Таким образом, значение ошибки нейрона пропорционально его «влиянию» на величины ошибок нейронов следующего слоя, а также скорости изменения его выходного сигнала для k-го набора обучающих данных. Рассмотрим ИНС с нейронами с лог-сигмоидными функциями активации: (6.6) где а – константа, S – взвешенная сумма входных сигналов нейрона, тогда (6.7) и формулы (6.4), (6.5) соответственно примут вид (6.8) (6.9) Для реализации алгоритма обратного распространения ошибки может быть использована следующая последовательность действий: 1. Предъявление очередного набора из обучающей выборки на вход нейронной сети. 2. Вычисление выходного сигнала сети. 3. Определение величин ошибок нейронов выходного слоя по формуле (6.4) или (6.8). 4. Определение величин ошибок нейронов скрытых слоев по формулам (6.5) или (6.9). 5. Однократная коррекция весов связей. 6. Если в обучающей выборке есть неиспользованные в данной эпохе наборы данных, то переход на шаг 1. 7. Подсчет ошибки сети по формуле (6.1). Если ошибка меньше заданной, то конец обучения, иначе, начало новой эпохи обучения и переход на шаг 1. Отметим, что алгоритм обратного распространения ошибки применим только для нейронных сетей, содержащих нейроны с дифференцируемой функцией активации. Т.е. рассмотренный алгоритм не подходит для настройки сетей, построенных на нейронах с пороговыми функциями активации. Для таких сетей применяются другие алгоритмы обучения, например дельта-правило Уидроу-Хоффа [19, 36]. Однако во многих случаях в нейронных сетях используются нейроны с сигмоидальными функциями активации (лог-сигмоидные функции и гиперболический тангенс), что дает возможность применять для настройки и обучения таких сетей градиентные алгоритмы. В настоящее время создано немало модификаций алгоритма обратного распространения ошибки [19]. Одним из простых, но довольно эффективных является алгоритм, использующий инерционность обучения. В нем вес связи изменяется в соответствии со следующей формулой: где α – коэффициент инерционности от 0 до 1. Данный алгоритм сходится в среднем в 4–5 раз быстрее стандартного, но использует больший объем памяти.
|