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



   Женская рамка для фото нитка жемчуга.             

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


В первую очередь определяются веса нейронов выходного слоя. Для выходных весов получаем:

 \partial E/ \partial w_{ij}^{(2)} = (y_i - d_i)[df(u_i^{(2)})/du_i^{(2)}]v_j,

где

u_i^{(2)} = \sum_{j=0}^K w_{ij}^{(2)}v_j

Если ввести обозначение

 \partial_i^{(2)} = (y_i - d_i)[df(u_i^{(2)})/du_i^{(2)}],

то соответствующую компоненту градиента относительно весов выходного слоя можно представить в виде

 \begin{equation} \partial E/ \partial w_{ij}^{(2)} = \partial_i^{(2)}v_j. \end{equation}

(3)

Компоненты градиента относительно нейронов скрытого слоя определяются так же, но описываются более сложной зависимостью, следующей из существования функции, которая задана в виде

 \partial E/ \partial w_{ij}^{(1)} = \sum_{k=1}^M (y_k - d_k)[dy_k/dv_i][dv_i/dw_{ij}^{(1)}].

Отсюда получаем

 \partial E/ \partial w_{ij}^{(1)} = \sum_{k=1}^M (y_k - d_k)[df(u_k^{(2)}) / du_k^{(2)}] w_{ki}^{(2)} [df(u_i^{(1)}) / du_i^{(1)}] x_j,

Если ввести обозначение

 \partial_i^{(1)} = \sum_{k=1}^M (y_k - d_k)[df(u_k^{(2)})/du_k^{(2)}]w_{ki}^{(2)}[df(u_i^{(1)})/du_i^{(1)}],

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

 \begin{equation} \partial E / w_{ij}^{(1)} = \partial_i^{(1)} x_j. \end{equation}

(4)

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

s(w)
в выражении (1) задает направление антиградиента (метод наискорейшего спуска), поэтому

 \Delta w = -\alpha\nabla E(w).

В соответствии с алгоритмом обратного распространения ошибки в каждом цикле обучения выделяются следующие этапы:

1. Анализ нейронной сети в прямом направлении передачи информации при генерации входных сигналов, составляющих очередной вектор

x
. В результате такого анализа рассчитываются значения выходных сигналов нейронов скрытых слоев и выходного слоя, а также соответствующие производные
df(u_i^{(1)})/du_i^{(1)}, df(u_i^{(2)})/du_i^{(2)}, \ldots, df(u_i^{(m)})/du_i^{(m)}

функций активации каждого слоя (

m
- количество слоев сети).

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

Сеть обратного распространения ошибки

Рис. 2.  Сеть обратного распространения ошибки

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




Содержание  Назад  Вперед