为什么叫做反向传播

反向传播(Back Propagation)

原:https://www.cnblogs.com/MrPan/p/9502869.html

    通常在设计好一个神经网络后,参数的数量可能会达到百万级别。而我们利用梯度下降去跟新参数的过程如(1)。但是在计算百万级别的参数时,需要一种有效计算梯度的方法,这种方法就是反向传播(简称BP), 因此BP并不是一种新的算法,使用BP就是能够使计算梯度时更加有效率。

                                 

  其中θ为神经网络的参数,为梯度。

链式法则

   设有两个函数为y=g(x),z=h(y),那么要计算z对x导数,则计算过程如(2)

   

     设有三个函数为x=g(s),y=h(s),z=k(x,y),那么要计算z对x导数,则计算过程如(3)

   

BP计算过程

    假定我们设计的神经网络结构如图1-1所示,其中yj神经网络为输出值,dh为隐藏层神经元的输出值,xi为输入值,bj、mh分别是隐藏层和输出层神经元的偏置;

图1-1 神经网络结构

     设神经网络的损失函数为L(θ)(L(θ)具体的结构根据实际情况来确定,θ表示所有参数);wjh的更新形式为

      

   由于wjh是通过影响,继而影响yj,最终影响L(θ)。因此wjh的更新计算可以通过(2)的链式法则进行展开。

      

    其中,需要在确定激活函数和损失函数的具体结果后才就可以进行微分。而则可以在神经网络前向传播的过程中就可以计算,因此这一项的计算是自下向上,因此也称作forward pass

   类比于wjh的更新情况,bj的更新计算为

  再计算vhi的的更新情况,跟wjh的更新情况没有太大差别。vhi通过影响输入,继而影响dh,dh通过影响所有的输出层神经元的输入,继而影响输出值Y={y1,y2,...yl},最终影响L(θ),因此需要运用(3)进行链式法则展开

          

 

 其中(8)中的跟计算的部分项相同。因此,要计算下层参数的微积分,就需要计算上层参数的微积分。整个参数的更新计算自上向下,这个计算过程也称作backward pass

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
backprop算法是一种用于训练神经网络的反向传播算法。它通过计算网络预测结果的误差梯度,然后根据这个梯度来更新网络参数,以减小误差。该算法通常用于监督学习任务,如分类和回归。 backprop算法的基本思想是,首先将输入数据通过神经网络的前向传播过程,得到网络的预测结果。然后,通过将预测结果与实际标签进行比较,计算出网络的误差。接下来,算法会从输出层开始,根据链式法则逐层计算每一层的误差梯度。梯度表示了误差关于参数的变化程度,即误差变小最快的方向。 在计算误差梯度时,算法使用了一个叫做反向传播的过程。具体来说,它通过反向遍历网络,从输出层开始,逐层计算上一层的误差梯度。这个过程中,算法需要使用到每一层的激活函数和权重矩阵。 计算了误差梯度后,接下来的步骤是使用梯度下降法更新网络的参数。梯度下降法的基本原理是根据梯度的反方向移动参数的值,以减小误差。算法通过一个学习率参数来控制每次参数更新的幅度,从而避免跳过最优解。通常,算法会多次重复这个过程,直到达到预定的训练迭代次数或达到一个收敛条件。 综上所述,backprop反向传播算法是一种通过计算误差梯度,并使用梯度下降法来更新网络参数的方法。它能够有效地训练神经网络,使其能够适应各种监督学习任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值