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

本文详细介绍了BP神经网络的误差逆向传播算法,并针对Sigmoid激活函数推导了权值和阈值的更新公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里记录一下BP神经网络的误差逆向传播算法:
  1.针对特殊的一种激活函数:sigmoid(x)=11+exsigmoid(x)=11+e−x来推导BP神经网络的权值和阈值更新公式:
  给定训练集:D={(x1,y1),(x2,y2)...,(xm,ym)},xiRd,yiRlD={(x1,y1),(x2,y2)...,(xm,ym)},xi∈Rd,yi∈Rl,即输入属性序列由dd个属性描述,输出ll维实值向量。为了方便讨论,图1给出了拥有dd个输入神经元,ll个输出神经元,qq个隐层神经元的多层前馈网络结构,其中输出层为第jj个神经元的阈值用θθ表示,隐层第hh个神经元用φhφh表示。输入层第ii个神经元与隐层第hh个神经元之间的连接权为vihvih,隐层第hh个神经元与输出层第jj个神经元之间的连接权为ωhjωhj
这里写图片描述
           图1 BP神经网络即算法中的符号变量
记隐层第hh个神经元接收到的输入为αh=di=1vihxiαh=∑i=1dvihxi,输出层的第jj个神经元接收到的输入为:βj=qh=1ωhjbhβj=∑h=1qωhjbh,其中bhbh为隐层第hh个神经元的输出。现在假设隐层和输出层都使用Sigmoid函数:
   对训练例(xk,yk)(xk,yk),假定神经网络的输出为:ykˆ=(y1ˆ,y2ˆ,......ylˆ)yk^=(y1^,y2^,......yl^),即:
            
                         ykˆ=(βjθj)yk^=(βj−θj)                (1)
 则网络在(xk,yk)(xk,yk)上的均方误差为:
                          Ek=12lj=1(ykjˆykj)Ek=12∑j=1l(yjk^−yjk)           (2)
 图1中的网络中有(d+l+1)q+l(d+l+1)q+l个参数需要确定。BP是一个迭代学习算法,在迭代的每一轮采用广义的感知机学习规则对参数进行更新估计。下面我们以图1中的隐层到输出层的连接权值ωhjωhj为例来进行推导:
 BP算法基于梯度下降(gradient descent)策略,以目标的负梯度方向对参数进行调整,对公式2中的误差EkEk,给定学习率ηη,有:
                          Δwhj=ηEkwhjΔwhj=−η∂Ek∂whj              (3)
注意到whjwhj先影响到第jj个输出神经元的输入值βj,再影响到其输出值ykjˆyjk^,然后影响到EkEk,有:
                           Ekwhj=Ekykjˆykjˆβjβjwhj∂Ek∂whj=∂Ek∂yjk^⋅∂yjk^∂βj⋅∂βj∂whj           (4)
根据βjβj的定义有:βjwhj=bh∂βj∂whj=bh,并且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ˆ)gj=∂Ek∂yjk^⋅∂yjk^∂βj=−(yjk^−yjk)f′(βj−αj)=(yjk−yjk^)yjk^(1−yjk^)  (5)
将公式(5)带入到公式(4),再带入到公式(3)中,就得到了BP算法中关于whjwhj的更新公式:
                            Δwhj=ηgjbhΔwhj=ηgjbh               (6)
ΔθjΔθj的更新公式为:
               Δθj=ηEkθj=ηEkykjˆykjˆθj=η(ykjykjˆ)ykjˆ(1ykjˆ)=ηgjΔθj=−η∂Ek∂θj=−η∂Ek∂yjk^⋅∂yjk^∂θj=−η(yjk−yjk^)⋅yjk^⋅(1−yjk^)=−ηgj(7)
BP神经网络的输出层到隐层的连接权值ΔvihΔvih的更新估计式为:
                     Δvih=ηEkvih=ηEkbhbhαhαhvihΔvih=−η∂Ek∂vih=−η∂Ek∂bh⋅∂bh∂αh⋅∂αh∂vih
                     =ηlj=1Ekβjβjbhf(αhγh)xi=ηbh(1bh))lj=1ωhjgj=−η∑j=1l∂Ek∂βj⋅∂βj∂bhf′(αh−γh)xi=ηbh(1−bh))∑j=1lωhjgj
                     =ηehxi=ηehxi
BP神经网络的隐层第hh个神经元的阈值γh的更新公式为:
                     Δγh=ηEkγh=ηlj=iEkβiβibhbhγh=ηehΔγh=−η∂Ek∂γh=−η∑j=il∂Ek∂βi⋅∂βi∂bh⋅∂bh∂γh=−ηeh
学习率η(0,1)η∈(0,1)控制着算法每一轮迭代中的更新步长;

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值