更新于 2026年7月11日

反向传播#


术语解释#

反向传播(Backpropagation,BP),也称为 BP 算法,是深度学习中用于计算神经网络参数梯度的核心算法,也是训练深度模型的前提。它将原本不可逾越的复杂梯度计算简化为高效的链式传播过程。尽管存在梯度消失或爆炸等固有风险,但通过合理的参数初始化、归一化(如 BN、LN)以及梯度裁剪等技术,这些问题在现代工程实践中已得到很大程度的缓解。

反向传播是指在模型训练过程中,误差信号从输出层进入网络,并沿着时间的维度或网络层级,按照从右到左(输出到输入)的顺序逆向传播,利用链式法则逐层计算损失函数关于各个参数(权重 $w$ 和偏置 $b$)梯度的过程。 为了计算方便它引入了“残差”(Residual,记为 $\delta^l$)的概念,当要计算第 $l$ 层参数的偏导数,必须先利用第 $l+1$ 层计算得到的残差,而这一顺序恰好与正向传播从左到右的计算方向相反,因此得名反向传播。详细内容可参见「第3.3节 反向传播与梯度下降:梯度消失与爆炸的解决方法」内容。

需要注意的是,反向传播本身只是一个高效计算梯度的工具,而梯度下降(Gradient Descent)才是利用这些梯度来更新参数、最小化目标函数的优化算法。

注意,大家常说的 BP 神经网络指的就是通过反向传播算法来进行求解的神经网络。


出现动机#

在反向传播普及之前,传统的求导方式(如直接应用链式法则)在对深层网络参数求导时会产生大量的重复计算,导致计算效率极低,而这也直接导致了深度学习的发展进入的低谷。

反向传播算法通过将误差有效地传递回隐藏层,解决了多层神经网络的训练难题,带领人工智能进入了发展的第二次高潮。

相关发展历史可参见 「反向传播算法的发展阶段」内容。


优点缺点#

  • 优点

    • 极高的计算效率:BP 算法通过缓存前向传播的激活值并递归计算,避免了重复运算,使得训练包含数百万甚至数十亿参数的现代大模型成为可能。
    • 理论支撑稳固且通用:它完美结合了微积分中的链式法则,是目前所有主流深度学习框架(如 PyTorch、TensorFlow)计算梯度的底层基石。
    • 支持自动微分:现代框架基于 BP 实现了自动微分,极大简化了开发者的工作,不再需要手动推导复杂的导数公式。
  • 缺点:

    • 梯度消失(Gradient Vanishing):由于梯度在回传过程中涉及连续的累乘,如果网络层数过深,梯度可能会变得趋近于 0,导致靠近输入层的参数无法得到有效更新。
    • 梯度爆炸(Gradient Exploding):与消失相反,如果参数初始化不当或学习率过大,梯度在回传中可能会剧烈增长,导致数值溢出,使模型训练不稳定或直接发散。
    • 资源消耗大:随着模型规模激增,反向传播过程中产生的中间激活值需要占用海量显存。对于超大规模模型(如 GPT-3),单张 GPU 的显存往往无法容纳,必须依赖张量并行等复杂技术。
    • 容易陷入局部最优:虽然这主要是梯度下降等优化算法的局限,但由于 BP 算法本质上是在局部寻找梯度方向,模型在复杂非凸的目标函数中仍可能陷入局部最小值或鞍点。

相关术语#

  • 梯度下降
  • 链式法则
  • 梯度消失
  • 梯度爆炸
  • 前向传播
阅读 --

3.3 梯度下降与反向传播

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

前向传播

Forward Pass(前向传播)是把数据从输入层沿神经网络逐层计算、最终得到预测输出的过程。它是模型「做推理」的过程,也是反向传播计算梯度的前提。

1.1 深度学习的发展阶段

本节围绕深度学习的发展阶段展开,重点介绍早期理论的发展、人工智能的萌芽和反向传播算法的发展等内容。