趋近智
虽然梯度消失问题导致学习信号在长序列中减弱,但梯度爆炸问题在循环神经网络(RNN)训练期间呈现出另一种数值不稳定现象。梯度非但没有趋近于零,反而可能变得异常巨大,有时会导致数值超出标准表示范围,产生 NaN(非数字)输出,从而使训练过程完全中断。
梯度爆炸的机制与通过时间反向传播(BPTT)过程以及循环权重矩阵的重复应用密切相关。回想一下,BPTT通过将误差信号逐步反向传播到展开的网络中来计算梯度。
考虑简单RNN中隐藏状态 ht 的更新规则:
ht=tanh(Wxhxt+Whhht−1+bh)当计算损失 L 相对于时间上很早的隐藏状态 hk 的梯度时,BPTT会计算诸如 ∂ht−1∂ht、∂ht−2∂ht−1 等项,一直回溯到 ∂hk∂hk+1。每个偏导数都涉及与循环权重矩阵 Whh(以及激活函数的导数)相乘。
从较晚时间步 t 到较早时间步 k (k<t) 的梯度贡献涉及一系列雅可比矩阵的乘积:
∂hk∂ht=i=k+1∏t∂hi−1∂hi每个项 ∂hi−1∂hi 都近似地与 Whh 成比例。如果循环权重矩阵 Whh 的主导特征值(或更一般地说,奇异值)的幅值始终大于1,那么这种跨越许多时间步 (t−k) 的重复乘法会导致最终的梯度值呈指数级增长。
将其想象为复利:如果你反复将一个值乘以一个略大于1的因子,它会增长得非常快。在BPTT中,与 Whh 相关的梯度分量会重复相乘。如果这些分量倾向于放大信号(幅值 > 1),则整体梯度可能会爆炸。
梯度爆炸以几种破坏性的方式表现出来:
NaN 值。梯度范数在初始训练迭代中保持相对稳定,但随后突然急剧增加,表明发生了梯度爆炸事件。请注意,y轴上使用了对数刻度,以适应这种大幅度的尖峰。
与梯度消失(它悄然阻碍长距离依赖的学习)不同,梯度爆炸通常会导致更明显和灾难性的训练失败。幸运的是,它们显著的影响使其更容易被发现(例如,通过监测梯度范数或观察突发的 NaN 损失)。我们将在下一节讨论梯度裁剪等方法,它们能有效处理这种不稳定情况。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造