神经网络训练中的梯度消失和梯度爆炸问题

梯度消失和梯度爆炸

梯度消失的具体表现是,接近于输出层的权值更新相对正常,但是接近于输入层的权值基本不更新,或更新的非常慢。这样,深度网络的学习就等价于只有后几层的浅层网络的学习了。

梯度爆炸的具体的表现是,越远离输出层的隐藏层,其权值越大,由于会大幅度的更新网络参数,进而导致网络不稳定,最终无法收敛,或者权重值溢出,即输出值为NaN,而无法再更新权重。

产生的原因

梯度消失和梯度爆炸是由于神经网络的反向传播的连乘效应导致的,而且随着网络层的增多,出现的可能性会越大。

以上图中的4层网络层为例,假设每一层网络激活后的输出为 f i ( x ) f_{i}(x) fi(x),其中x表示第i层的输入,也就是第i-1层的输出,那么, f ( i + 1 ) = f ( f i ∗ w i + 1 + b i + 1 ) f(i+1) = f(f_i*w_{i+1} + b_{i+1}) f(i+1)=f(fiwi+1+bi+1),简单记为 f i + 1 = f ( f i ∗ w i + 1 ) f_{i+1} = f(f_i*w_{i+1}) fi+1=f(fiwi+1)
BP反向传播方法,就是基于梯度下降策略,以目标的负梯度方向对参数进行调整,参数的更新为 w ← w + Δ w w \gets w + \Delta w ww+Δw,给定学习率 α \alpha α, Δ w = − α ∂ L o s s ∂ w \Delta w = -\alpha \frac {\partial{Loss}} {\partial{w}} Δw=αwLoss,如果更新第2层隐藏层的权值信息,根据链式求导法则,可得:
Δ w 2 = ∂ L o s s ∂ w 2 = ∂ L o s s ∂ f 4 ∗ ∂ f 4 ∂ f 3 ∗ ∂ f 3 ∂ f 2 ∗ ∂ f 2 ∂ w 2 \Delta w_2 = \frac {\partial{Loss}} {\partial{w_2}} = \frac {\partial{Loss}} {\partial{f_4}} * \frac {\partial{f_4}} {\partial{f_3}} * \frac {\partial{f_3}} {\partial{f_2}} * \frac {\partial{f_2}} {\partial{w_2}} Δw2=w2Loss=f4Lossf3f4f2f3w2f2
如果每层对激活函数的求导均大于1,那么层数增多的时候,最终求出的梯度更新将以指数形式增加,称为梯度爆炸;如果每层求导小于1,那么层数增多的时候,求出的梯度将会以指数形式减小,称为梯度消失或梯度弥散。

参考链接:

  1. https://zhuanlan.zhihu.com/p/51490163
  2. https://zhuanlan.zhihu.com/p/25631496
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值