Chapter 07

链式法则

对「函数套函数」求导时,用外导数 × 内导数相乘即可。这是反向传播的核心。

home.mathDiagramTitle

home.mathDiagramDescription

复合函数是 xx → 内层 → 外层 → yy链条外导数 × 内导数相乘就得到总导数。

用例子看计算顺序(一次强调一步)

1.例:与上图一致,设 u=g(x)=2x+1u = g(x) = 2x+1y=f(u)=u2y = f(u) = u^2,则 y=(2x+1)2y = (2x+1)^2。对 xx 求导。
2.① 内层导数(左图):u=g(x)=2x+1u = g(x) = 2x+1xx 求导 → 22
3.② 外层导数(右图):y=f(u)=u2y = f(u) = u^2uu 求导 → 2u=2(2x+1)2u = 2(2x+1)
4.③ 相乘:2×2(2x+1)=4(2x+1)2 \times 2(2x+1) = 4(2x+1) → 答案

像点沿链条移动一样,变化率会乘在一起传下去。反向传播也是这样的乘法结构。

什么是链式法则

一句话:函数套在一起就是复合函数。先把 xx 代入里层,再把结果代入外层,得到最终结果。对这种套在一起的函数求导,用的规则就是链式法则
深度学习里网络是多层的。输入经过第 1 层、第 2 层…最后得到损失。要对损失关于每个权重求导才能训练。
反向传播是从损失往输入方向一步一步传导数。每一步把「后面传过来的」乘上「这一步的导数」再往前传。这个乘法就是链式法则。
所以链式法则是反向传播的骨架。学过 Ch06 导数的话,这里只要学会在复合函数上用它就行。
一般当「改一个量会连锁地改另一个量」时,总变化率就是把链上每一段的变化率乘起来。下表是各领域用同一方式的例子。
情境求什么链式法则(总变化率)
成本依赖产量、产量依赖时间时成本随时间变化多快(成本/产量) ×\times (产量/时间)
气球半径随时间变化时体积随时间变化多快(体积/半径) ×\times (半径/时间)
速度依赖位置、位置依赖时间时与加速度的关系(速度/位置) ×\times (位置/时间)
AI 训练里损失经过很多层才出来,所以对每个权重求导时,每一层都用链式法则乘一次。学完本章就能自然过渡到 Ch08 偏导数与梯度。
复合函数求导时,把内层当成一块,用外层的导数乘以内层的导数即可。内层本身也是复合的话,就在那里再套一次链式法则。提示:先设内层=某式,只对外层求导,再乘上内层对 xx 的导数即可。