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 ) 控制着算法每一轮迭代中的更新步长;

  • 22
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值