BP神经网络权值、阈值更新公式推导

这里记录一下BP神经网络的误差逆向传播算法:
1.针对特殊的一种激活函数:sigmoid(x)=11+ex s i g m o i d ( x ) = 1 1 + e − x来推导BP神经网络的权值和阈值更新公式:
给定训练集:D={(x1,y1),(x2,y2)...,(xm,ym)},xiRd,yiRl D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . , ( x m , y m ) } , x i ∈ R d , y i ∈ R l,即输入属性序列由d d个属性描述,输出l l维实值向量。为了方便讨论,图1给出了拥有d d个输入神经元,l l个输出神经元,q q个隐层神经元的多层前馈网络结构,其中输出层为第j j个神经元的阈值用θ θ表示,隐层第h h个神经元用φh φ h表示。输入层第i i个神经元与隐层第h h个神经元之间的连接权为vih v i h,隐层第h h个神经元与输出层第j j个神经元之间的连接权为ωhj ω h j
这里写图片描述
图1 BP神经网络即算法中的符号变量
记隐层第h h个神经元接收到的输入为αh=di=1vihxi α h = ∑ i = 1 d v i h x i,输出层的第j j个神经元接收到的输入为:βj=qh=1ωhjbh β j = ∑ h = 1 q ω h j b h,其中bh b h为隐层第h h个神经元的输出。现在假设隐层和输出层都使用Sigmoid函数:
对训练例(xk,yk) ( x k , y k ),假定神经网络的输出为:ykˆ=(y1ˆ,y2ˆ,......ylˆ) y k ^ = ( y 1 ^ , y 2 ^ , . . . . . . y l ^ ),即:

ykˆ=(βjθj) y k ^ = ( β j − θ j )(1)
则网络在(xk,yk) ( x k , y k )上的均方误差为:
Ek=12lj=1(ykjˆykj) E k = 1 2 ∑ j = 1 l ( y j k ^ − y j k )(2)
图1中的网络中有(d+l+1)q+l ( d + l + 1 ) q + l个参数需要确定。BP是一个迭代学习算法,在迭代的每一轮采用广义的感知机学习规则对参数进行更新估计。下面我们以图1中的隐层到输出层的连接权值ωhj ω h j为例来进行推导:
BP算法基于梯度下降(gradient descent)策略,以目标的负梯度方向对参数进行调整,对公式2中的误差Ek E k,给定学习率η η,有:
Δwhj=ηEkwhj Δ w h j = − η ∂ E k ∂ w h j(3)
注意到whj w h j先影响到第j j个输出神经元的输入值βj,再影响到其输出值ykjˆ y j k ^,然后影响到Ek E k,有:
Ekwhj=Ekykjˆykjˆβjβjwhj ∂ E k ∂ w h j = ∂ E k ∂ y j k ^ ⋅ ∂ y j k ^ ∂ β j ⋅ ∂ β j ∂ w h j(4)
根据βj β j的定义有:βjwhj=bh ∂ β j ∂ w h j = b h,并且Sigmoid函数有一个很好的性质:f(x)=f(x)(1f(x) f ( x ) ′ = f ( x ) ( 1 − f ( x ),于是根据公式(1)和(2),有:
gj=Ekykjˆykjˆβj=(ykjˆykj)f(βjαj)=(ykjykjˆ)ykjˆ(1ykjˆ) g j = ∂ E k ∂ y j k ^ ⋅ ∂ y j k ^ ∂ β j = − ( y j k ^ − y j k ) f ′ ( β j − α j ) = ( y j k − y j k ^ ) y j k ^ ( 1 − y j k ^ )(5)
将公式(5)带入到公式(4),再带入到公式(3)中,就得到了BP算法中关于whj w h j的更新公式:
Δwhj=ηgjbh Δ w h j = η g j b h(6)
Δθj Δ θ j的更新公式为:
Δθj=ηEkθj=ηEkykjˆykjˆθj=η(ykjykjˆ)ykjˆ(1ykjˆ)=ηgj Δ θ j = − η ∂ E k ∂ θ j = − η ∂ E k ∂ y j k ^ ⋅ ∂ y j k ^ ∂ θ j = − η ( y j k − y j k ^ ) ⋅ y j k ^ ⋅ ( 1 − y j k ^ ) = − η g j(7)
BP神经网络的输出层到隐层的连接权值Δvih Δ v i h的更新估计式为:
Δvih=ηEkvih=ηEkbhbhαhαhvih Δ v i h = − η ∂ E k ∂ v i h = − η ∂ E k ∂ b h ⋅ ∂ b h ∂ α h ⋅ ∂ α h ∂ v i h
=ηlj=1Ekβjβjbhf(αhγh)xi=ηbh(1bh))lj=1ωhjgj = − η ∑ j = 1 l ∂ E k ∂ β j ⋅ ∂ β j ∂ b h f ′ ( α h − γ h ) x i = η b h ( 1 − b h ) ) ∑ j = 1 l ω h j g j
=ηehxi = η e h x i
BP神经网络的隐层第h h个神经元的阈值γh的更新公式为:
Δγh=ηEkγh=ηlj=iEkβiβibhbhγh=ηeh Δ γ h = − η ∂ E k ∂ γ h = − η ∑ j = i l ∂ E k ∂ β i ⋅ ∂ β i ∂ b h ⋅ ∂ b h ∂ γ h = − η e h
学习率η(0,1) η ∈ ( 0 , 1 )控制着算法每一轮迭代中的更新步长;


版权声明:本文为pcb931126原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。