Ðа пÑÐ°Ð²Ð°Ñ ÑÑкопиÑи
Ðа пÑÐ°Ð²Ð°Ñ ÑÑкопиÑи
Ðа пÑÐ°Ð²Ð°Ñ ÑÑкопиÑи
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
∂E<br />
∂w<br />
∂a<br />
p<br />
p<br />
p[<br />
n]<br />
p<br />
p<br />
( w)<br />
∂E<br />
( w)<br />
i ∂E<br />
( w)<br />
p[<br />
n]<br />
∂E<br />
( w)<br />
p[<br />
n−1]<br />
p[<br />
n]<br />
p[<br />
n−1]<br />
= ⋅ = x =<br />
≡ −<br />
[ ]<br />
[ ] [ n]<br />
p[<br />
n]<br />
j<br />
o<br />
n<br />
p n<br />
p[<br />
n]<br />
j<br />
i<br />
o<br />
j<br />
ji<br />
∂ai<br />
∂w<br />
ji<br />
∂ai<br />
∂ai<br />
22<br />
δ (9)<br />
p[n]<br />
где: величина − , называемая иногда невязкой нейрона, обозначает частную<br />
δ i<br />
производную функционала ошибки для p-ого объекта из обучающей выборки<br />
по отношению к сетевому входу нейрона i, находящегося в слое n (знак минуса<br />
p[ −1]<br />
взят для совместимости с принятыми в литературе обозначениями); o n - выходной<br />
сигнал находящегося в слое n-1 нейрона j для p-ого объекта из обучающей<br />
выборки. Таким образом, частная производная функционала ошибки нейросети<br />
по отношению к весу связи равна произведению выхода находящегося в<br />
предыдущем слое нейрона, из которого выходит данная связь, на невязку нейрона<br />
следующего слоя, в который входит данная связь.<br />
Из вышеизложенного следует, что для вычисления градиента ошибки необходимо<br />
рассчитать значения выходов и невязок всех нейронов. Поскольку<br />
нейросеть обратного распространения (многослойный персептрон) устроен таким<br />
образом, что каждый нейрон (кроме входных псевдонейронов и псевдонейронов<br />
смещения) получает сигнал из нейронов предыдущего слоя, то вычисление<br />
выходов нейронов производится по формулам (1) и (3) последовательно<br />
при движении от входного к выходному слою. Подобную последовательность<br />
вычислений называют прямым распространением сигнала. В противоположность<br />
этому, расчет невязок нейронов производится в обратном направлении<br />
при движении от выходного слоя к входному (обратное распространение<br />
ошибки).<br />
Действительно, для нейронов выходного слоя, дифференцируя выражение<br />
(7), имеем:<br />
p<br />
K<br />
p[<br />
N ]<br />
p[ N ] ∂E<br />
( w)<br />
∂ 1 p p[<br />
N ] 2 ∂oi<br />
p p[<br />
N ]<br />
p[<br />
N ] p p[<br />
N ]<br />
δ<br />
i<br />
= − = − ( ) ( ) '( )( )<br />
p[<br />
N ]<br />
p[<br />
N ] ∑ d<br />
k<br />
− ok<br />
= d<br />
p[<br />
N ] i<br />
− oi<br />
≡ f ai<br />
di<br />
− oi<br />
,(10)<br />
∂a<br />
∂a<br />
2<br />
∂a<br />
i<br />
i<br />
k=<br />
1<br />
Для остальных нейронов, применяя цепное правило дифференцирования<br />
к формуле (1) и опуская некоторые тривиальные промежуточные преобразования,<br />
получаем:<br />
∂<br />
∂a<br />
∂x<br />
p[<br />
n]<br />
δ = −<br />
(11)<br />
i<br />
p<br />
p<br />
p[<br />
n+<br />
1] p[<br />
n+<br />
1]<br />
E ( w)<br />
∂E<br />
( w)<br />
j<br />
j<br />
p[<br />
n]<br />
[ n+<br />
1] [ n+<br />
1]<br />
= −∑<br />
⋅ ⋅ = f '( a<br />
p n<br />
p n+ p n+<br />
p n<br />
i<br />
) ∑wij<br />
δ<br />
[ ]<br />
[ 1] [ 1] [ ]<br />
j<br />
∂ai<br />
j ∂a<br />
j<br />
∂x<br />
j<br />
∂ai<br />
j<br />
i<br />
j