什么是梯度消失和梯度爆炸及如何解决
原因
- 梯度消失 (Vanishing Gradients)
在梯度下降中, 随着算法反向的反馈, 梯度会越来越小,最终没有变化,此时并没有收敛到比好的解,这就是梯度消失的问题。 - 梯度爆炸
梯度爆炸原理跟梯度消失一样,反向传播时,导数大于1,导致梯度增加。
解决方法
- **函数
更换**函数
ELU > leaky ReLU > ReLU > tanh > logistic
-
添加BN层
Batch Normalization的作用
(1)允许较大的学习率
(2)减弱对初始化的强依赖性
(3)保持隐藏层中数值的均值、方差不变,让数值更稳定,为后面网络提供坚实的基础
(4)有轻微的正则化作用(相当于给隐藏层加入噪声,类似Dropout) -
ResNet残差网络
https://www.jianshu.com/p/ebc3e242147e -
LSTM结构
-
梯度裁剪
主要针对梯度爆炸问题,设置一个阈值,当梯度查过这个阈值之后将它限制在这个范围之内 -
权重正则化,L1和L2正则化
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择,一定程度上,L1也可以防止过拟合
L2正则化可以防止模型过拟合(overfitting)