梯度消失和梯度爆炸

1.梯度爆炸

1)原因

在深层网络或递归神经网络中,误差梯度在更新中累积得到一个非常大的梯度,这样的梯度会大幅度更新网络参数,进而导致网络不稳定。在极端情况下,权重的值变得特别大,以至于结果会溢出(NaN值,无穷与非数值)。当梯度爆炸发生时,网络层之间反复乘以大于1.0的梯度值使得梯度值成倍增长。

 

2)现象

  • 模型无法在训练数据上收敛(比如,损失函数值非常差);
  • 模型不稳定,在更新的时候损失有较大的变化;
  • 模型的损失函数值在训练过程中变成NaN值;

3)解决方案

梯度爆炸更容易处理一些。因为梯度爆炸的时候,我们的程序会收到NaN错误。

  1. 可以设置一个梯度阈值,当梯度超过这个阈值的时候可以直接截取。
  2. 可以使用权重正则化
  3. 使用长短周期记忆网络
  4. 使用修正线性激活函数
  5. 重新设计网络模型

2梯度消失

梯度消失更难检测,有三种方法应对梯度消失问题:

  1. 合理的初始化权重值。初始化权重,使每个神经元尽可能不要取极大或极小值,以躲开梯度消失的区域。
  2. 使用relu代替sigmoid和tanh作为激活函数。
  3. 使用其他结构的RNNs,比如长短时记忆网络(LTSM)和Gated Recurrent Unit(GRU),这是最流行的做法。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值