核心要点

  • 前向:输入→逐层计算→得到输出与 loss

  • 反向:链式法则从 loss 向输入方向求各层梯度

  • 理解两者在训练循环中的先后关系

  • 能画简单两层网络的梯度流

简要回答

前向传播按网络结构从输入算出预测和损失;反向传播用链式法则从损失往回算每层参数梯度,供优化器更新权重。二者构成神经网络训练的核心循环。

标准回答

前向传播(Forward Propagation):数据从输入层流向输出层。每层执行 z = Wx + b,再经激活函数 σ(z)。最终得到预测 ŷ,与真实标签计算 损失函数 L(如交叉熵MSE)。

反向传播(Backpropagation):训练的关键。利用链式法则,从 L 出发向输入方向计算每个参数对损失的偏导数 ∂L/∂W、∂L/∂b。例如两层网络:∂L/∂W₁ = (∂L/∂ŷ)(∂ŷ/∂h)(∂h/∂W₁)。

训练循环

  1. 前向 → 得 loss
  2. 反向 → 得各层梯度
  3. 优化器(SGD/Adam)沿梯度反方向更新参数

反向传播 使 深度学习 能从海量数据端到端学习层次特征,而非手工设计。现代框架(PyTorchTensorFlow)自动完成微分,开发者只需定义前向与 loss。

阶段 方向 产出
前向 输入→输出 预测、loss
反向 loss→参数 .grad 梯度

回答思路

  • 【定义】用一句话说清「什么是前向传播与反向传播」

  • 【原理】讲清关键机制或步骤(2~3 点)

  • 【例子】举一个真实项目、论文或产品中的例子

  • 【对比】与易混淆概念或替代方案比较(如有)

  • 【收尾】总结适用场景 + 一个局限或风险

延伸学习

常见误区

⚠️ 常见踩坑

把反向传播说成「从输出传回输入更新输入」——实际更新的是权重;混淆前向中的激活值与反向中的梯度符号。

追问

追问 1反向传播和梯度下降是一回事吗?

不是。反向传播是计算梯度的算法(链式法则);梯度下降用梯度更新参数的优化方法。前者求方向,后者沿方向走一步,二者配合完成训练。

追问 2为什么激活函数必须可微?

反向传播需要对激活求导以继续链式传递。ReLU 在 0 点不可微但实践中用次梯度;阶跃函数不可微,无法有效训练深层网络。

追问 3前向和反向的计算量谁更大?

通常反向略贵(需存中间激活并多一次遍历),但同量级。推理只需前向;训练两者都要。混合精度、梯度检查点等可权衡显存与速度。

🔗 相似问题

同一考点的不同问法,换着练更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习