BP算法推导过程
BP 神经网络学习算法推导全过程
三层BP 网络图
假设三层BP 网络,输入节点i x ,隐节点j y ,输出节点l z ; 输入节点与隐层节点间的网络权值为ji w ; 隐层节点与输出节点间的网络权值为lj v ; 输出节点期望值为l t ,则:
隐层节点的输出()()j ji i j j i
y f w x f net θ=-=∑
其中,j ji i j i
net w x θ=-∑
输出节点的输出l lj
j l l
j
z f v
y f net θ=-=∑
其中,l lj
j l j
net v
y θ=
-∑
于是,输出节点误差为:
2
2
2
1
1
()(())
2
2
1
((()))
2
l l l
lj j l l
l
j
l
lj ji i j l l
j
i
E t z t
f v y t f v f w x θθθ=-=
--=---∑∑∑∑∑∑
由上式可知,网络误差为各层权值ji w 、lj v 的函数,
因此通过调整权值可以改
变误差E ,直到达到精度要求。显然,调增权值的原则是使误差不断减少,因此应使权值的调整量与误差的梯度下降(负梯度)成正比。
1. 误差函数对输出节点求导
1
n
k l
k lj
k
lj
l lj
z z E E
E
v z
v z v =?????=
?
=
?
?????∑
E 是多个k z 的函数,但只有l z 与lj v 有关,各k z 相互独立,其中:
12()2
()()
k k k
k
l
l k k k k l l l z E t z z z z t z z t z ????=--??????
???
?=--???
???=--∑
∑
而
'()l l l l j lj
l
lj z z net f net y v net v ???=
?
=????
于是:
()'()l
l l l j lj
l lj
z E E
t z f net y v z v ???=
?=--?????
2. 误差函数对隐层节点求导
j
l
l
j
ji
l
j ji
y z E E
w z
y w ????=
?
?
????∑∑
E 是多个l z 的函数,针对某一个ji w ,对应一个j y ,它与所有l z 有关,其中:
12()2
()()k k k
k
l
l k k k k l l l z E t z z z z t z z t z ??
??=--??????
???
?=--???
???=--∑
∑
'()'()l l l l l l lj j
l
j
j
z z net net f net f net v y net y y ????=
?=?
=?????
'()j j j j i ji
j
ji
y y net f net x w net w ???=
?
=????
于是:
()'()'()'()j
l
l
j ji
l j ji
l l l lj j i l
l lj j i
l
y z E E
w z y w t z f net v f net x v f net x δ????=
?
?
????=--????=-??∑∑
∑∑
设隐层节点误差为
'
'()j j l lj l
f net v δδ=?∑,则
'
j i ji
E x w δ?=-?,由于权值的修正ji w ?、lj v ?正比于误差函数沿梯度下降,则有:
'
'()j j l lj l j l
lj
E f net v y v δδη
ηδ?=??=-=?∑
(1)()()lj lj lj lj l j
v k v k v v k y ηδ+=+?=+
'''
'
'
()'()
(1)()()l l l l ji j
j i
ji
ji ji ji ji j i
t z f net E w x w w k w k w w k x δδ
ηδηδ=--???=-=?+=+?=+
'
'()j j l lj l
f net v δδ=?∑
式中,隐层节点误差'j δ中的l lj l
v δ∑表示输出节点l z 的误差l δ通过权值lj v 向节点
j y 反向传播成为隐节点的误差。
参考文献:
[1] 张德丰. MA TLAB 神经网络应用设计[M]. 北京:机械工业出版社,2009. [2] 韩力群. 人工神经网络理论、设计及应用[M]. 化学工业出版社,2006.第二版.