简要回答
前向传播算输出和损失,反向传播用链式法则从损失对每层参数求梯度,再梯度下降更新权重。
标准回答
整体思路
神经网络是复合函数 y = f_n(...f_2(f_1(x))),反向传播就是对这个复合函数求导,本质是链式法则的高效实现。
前向传播
逐层计算激活值并缓存中间结果(如各层的输入、加权和),这些缓存供反向阶段复用。
反向传播
从损失 L 出发反向逐层求导:
- 输出层直接算 ∂L/∂a;
- 每一层用链式法则:本层参数梯度 = 上游传来的梯度 × 本层的局部梯度(如 ∂L/∂W = δ · xᵀ);
- 误差信号 δ 逐层向前传递,每层只需做一次矩阵乘,整体复杂度与前向同阶。
工程实现
PyTorch/TensorFlow 通过自动微分构建计算图,调用 backward() 自动回传,无需手推公式。深层网络中小于 1 的局部梯度连乘会指数衰减(梯度消失),可用 ReLU 族激活、残差连接、BatchNorm/LayerNorm、合理初始化缓解。
常见误区
⚠️ 常见踩坑
把反向传播等同于梯度下降——前者只负责算梯度,后者才用梯度更新参数;以为反向传播是「另一套独立算法」,其实它就是链式法则 + 缓存复用;忘记前向必须保存中间激活,否则反向无法计算局部梯度(这也是训练比推理更耗显存的原因)。
追问
追问 1:什么是计算图?
计算图是有向图:节点是运算(加减乘、激活),边是张量流动。前向传播沿图计算输出;反向传播沿图用链式法则求梯度。PyTorch 动态构图,TensorFlow 2.x 默认 eager 也可 trace 成图。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📰 AI 资讯
🛠️ AI 工具
- Pytorch
Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出
- Tensorflow
全球最流行的机器学习框架之一,195K+ stars。Google 开源的端到端 ML 平台,支持 TensorFlow、Keras 等多种 API,覆盖深度学习、强化学习、移动端部署等全场景,是 AI 工程师的必备工具