1.梯度爆炸的问题
(1)值超出值域:对于16位浮点数尤为严重
(2)对学习率敏感:如果学习率太大->大参数值->更大的梯度
如果学习率太小->训练无进展
我们可能需要在训练过程不断调整学习率
总结:当数值过大或者过小时会导致数值问题
常发生在深度模型中,因为其会对n个数累乘
2.让训练更加稳定
目标:(1)让梯度值在合理的范围内
(2)将乘法变加法:ResNet,LSTM
(3)归一化:梯度归一化、梯度裁剪
(4)合理的权值初始和激活函数
3.让每层的方差是一个常数
(1)将每层的输出和梯度都看作随机变量
(2)让他们的均值和方差都保持一致
3权值初始化:
(1)在合理值区间里随机初始参数
(2)训练开始的时候更容易有数值不稳定
远离最优解的地方损失函数表面可能很复杂
最优解附近表面会比较平
(3)使用N(0,0.01)来初始可能对小网络没问题,但不能保证深度神经网络