1. 梯度消失,梯度爆炸产生原因
请看我的这篇文章: RNN 的梯度消失问题, 讲的已经很清楚了。
总的来说,梯度消失,梯度爆炸问题本质上是由于随着深度的加深,受到权重信息,激活函数的影响,连乘机制所引发的一系列问题。
2. 解决方案
解决梯度消失,梯度爆炸问题,最终的目的是解决如何在深层网络上的优化问题,当然深层网络所带来的问题远不止梯度消失,爆炸问题。
1. 采用 Relu 系激活函数
参考:激活函数
2. 合适的权重初始化
参考:权重初始化
3. 残差结构
残差的方式,能使得深层的网络梯度通过跳级连接路径直接返回到浅层部分,使得网络无论多深都能将梯度进行有效的回传。
4. Batch Normalization, Layer Normalization
5. LSTM
参考:RNN 的梯度消失问题, 讲的很清楚了。
6. 梯度裁剪 - 梯度爆炸
如果梯度超过某个阈值,就对其进行限制。