MATH ML Learning Lab
05 / 09
第 3 步 · 变化的线性传递

导数、偏导与局部线性化Derivatives & Chain Rule

导数不是枯燥的求导表,而是极小尺度下的“线性放大倍数”。复合求导之所以是乘法,正是因为放大倍数的逐级叠加传递——而整个现代深度学习的反向传播,无非是链式法则在计算图上的高效逆向执行。

16 分钟
阅读 + 实操
3 个
交互演示
入门
难度

微积分与计算图 · 交互演示

当前 x1.00
函数值 f(x)1.00
导数 f'(x)2.00
① 动态切线与局部线性化:拖动探针 x,观察切线斜率变化及右侧「微观放大镜」如何将弯曲曲线拉直为直线
位置探针 x 1.00
右侧放大圆框展示了切点处的微观世界:任何处处可导的光滑曲线,在足够小的局部都无限逼近于一条一阶切线。
② 步长 h 与数值微分误差(浴盆曲线):调节步长指数 k (h = 10^k),观察误差为何呈现两头高、中间低的凹形
步长指数 k (h = 10^k) h = 1e-4
h 过大时存在截断误差 O(h²);h 过小时(如 10⁻¹² 以下),浮点数相减引发灾难性抵消误差,导数精度严重失真。最优步长通常在 10⁻⁴ 左右。
③ 计算图反向传播:点击按钮,观察损失 L 的梯度如何沿节点逆向逐级连乘回传至输入与权重
计算图节点公式:z = w·x + b $\to$ a = ReLU(z) $\to$ L = 0.5(a - y)²。反向传播时,下游梯度与局部导数相乘,高效将损失反馈至所有叶子参数。

为什么学这步?

深度神经网络拥有数十亿参数,如果每个参数都靠扰动输入来数值算导数,前向推理要跑数十亿次,算力将瞬间崩溃。反向传播之所以神圣,就在于利用链式法则在计算图上反向扫描一遍,便能同时提取所有参数的精确解析导数。弄懂链式法则与计算图,你就掌握了现代深度学习训练引擎的最核心奥秘。

📌 发生了什么

  • 导数 = 切线斜率 = 变化率放大倍数
  • 复合求导 = 各级放大倍数依次连乘
  • 计算图反向遍历共享伴随量,极大节约算力

⚠️ 常见陷阱

  • 切忌把链式法则写成加法:复合是乘法,分支汇聚才是加法
  • 外层导数 f'(g(x)) 必须在中间值 u=g(x) 处求导,绝不可代入 x
  • 步长 h 并非越小越准:计算机有限精度会导致相消误差失真

本章小结

  • 一阶线性化公式:f(x+h) ≈ f(x) + f'(x)h
  • 中心差分截断误差为 O(h²),精度远高于单侧前向差分
  • 反向模式自动微分复杂度与参数量完全解耦

📐 前向模式 vs 反向模式自动微分

计算导数有三条路线:符号微分(公式极度膨胀)、数值微分(差分存在精度与速度瓶颈)、以及自动微分(AD)。自动微分进一步分为前向模式与反向模式:

机器学习的损失函数永远是标量损失 L ∈ ℝ,而输入权重有百万甚至百亿个(n 极大)。前向模式需要正向运行 n 次才能得到全梯度,而反向模式仅需 1 次反向遍历即可输出全部 n 个参数梯度。这就是反向传播成为深度学习统治性算法的根本原因。

🛁 步长 h 的浴盆误差理论分析

中心差分公式展开后的总误差由两部分叠加而成:截断误差来自泰勒展开高阶项,与 h² 成正比;而浮点舍入误差(Catastrophic Cancellation)来自两个接近的浮点数相减,与 ε/h 成正比(ε 为机器精度 ~10⁻¹⁶)。两曲线叠加形成完美的 U 形“浴盆曲线”,极小值点恰好出现在 h ≈ ε^(1/3) ≈ 10⁻⁵ 附近。

💻 微型反向模式自动微分引擎

// 伴随量逆向回传逻辑
function backward(node) {
  node.grad = 1.0;
  for (let n of topologicalOrder.reverse()) {
    if (n.op === 'mul') {
      n.parents[0].grad += n.grad * n.parents[1].val;
      n.parents[1].grad += n.grad * n.parents[0].val;
    } else if (n.op === 'add') {
      n.parents[0].grad += n.grad;
      n.parents[1].grad += n.grad;
    }
  }
}

📚 参考文献与延伸阅读

  • Baydin et al. (2018), Automatic Differentiation in Machine Learning: A Survey, JMLR — 全面梳理计算图、伴随量与前向/反向模式自动微分
  • Goodfellow et al., Deep Learning, §6.5 「Back-Propagation and Other Differentiation Algorithms」 — 神经网络计算图拓扑求导规范
  • Griewank & Walther (2008), Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation, SIAM — 自动微分经典专著
  • 对照阅读 → ML 第 5 步 · 多层感知机:反向传播推导实战;DL 第 1 步 · 梯度消失:链式连乘衰减分析

📝 课后练习

检验你的理解——答对为止