赞
踩
Bp算法实际是输出的误差函数对每一个参数求导,输出层可以直接求出,非输出层则有链式法则求导。这里以上图5层神经网络为例进行说明。
一 符号说明:
1)这里使用激活函数为sigmoid函数:
(1)
对sigmoid函数求导得:
(2)
2) :l表示l-1层传到l层的权重,i表示l-1层所对应的神经元,j表示l层的神经元;
:l表示l-1层传到l层的偏置项;
第l层尚未使用激活函数的第k个神经元;
第l层已使用激活函数的第k个神经元;
第l层神经元的个数。以第l层传到第l+1层为例:
(3)
(4)
3) 不妨设实际输出为y1和y2,这里使用最小均方误差表示:
(5)
使用梯度下降法更新参数,对权值项,更新公式为
对偏置项,更新公式为:
二 推导说明:
由梯度下降法的公式可以看出实际就是求出最小均方误差对参数的偏导。这里以、
、
为例。
1) 对 ,
只跟第5层神经网络的第1个神经元有关,既有:
(9)
由链式求导法则得:
(10)
2) 对 ,
跟第5层的所有神经元有关,跟第4层第1个神经元有关,既有:
(11)
由链式求导法则得:
(12)
对上式中E对的偏导这里单独进行讨论,
(13)
又因为:
(14)
故:
(15)
3) 对 ,
跟第3层的第1个神经元,第4层所有神经元有关,第5层第所有神经元有关,既有:
(16)
由链式求导法则得:
(17)
对上式中E对的偏导这里单独进行讨论,
(18)
又因为:
(19)
故:
(20)
公式太长了,这里就推到由第2层到第3层的参数。
4)开始总结规律
对输出层(既第5层)不妨令:
(21)
(22)
对第4层:
(23)
(24)
(25)
对第3层第1个神经元
(26)
由上可以可能出
对输出层即第5层:
(27)
对第4层:
(28)
对第3层:
(29)
同理可得对第2层 :
(30)
综上可得:
对输出层有:
(31)
对非输出层有:
(32)
又由于:
(33)
(34)
(35)
所以:
(36)
所以权重更新公式为:
(37)
同理可得偏置项的更新公式为:
(38)
6)推广到一般化,如果误差函数不是最小均方误差,而是E,激活函数不是sigmoid,而是f(x),此时:
(39)
有上面的推导我们易得,对输出层:
(40)
对非输出层:
(41)
此时权重更新公式:
(42)
偏置项的更新公式为:
(43)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。