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



              

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


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

Руководствуясь рис. 2, можно легко определить все компоненты градиента целевой функции, т.е. все частные производные функции

E
по весам сети. Для этого, двигаясь от входов сети (бывших выходов), нужно перемножить все встречающиеся на пути величины (кроме весов
w_{ij}^{(k)}
, для которых рассчитывается частная производная
\partial E / w_{ij}^{(k)}
). Кроме того, там, где дуги сходятся к одной вершине, нужно выполнить сложение произведений, полученных на этих дугах.

Так, например, чтобы посчитать производную

\partial E/ w_{12}^{(2)}
, нужно перемножить величины
y_2 - d_2, df(u_2^{(2)}) / du_2^{(2)}, v_1
, а для вычисления производной
\partial E / w_{21}^{(1)}
нужно посчитать произведения

\pi_1=(y_1 - d_1)\times[\partial f(u_1^{(2)}) /\partial u_1^{(2)}] w_{12}^{(2)}

и

\pi_2=(y_2 - d_2) [\partial f(u_2^{(2)}) / \partial u_2^{(2)}] w_{22}^{(2)}

и затем сложить эти произведения и результат умножить на

\partial f(u_2^{(2)}) / \partial u_2^{(2)}

и

x_1
.

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

\partial E / \partial w_{12}^{(1)}=(\pi_1+\pi_2)[\partial f(u_2^{(1)}) / \partial u_2^{(1)}] x_1 =\\

=[(y_1-d_1)[\partial f(u_1^{(2)})/\partial u_1^{(2)}]w_{12}^{(2)} + (y_2 -d_2) [\partial f(u_2^{(2)})/\partial u_2^{(2)})]w_{22}^{(2)}]\times\\

\times [ \partial f(u_2^{(1)})/\partial u_2^{(1)}] x_1 = x_1 \sum^2_{k=1} (y_k-d_k)[\partial f(u_k^{(2)})/ \partial u_k^{(2)}]w_{k2}^{(2)} [\partial f(u_2^{(1)})/ \partial u_2^{(1)}].




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