更新于
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 算法本质上是在局部寻找梯度方向,模型在复杂非凸的目标函数中仍可能陷入局部最小值或鞍点。
相关术语#
- 梯度下降
- 链式法则
- 梯度消失
- 梯度爆炸
- 前向传播
阅读
--