人工智能

反向传播手推:计算图与链式法则

导读:Goodfellow《深度学习》第 6 章的精髓:把反向传播理解为计算图上的链式法则,而不是需要背诵的公式堆。

计算图与两种传播

前向传播沿图算出损失 $L$;反向传播从 $L$ 出发按拓扑逆序累加梯度 $\partial L/\partial z$。每个节点只需知道自己的局部导数——模块化是深度学习框架的架构原理。

以两层网络为例手推一遍:$z = W_2\,\sigma(W_1 x)$,损失对 $W_1$ 的梯度 $\delta_1 = W_2^T\delta_2 \odot \sigma'(W_1x)$,其中 $\delta$ 是各层误差信号。矩阵形式比逐元素公式更抗错。

梯度消失的来源

连乘结构 $\prod W_k^T \mathrm{diag}(\sigma')$:层数一多,若 $\sigma' \le 1$(sigmoid 最大 0.25)则梯度指数衰减——深层网络前面的层几乎学不到东西。

三条出路各治一环:ReLU 类激活(正区导数恒 1)、残差连接(梯度走高速直通道)、归一化层(把激活值拉回线性区)。它们是同一问题的三个侧面。

实践自检

梯度检查(数值梯度与反向梯度相对误差小于 1e-6)是写自定义层的必备仪式;训练不收敛时按「损失量级 → 梯度范数逐层统计 → 学习率」顺序排查。

常见误区

  • sigmoid 深层网络不初始化直接训练。
  • softmax 加交叉熵分开实现导致数值不稳定(应合并化简)。

吃透自检

  • 能手推两层网络的完整反向传播
  • 能解释梯度消失的连乘机制
  • 能实现并解释梯度检查

← 人工智能 书目精读列表 经典研读