梯度消失
定义:在深度神经网络中,反向传播算法用于计算梯度以更新网络参数。梯度是损失函数相对于网络参数的变化率。梯度消失指的是在网络的深层结构中,梯度值逐渐减小到接近零的情况。当梯度消失发生时,网络在训练过程中不能有效地学习权重,导致网络无法收敛到合适的解决方案。这个问题通常出现在使用某些激活函数(如 Sigmoid 或 Tanh)和深度较大的网络中。
梯度爆炸
定义:梯度爆炸是梯度的相反情况,指的是梯度值变得非常大,以至于在反向传播时参数更新变得不稳定。梯度爆炸通常会导致数值溢出,使网络训练失败。这个问题通常出现在网络权重初始化不当或者某些层之间的连接权重太大时。
解决方法
- 权重初始化:使用合适的权重初始化方法,如 Xavier/Glorot 初始化,可以帮助减轻梯度消失和爆炸问题。
- 激活函数:选择合适的激活函数,如 ReLU(修正线性单元),通常可以减轻梯度消失问题。
- 梯度裁剪:在训练过程中对梯度进行裁剪,以防止梯度爆炸。
- 使用批标准化:批标准化可以稳定网络中的梯度,有助于加速训练和减轻梯度问题。
- 残差连接:如前面提到的 "快捷连接",可以在深度网络中帮助信息流更顺畅,减轻梯度消失问题。