梯度消失和梯度爆炸
梯度消失和梯度爆炸
梯度爆炸:在反向传播过程中需要对激活函数进行求导,如果导数大于1,那么随着网络层数的增加梯度更新将会朝着指数爆炸的方式增加,最后到输入时,梯度将会非常大,这就是梯度爆炸。
梯度消失:同样如果导数小于1,那么随着网络层数的增加梯度更新信息会朝着指数衰减的方式减少,最后到输入时,梯度将会非常小,这就是梯度消失。
因此,根本原因在于反向传播训练法则,属于先天不足。
解决方案
1)好的参数初始化方式;
2)非饱和的激活函数;
3)BN批量规范化(可以将集中在梯度饱和区的原始输出拉向线性变化区,增大梯度值,缓解梯度消失,加速网络收敛速度,提升训练稳定性的效果);
4)梯度截断(其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内);
5)更快的优化器;
6)LSTM;
7)残差网络结构(短路机制可以无损地传播梯度)