反向传播(Backprop)

反向传播

训练神经网络的方法

亦作、亦称:Backprop

反向传播(Backpropagation,简称 Backprop)是训练神经网络的核心算法,通过链式法则从损失函数出发,逐层向输入方向计算各参数的梯度,再由优化器更新权重。它将深度网络训练从理论设想变为工程现实,是现代深度学习的基石。

概述

反向传播(Backpropagation,简称 Backprop)是训练神经网络的核心算法,通过链式法则从损失函数出发,逐层向输入方向计算各参数的梯度,再由优化器更新权重。它将深度网络训练从理论设想变为工程现实,是现代深度学习的基石。

核心定义

反向传播本质上是对计算图应用链式法则的系统化过程。

  • 前向传播:输入数据逐层流经网络,产生预测输出并计算损失值,同时缓存中间激活
  • 反向传播:从输出层开始,将损失的梯度沿计算图逐层向输入方向传递
  • 链式法则:复合函数导数等于各层局部梯度之积,使深层网络梯度计算成为可能
  • 参数更新:所有层的权重与偏置均可在一次反向过程中高效计算出对应梯度,交由优化器更新

发展脉络

反向传播的历史跨越数十年,经历了多次独立发现与重新普及。

  • 1970:Seppo Linnainmaa 在硕士论文中提出反向模式自动微分,是现代实现的理论先驱
  • 1974:Paul Werbos 在哈佛博士论文《Beyond Regression》中首次将该方法明确应用于神经网络,长期未受重视
  • 1986:Rumelhart、Hinton、Williams 在 Nature 发表「Learning representations by back-propagating errors」,引爆第二次神经网络研究热潮
  • 2012:AlexNet 借助 GPU 加速反向传播,在 ImageNet 大赛中大幅领先,标志深度学习时代正式开启
  • 2017 至今:PyTorch 动态计算图、梯度检查点、混合精度训练等工程优化,使反向传播支撑起千亿参数模型的训练

算法机制

一次完整的训练迭代包含前向与反向两个阶段,交替执行。

  • 损失计算:对比预测值与真实标签,得出标量损失(如交叉熵、均方误差)
  • 梯度回传:从输出层开始,依次按链式法则计算每层的局部梯度 $\partial L / \partial W$
  • 避免重复计算:算法复用前向阶段缓存的中间激活值,使反向传播时间复杂度与前向传播相当
  • 权重更新:梯度传给梯度下降或 Adam 等优化器,按 $W \leftarrow W - \eta \nabla W$ 更新参数

常见问题与挑战

反向传播在实践中面临若干固有挑战,催生了大量改进技术。

  • 梯度消失多层网络中梯度逐层相乘趋近于零,早期深层网络浅层几乎无法学习; ReLU 激活函数残差连接是主要应对手段
    -
    梯度爆炸 梯度连乘后数值过大,导致训练发散;常用梯度裁剪(Gradient Clipping) 缓解
    -内存开销 需缓存所有中间激活值用于反向计算; 梯度检查点(Gradient Checkpointing)以重新计算换节省显存
    -
    不可微操作
    离散采样、argmax 等操作无法直接反向传播,需借助直通估计器或强化学习目标替代

自动微分与现代框架

当代深度学习框架通过自动微分引擎将反向传播完全自动化。

  • 动态计算图:PyTorch 的 Autograd 在前向传播时动态构建计算图,调用 .backward() 即可自动获取所有梯度
  • 静态计算图:TensorFlow 早期采用静态图,先定义图再执行,便于跨平台优化与部署
  • 即时编译torch.compile、XLA 等在自动微分基础上进一步提升反向传播的运行效率
  • 混合精度训练:以 FP16/BF16 进行前向运算,FP32 累计梯度,在保持数值稳定的同时大幅加速训练

与相关概念的关系

反向传播并非孤立算法,而是与多个核心概念紧密耦合。

  • 梯度下降:反向传播提供梯度方向,梯度下降利用梯度更新参数,两者共同构成训练的完整闭环
  • 自动微分:反向传播是反向模式自动微分在神经网络上的具体应用,范围比「手写链式法则」更广
  • 批归一化 / 层归一化:通过稳定中间层分布,间接缓解梯度消失,与反向传播协同工作
  • Transformer 与大模型:现代大语言模型参数量达千亿级,其训练仍完全依赖反向传播与分布式自动微分

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「训练神经网络的方法」
  • 「深度学习必修课」
  • 「跟 反向传播 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    反向传播:神经网络如何学习

    深入理解反向传播算法的数学原理、计算图实现和训练中的关键问题

  2. 2

    线性代数:向量与矩阵

    从向量空间到矩阵运算,掌握 AI 所需的线性代数基础

外部参考

维基百科:查看「反向传播」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。