误差反向传播算法(BP)

优化算法基本上都是在反向传播算出梯度之后进行改进的,因为反向传播算法是一个递归形式,通过一层层的向后求出传播误差即可。

计算Loss函数的目的:**计算出当前神经网络建模出来的输出数据与理想数据之间的距离,根据反向传播算法可以不断更新网络中的参数使loss函数不断下降,使输出数据更加理想。

那么如何根据一个网络的loss来更新参数,即如何更新网络节点中的权重w和偏差b的值?

神经网络中的参数说明:
在这里插入图片描述
在这里插入图片描述表示神经网络中第(l-1)层第k个节点到l层中第j个节点之间的权重。(例如图中的权重)
在这里插入图片描述
在这里插入图片描述表示第l层网络在第j个节点处的偏差。(如图中所示)
故该节点可以输出为:
在这里插入图片描述
神经网络输出后会经过一个激活函数,用σ表示,则经过激活函数输出为:
在这里插入图片描述
通过符号在这里插入图片描述可以对神经网络里面每一个数据准确的表示。

**定义损失函数C:**反向传播就是求∂C/∂w和∂C/∂b,然后将这个值和对应的w,b进行相减就可以实现一次参数的更新。为什么这样的操作可以优化网络,减小loss值呢?

来源于导数概念和速度相关,∂C/∂w和∂C/∂b就是C相对于w和v变化的速度,∂C/∂w的绝对值越大,表示w对C的值影响越大。如果期望C变小,w应该对应减小,但是对于w具体应该减多少并没有确定答案。这里通过变化的速度和学习率相乘作为一个减少值,经多轮迭代,期望c达到最小点。此时无论是局部最小还是全局最小,周围一定是平滑的,所以∂C/∂w和∂C/∂b会趋近于0,参数停止更新。
在这里插入图片描述

**求导:**我们想要求得∂C/∂w和∂C/∂b的值,即对C影响速率的值。需要找到一个中间变量,因为:
在这里插入图片描述
定义:在这里插入图片描述
理用链式求导法则可以求出:在这里插入图片描述
同理:在这里插入图片描述
通过媒介在这里插入图片描述很容易求出∂C/∂w和∂C/∂b。
这里在这里插入图片描述就是在这里插入图片描述对于C的影响大小(联想导数和速率的关系)。其中在这里插入图片描述是第l层的第j个神经元未经过激活函数前的输出,所以在这里插入图片描述可以理解为网络中第l层第j个神经元对loss函数的影响。
如何求得在这里插入图片描述的值?
通过递归方式,如果知道在这里插入图片描述在这里插入图片描述之间的关系,就可以推得整个网络的每个节在这里插入图片描述点的值。

1.求得在这里插入图片描述在这里插入图片描述之间的关系:
在这里插入图片描述
在这里插入图片描述
所以:在这里插入图片描述
带入上式可得:在这里插入图片描述
在这里插入图片描述在这里插入图片描述之间的关系:在这里插入图片描述(应把a[l,j]修正为a[l,j]对z[l,j]的偏导)
理解起来就是网络中前一层的某一个神经元对于loss的影响与该层后一层所有的神经元对于loss的影响、该神经元的输出大小、该神经元与后一层神经元连接的权重有关。

2.假设最后一层网络是L,最后一层如何计算:
根据通用链式法则可得:在这里插入图片描述
这里需要注意的是最后一层的激活函数是哪一种。最后一层激活函数在计算某一个神经元输出时可能会结合其他节点的输出来计算,比如softmax激活函数,输出是一个概率值[0,1]。
现在考虑两个具体的损失函数,并且采用之前定义的均方误差损失函数:
在这里插入图片描述
·sigmoid损失函数:在这里插入图片描述
在这里插入图片描述
求导结果:在这里插入图片描述
因为sigmoid输出的值仅与输入的x值有关,所以在这里插入图片描述当k≠j时为0,所以:
在这里插入图片描述
·softmax损失函数:
在这里插入图片描述
函数形式:输出也是[0,1]的值,不过需要依赖最后一层所有的数来计算分母
求导得:
在这里插入图片描述
所以在这里插入图片描述
BP算法总结:
根据上面,BP推导有三部曲,先求出在这里插入图片描述,再根据在这里插入图片描述分别求出在这里插入图片描述。总结公式如下:
在这里插入图片描述
(应把a[l,j]修正为a[l,j]对z[l,j]的偏导)
启动上面反传的导火索是最后一层的在这里插入图片描述值,计算公式为:
在这里插入图片描述
参考文章:
https://www.jianshu.com/p/74bb815f612e

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值