Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Жданова Е.И. и др_Методические указания по ПрБД...doc
Скачиваний:
28
Добавлен:
03.05.2019
Размер:
6.37 Mб
Скачать

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

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

Рассмотрим пример, демонстрирующий процесс обучения сети методом ОРО. Пусть сеть состоит из двух слоев нейронов: два нейрона в скрытом слое и один нейрон в выходном слое (см. рис. 2.2). НС предназначена для прогнозирования курса «доллар США – евро». Обучающая выборка состоит из двух входов (первый – курс «доллар США – евро» позавчера, второй – курс «доллар США – евро» вчера) и одного выхода (курс «доллар США – евро» сегодня). Продемонстрируем две итерации обучения и один обратный проход.

Первый прямой проход

На вход скрытого слоя сети подается набор обучающих данных:

= [0.725 0.7],

где i – номер итерации;

j – номер входа.

Синаптические матрицы весов для скрытого и выходного слоев имеют вид: и соответственно.

Рассчитаем взвешенный вход для каждого из нейронов скрытого слоя:

.

Далее рассчитывается выход скрытого слоя сети, преобразованный функцией активации:

.

Выход скрытого слоя является входом для выходного слоя: . Рассчитываем взвешенный вход для выходного слоя точно так же, как и для скрытого слоя:

.

Получаем выход сети, преобразованный сигмоидальной функцией активации:

.

В то же время рассчитываем желаемое значение выхода сети и вычисляем среднеквадратичную ошибку:

.

Далее вычисляем величину скорости реакции ошибки при данном значении выхода сети:

.

Рассчитываем скорость изменения ошибки сети при изменении средневзвешенного входа выходного слоя:

.

Затем рассчитываем вектор значений, на которые следует скорректировать синаптическую матрицу выходного слоя:

.

Далее необходимо выполнить обратный проход для корректировки весов сети.

Обратный проход

Изменяем значения весов на входе выходного нейрона (скорость обучения принимаем равной единице =1):

.

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

,

где k – номер нейрона скрытого слоя.

Теперь можно рассчитать корректировочные коэффициенты для синаптической матрицы скрытого слоя:

Рассчитываем скорректированные веса для скрытого слоя:

.

Для определения степени близости рассматриваемой сети к поставленной цели, следует выполнить еще один (второй) прямой проход с новыми весами, но с теми же входами [0.725 0.7].

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