梯度爆炸问题 Exploding Gradient Problem

梯度爆炸问题通常出现在深层网络、权值初始化值过大的情况下,其一般随着网络层数的增加而明显。

通过对激活函数求导,若结果大于 1,那么层数增加时,最终求出的梯度更新将以指数形式增加,即发生梯度爆炸;若结果小于 1,那么层数增加的时候,最终求出的梯度更新将以指数形式衰减,即发生梯度消失。

梯度爆炸和梯度消失的原因主要是网络太深、网络权值更新不稳定,本质上是因为梯度反向传播中存在连乘效应,对于梯度消失问题,可考虑用 ReLU 激活函数取代 Sigmoid 激活函数,此外,LSTM 结构设计也可改善 RNN 中梯度消失问题。

解决梯度爆炸的方法

  • 预训练加微调
  • 梯度剪切、权重正则
  • 使用不同的激活函数
  • 使用 Batchnorm
  • 使用残差结构
  • 使用 LSTM 网络

参考来源

【1】神经网络训练中的梯度消失与梯度爆炸

【2】深度神经网络的梯度不稳定问题– 梯度消失与梯度爆炸

【3】详解机器学习中的梯度消失、爆炸原因及其解决方法