<<
>>

2.2.1 Алгоритм обратного распространения ошибки

Для обучения описанной нейронной сети был использован алгоритм обратного распространения ошибки (backpropagation). Этот метод обучения многослойной нейронной сети называется обобщенным дельта-правилом или пра- видом error backpropagation (обратного распространения ошибки).

Метод был предложен в 1986 г. Румельхартом, Макклеландом и Вильямсом [63,64]. Это ознаменовало возрождение интереса к нейронным сетям, который стал угасать в начале 70-х годов. Данный алгоритм является первым и основным практически применимым для обучения многослойных нейронных сетей. Выделяются два способа организации этого алгоритма:

пакетное обучение (batch training): на каждой итерации при вычислении функции ошибки сети используется вся доступная обучающая выборка;

пошаговое обучение (incremental training): на каждой итерации для вычисления функции ошибки сети используется один очередной пример из обучающей выборки.

Пакетный способ обучения вполне соответствует классическим алгоритмам локальной оптимизации (в предположении, что целью является минимизация ошибки сети на всей выборке).

Обучение сети начинается с предъявления образа и вычисления соответствующей реакции. Сравнение с желаемой реакцией дает возможность изменять веса связей таким образом, чтобы сеть на следующем шаге могла выдавать более точный результат. Обучающее правило обеспечивает настройку весов связей. Информация о выходах сети является исходной для нейронов предыдущих слоев. Эти нейроны могут настраивать веса своих связей для уменьшения погрешности на следующем шаге.

Когда мы предъявляем ненастроенной сети входной образ, она будет выдавать некоторый случайный выход. Функция ошибки представляет собой разность между текущим выходом сети и идеальным выходом, который необходимо получить. Для успешного обучения сети требуется приблизить выход сети к желаемому, т.е. последовательно уменьшать величину функции ошибки.

Это достигается настройкой межнейронных связей. Каждый нейрон в сети имеет свои веса, которые настраиваются, чтобы уменьшить величину функции ошибки. Для нейронов выходного слоя известны их фактические и желаемые значения выходов. Поэтому настройка весов связей для таких нейронов является относительно простой. Однако для нейронов предыдущих слоев настройка не столь очевидна. Интуитивно ясно, что нейроны внутренних слоев, которые связаны с выходами, имеющими большую погрешность, должны изменять свои веса значительно сильнее, чем нейроны, соединенные с почти корректными выходами. Другими словами, веса данного нейрона должны изменяться прямо пропорционально ошибке тех нейронов, с которыми данный нейрон связан. Вот почему обратное распространение этих ошибок через сеть позволяет корректно настраивать веса связей между всеми слоями. В этом случае величина функции ошибки уменьшается и сеть обучается.

Основные соотношения метода обратного распространения ошибки по-лучены при следующих обозначениях:

Е - величина функции ошибки для образа р;

t j - желаемый выход нейрона у для образа р;

opj - действительный выход нейрона j для образа р;

wpJ - вес связи между i -м и j -м нейронами.

Пусть функция ошибки прямо пропорциональна квадрату разности между действительным и желательным выходами для всей обучающей выборки:

L j

Активация каждого нейрона j для образа р записывается в виде взве-шенной суммы:

i

Выход каждого нейрона /является значением пороговой функции fp

которая активизируется взвешенной суммой. В многослойной сети это обычно сигмоидная функция, хотя может использоваться любая непрерывно дифференцируемая монотонная функция: Можно записать по правилу цепочки: (2.4)

дЕ дЕ ду . р _ р Jpj

dw.. ду . dw..

У * PJ У
Для второго сомножителя в (2.4), используя (2.2), получаем: эу. 32><л* dw.

Spj к dwy dw.. V dwy dw,.

поскольку —- = 0, за исключением случая k = i, когда эта производная равна

dwy

единице.

Изменение ошибки как функция изменения входов нейрона определяется так: р _

дЕ

= SpJ. (2.6)

ду .

* PJ

Поэтому (2.4) преобразуется к виду:

дЕ

- = (2.7)

dwy P1 Pl Х }

Следовательно, уменьшение величины означает изменение веса пропорционально SpjopJ:

где Т] - коэффициент пропорциональности (скорость обучения), влияющий на скорость обучения.

Теперь нам необходимо знать значение 8pj для каждого нейрона. Используя (2.6) и правило цепочки, можно записать:

дЕ дЕ до . ды= = (2.9)

0 ду . до .ду .

SPJ PJ S PJ
Исходя из (2.3), записываем второй сомножитель в (2.9):

5о„.

PJ
=/Ы- (2Л°)

ду .

Spj

Рассмотрим первый сомножитель в (2.9). Согласно (2.1), нетрудно получить:

дЕ„

р

до.

PJ
Поэтому

Последнее соотношение является полезным для выходных нейронов, поскольку для них известны целевые и действительные значения выходов. Однако для нейронов внутренних слоев целевые значения выходов не известны.

Таким образом, если нейрон j не выходной, то снова используя правило цепочки, а также соотношения (2.2) и (2.6), можно записать:

дЕп ^ дЕ ду, _ дЕп dYaw*°Pi

__Р=у /> —-—'¦ . (2.13)

d°Pj * fypk d°Pj * d°Pj

дЕ ^Lwik°Pi

ЪТГ-—* = С2-14)

kfypk dopJ Т

Здесь сумма по i исчезает, поскольку частная производная не равна ну-лю лишь в одном случае, так же как и в (2.5). Подставив (2.14) в (2.9), получим окончательное выражение:

(2-15)

к

Уравнения (2.12) и (2.15) составляют основу метода обучения многослойной сети.

Окончательная коррекция синаптических коэффициентов происходит по формуле:

W,(f + = + (2.16)

В основе алгоритма обратного распространения ошибки лежит методика, позволяющая быстро вычислять вектор частных производных (градиент) сложной функции многих переменных, если структура этой функции известна. В качестве такой функции в алгоритме рассматривается функция ошибки сети, и учитывается тот факт, что структура функции ошибки сети полностью определяется архитектурой нейронной сети, которая считается известной.

За счет рациональной организации вычислений и сохранения промежуточных значений алгоритм обратного распространения ошибки позволяет эффективно вычислять градиент функции ошибки сети, который используется для выбора направления коррекции весов. Предполагается, что на каждой следующей итерации алгоритма для вычисления функции ошибки используется только один очередной пример из обучающей выборки (а не все примеры сразу). Следует отметить, что доказательство сходимости алгоритма, приведенное в [63], предполагает бесконечно малые коррекции весов, что на практике ведет к бесконечному времени обучения. Поэтому размер шага (контролирующий величину коррекции весов) должен быть конечным. Возникает вопрос выбора оптимального значения размера шага. Например, если размер шага мал, то сходимость алгоритма слишком медленная, если же очень велик, то процесс обучения может потерять устойчивость. Вопрос выбора оптимального значения скорости обучения будет рассмотрен в дальнейшем.

Метод обратного распространения ошибки может быть очень медленным особенно для многослойных сетей, где поверхность целевой функции является неквадратичной, невыпуклой, и высоко размерной с множеством локальных минимумов и/или плоских областей.

<< | >>
Источник: Макаренко Алексей Александрович. Алгоритмы и программная система классификации полутоновых изображений на основе нейронных сетей: диссертация... кандидата технических наук: 05.13.18. - Москва: РГБ, 2007. 2007

Еще по теме 2.2.1 Алгоритм обратного распространения ошибки: