链式法则的树状图(tree-diagram chain rule)
当一个函数依赖于若干中间变量,而这些中间变量本身又依赖于其它变量时,多元链式法则会冒出许多项,并且极易漏掉一项。树状图是一张简单的图——它是记账工具,而非新理论——它保证你写下恰好正确的那个和。
你把末端的量画在顶端,向下分叉到它直接依赖的每个变量,再从那些变量分叉到它们各自依赖的变量,如此往下直到抵达自变量。要算顶端关于某个选定底层变量的导数,你列出从顶端到该变量的每一条不同路径;沿每条路径把写在各分支上的(偏)导数相乘;再把所有路径之积相加。一句话:沿分支相乘,跨分支相加。链式法则中的每一项都恰好对应一条从根到叶的路径,所以若你的图中有三条路径抵达 t,你的公式就有三项。
树状图是对链式法则最常见错误——漏掉一条路径——的解药,而且它能优雅地扩展到杂乱的真实情形:某热力学势依赖于温度与体积,而它们又依赖于时间;某损失函数通过网络的若干层依赖于权重。组织一道作业题的“沿支相乘、跨支相加”这同一套纪律,在结构上正是训练现代机器学习模型的反向模式自动微分。
设 w = f(x, y),其中 x = g(s, t)、y = h(s, t)。有两条路径抵达 s(经过 x 与经过 y),所以 partial w / partial s = (partial f / partial x)(partial x / partial s) + (partial f / partial y)(partial y / partial s)——每条从根到叶的路径对应一项。
两条分支抵达 s,所以公式有两项——树状图使这个计数不可能出错。
树状图能组织各项,却不能告诉你某变量是被固定还是允许变动。尤其在热力学中,你必须声明哪些变量是自变量,否则同一符号 partial f / partial x 可能指两个不同的东西。