反向传播是链式法则在计算图上的高效应用:前向传播逐层计算激活并缓存中间值,反向传播从损失出发,逐层把梯度乘以局部导数传回,得到每个参数对损失的偏导,再用优化器更新参数。它的复杂度与一次前向传播同阶,避免了逐参数数值微分的 O(参数数) 开销。
以单层为例:z = Wx + b,a = σ(z),则 ∂L/∂W = (∂L/∂a · σ'(z)) · xᵀ。深度网络中误差信号 δ 从输出层逐层回传:δ_l = (W_{l+1}ᵀδ_{l+1}) ⊙ σ'(z_l)。
易错点:反向传播不是独立于前向的过程,它依赖前向缓存的激活值,这也是训练显存的大头;梯度检查(gradient checking)可用数值微分验证实现正确性。追问方向:自动微分的前向模式与反向模式区别?为什么深度学习用反向模式?计算图动态图与静态图的权衡(PyTorch vs TensorFlow 1.x)?