更新于 2026年7月21日

梯度爆炸#


术语解释#

梯度爆炸(Gradient Exploding) 是深度学习模型训练过程中常见的一种数值不稳定性问题,本质原因和「梯度消失」一样,都是因为在反向传播中梯度逐层累乘,到输入层时变得极大,导致权重更新剧烈震荡甚至数值溢出,因此它和梯度消失是一对孪生问题,常用梯度裁剪、合适的初始化、残差结构等方法缓解。 核心成因有:

  • 链式求导的累乘效应:反向传播算法基于链式法则计算梯度。如果网络层数较深,且各层的梯度值大于 1,连续的累乘会导致传向靠近输入层时梯度值呈指数级增长。

  • 初始化与学习率不当:参数初始化权重过大,或者设置的学习率过高,都会加剧梯度在反向传播中的增长速度。

  • 长序列依赖(RNN):在循环神经网络处理长序列时,同一组权重在多个时间步上被反复累乘,极易引发梯度爆炸。


缺点#

梯度爆炸会严重阻碍模型的收敛并破坏训练过程:

  • 数值溢出与参数更新失效:梯度值可能迅速增大到超过计算机能够处理的浮点数范围(出现 NaN 或 Inf),导致权重参数无法得到有效的更新。

  • 模型训练不稳定或不收敛:极其巨大的梯度会导致目标函数在优化过程中剧烈震荡,使得模型不仅难以收敛到最优解,甚至会导致模型彻底发散(训练失败)。

  • 限制网络深度与序列长度:由于深层网络或长序列中梯度更容易失控,这极大地限制了模型捕捉长距离依赖信息的能力,是早期深度学习和 RNN 发展的主要障碍之一。

几种缓解梯度爆炸的工程手段:

  • 梯度裁剪(Gradient Clipping):这是最直接的手段,通过设置阈值或基于范数对梯度进行强制约束,防止其过大。

  • 合理的参数初始化:如 Kaiming 初始化或 Xavier 初始化,旨在保持网络各层激活值和梯度的方差稳定。

  • 调节学习率:使用较小的学习率或学习率调度器(如 Warmup 策略)来控制每次跳跃的步长。

  • 特殊的网络结构:例如 ResNet 中的残差连接(Shortcut Connection),它为梯度提供了一条直接的回传路径,有效缓解了梯度失控问题

相关内容可参见:


相关术语#

  • 梯度下降

  • 反向传播

  • 批归一化

  • 梯度爆炸

阅读 --

6.2 梯度裁剪

在本节内容中,我们首先分别介绍了两种梯度裁剪策略的基本原理;然后介绍了两种方法在PyTorch中的使用方法;最后介绍了如何将其加入到模型的训练过程中。

4.9 ResNet网络

ResNet 原理详解,讲清残差连接如何缓解网络退化问题,以及残差块的结构与实现方式。

3.3 梯度下降与反向传播

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