Нейрокомпьютерные системы

       

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


Возьмем двухслойную сеть (рис. 1) (входной слой не рассматривается). Веса нейронов первого (скрытого) слоя пометим верхним индексом (1), а выходного слоя - верхним индексом (2). Выходные сигналы скрытого слоя обозначим

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

Цель обучения состоит в подборе таких значений весов

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

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

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

Рис. 1.  Пример двухслойной нейронной сети

В выходном слое

Алгоритм обратного распространения ошибки
-й нейрон вырабатывает выходной сигнал

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

Из формулы следует, что на значение выходного сигнала влияют веса обоих слоев, тогда как сигналы, вырабатываемые в скрытом слое, не зависят от весов выходного слоя.

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

Алгоритм обратного распространения ошибки
примеров, целевая функция имеет вид

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

Минимизация целевой функции достигается уточнением вектора весов (обучением) по формуле

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

где

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

(1)

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

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

(2)


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

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

Так, например, чтобы посчитать производную
Алгоритм обратного распространения ошибки
, нужно перемножить величины
Алгоритм обратного распространения ошибки
, а для вычисления производной
Алгоритм обратного распространения ошибки
нужно посчитать произведения

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


и

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


и затем сложить эти произведения и результат умножить на
Алгоритм обратного распространения ошибки


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

Таким образом, получим

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


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


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



Содержание раздела