更新于 2026年7月21日

梯度消失#


术语解释#

梯度消失(Gradient Vanishing) 是深度学习模型训练中常见的一种数值不稳定问题,主要发生在利用反向传播算法更新网络参数的过程中。

3层神经网络结构图

梯度消失是指在深层神经网络中,损失函数关于网络某些层(尤其是靠近输入层的部分)的梯度值变得极其微小的现象。

梯度消失的核心成因为:

  • 链式求导的累乘效应:反向传播算法基于链式法则,梯度是从输出层向输入层逐层回传的。如果网络层数过深,且每一层的梯度值都小于 1,连续的累乘会导致传到靠近输入层时梯度趋近于 0 。 关于这部分内容可以参见 「第3.3.6节 反向传播过程」 的讲解。

  • 激活函数进入饱和区:在使用 Sigmoid 或 Tanh 等激活函数时,如果神经元的输入值过大或过小,函数会进入“饱和区”,此时其导数几乎为 0。这使得参数在梯度下降过程中无法得到有效更新。关于这部分内容可以参见 「第3.12.1节 Sigmoid激活函数」 的讲解。

  • 长序列依赖(针对 RNN):在循环神经网络处理长序列数据时,同一组权重参数在时间步上被反复累乘,极易引发梯度消失。 「第7.1.7节 BPTT原理」 的讲解。


缺点#

梯度消失对模型的训练和性能具有显著的负面影响:

  • 模型参数难以更新:由于梯度接近 0,靠近输入层的权重参数更新非常缓慢甚至完全停止,导致这些层无法学习到有效的特征。

  • 丢失长期依赖信息:在 RNN 任务(如语言建模或翻译)中,梯度消失使得模型难以捕捉序列中长距离的依赖关系。模型可能只记住了最近几个时刻的信息,而遗忘了较早时刻的关键上下文,而这也催生出了 LSTM 网络。

  • 收敛缓慢或无法收敛:网络底部的参数更新不及时,迫使顶部的参数不断适应未充分训练的底部输出,极大地增加了训练难度和收敛耗时。

为了缓解梯度消失,现代深度学习通常采用合理的参数初始化(如 Kaiming 或 Xavier 初始化 )、非饱和激活函数(如 ReLU )、归一化技术(如批归一化 BN )以及特殊的网络结构(如 ResNet 的残差连接 或 LSTM 的记忆门控机制 )。

相关内容可参见:


相关术语#

  • 梯度下降

  • 反向传播

  • 批归一化

  • 梯度爆炸

阅读 --

3.3 梯度下降与反向传播

在本节中,我们首先通过一个跳跃的例子详细地向大家介绍了什么是梯度,以及为什么要沿着梯度的反方向进行跳跃才能最快到底谷底;然后通过图示推导出了梯度下降的更新迭代公式;接着详细介绍了网络模型的前向传播过程和反向传播过程,并推导了整个梯度的求解过 …

3.12 激活函数

在本节内容中,我们首先回顾了在深度学习中为什么我们需要进行非线性变换;然后介分别介绍了4种常见激活函数Sigmoid、Tanh、ReLU和LeakyReLU的原理和计算过程。最后详细介绍了各个激活函数的实现过程和使用示例。

6.3 批归一化

在本节内容中,我们首先介绍了批归一化算法提出的原因和动机;然后详细介绍了批归一化的原理及过程,包括训练时的归一化和预测时的归一化等;进一步,介绍了如何从零开始在PyTorch框架中实现批归一化算法的计算过程;最后,以LeNet5模型为例对批 …