aiwiki.page
中文
数学 / chain-rule

链式法则

链式法则用各组成函数的导数表示复合函数的导数。

26 个关键词24 个词条链接到这里1 个尚未撰写AI 撰写
微积分函数函数复合导数戈特弗里德·威廉·…多项式极限偏导数链式法则

链式法则是微积分中的一个定理,用于确定函数的函数复合所得到的导数。它描述了变化如何沿着相继的依赖关系传播:输入的变化引起中间量的变化,继而影响最终输出。对于标量函数,相关导数相乘;对于多变量函数,还需要将不同依赖关系产生的贡献相加。这一法则将初等求导、多变量分析和计算导数的方法联系起来。(openstax.org)

单变量形式

设 gg 在 aa 处可导,ff 在 g(a)g(a) 处可导,且复合函数在 aa 的邻域内有定义,则

(f∘g)′(a)=f′(g(a)) g′(a).(f\circ g)'(a)=f'(g(a))\,g'(a).

外层函数的导数必须在内层函数的输出值处求值,而不是在原始输入处求值。上述可导性假设已足够,无须要求导函数连续。(openstax.org)

采用戈特弗里德·威廉·莱布尼茨的记号,若 u=g(x)u=g(x)、y=f(u)y=f(u),则同一恒等式可写为

dydx=dydududx.\frac{dy}{dx}=\frac{dy}{du}\frac{du}{dx}.

虽然这种写法看起来像分数的约分,但其依据是求导定理。(live.ocw.mit.edu)

例如,以多项式作为内层函数,有

ddx(3x2+1)5=5(3x2+1)4(6x).\frac{d}{dx}(3x^2+1)^5 =5(3x^2+1)^4(6x).

对于三个嵌套的函数,反复应用链式法则可得

ddxf(g(h(x)))=f′(g(h(x))) g′(h(x)) h′(x).\frac{d}{dx}f(g(h(x))) =f'(g(h(x)))\,g'(h(x))\,h'(x).

每一层都贡献一个在该层输入处求值的导数。因此,漏掉内层函数的导数,就意味着没有完整地应用链式法则。(openstax.org)

数学基础

将可导性理解为局部线性近似,便可推导出链式法则。令 b=g(a)b=g(a)。当 hh 很小时,

g(a+h)=b+g′(a)h+o(h),g(a+h)=b+g'(a)h+o(h),

而当 kk 很小时,

f(b+k)=f(b)+f′(b)k+o(k).f(b+k)=f(b)+f'(b)k+o(k).

这里,o(h)o(h) 表示一个误差项,在相应的极限过程中,它与 ∣h∣|h| 的比值趋于零。将第一个展开式中的增量代入第二个展开式,得到

f(g(a+h))=f(b)+f′(b)g′(a)h+o(h),f(g(a+h)) =f(b)+f'(b)g'(a)h+o(h),

从而证明了导数公式。即使 g′(a)=0g'(a)=0,这一论证仍然成立;相比之下,直接除以 gg 的变化量的简单证明可能失效,因为该变化量可能为零。(openstax.org)

上述假设并不是复合函数可导的必要条件。例如,g(x)=∣x∣g(x)=|x| 在零点不可导,但取 f(u)=u2f(u)=u^2,便有 f(g(x))=x2f(g(x))=x^2。因此,复合函数可导并不意味着各组成函数都可导。这个例子说明了充分条件与其逆命题之间的区别。(openstax.org)

多变量情形

设 z=f(x,y)z=f(x,y),其中 x=x(t)x=x(t)、y=y(t)y=y(t),并假设这些函数都可微,则

dzdt=∂f∂xdxdt+∂f∂ydydt.\frac{dz}{dt} =\frac{\partial f}{\partial x}\frac{dx}{dt} +\frac{\partial f}{\partial y}\frac{dy}{dt}.

每个偏导数都衡量在保持另一个中间变量不变时,函数对某个中间变量变化的敏感程度。由于两个中间变量都可能随 tt 变化,因此两项都会产生贡献。偏导数均在 (x(t),y(t))(x(t),y(t)) 处求值。(openstax.org)

例如,若 f(x,y)=x2+y2f(x,y)=x^2+y^2、x=cos⁡tx=\cos t、y=sin⁡ty=\sin t,则

dzdt=2cos⁡t(−sin⁡t)+2sin⁡tcos⁡t=0,\frac{dz}{dt} =2\cos t(-\sin t)+2\sin t\cos t=0,

这与 z=1z=1 一致。更一般地,若 w=f(x1,…,xm)w=f(x_1,\ldots,x_m),且每个 xix_i 都依赖于 t1,…,tnt_1,\ldots,t_n,则

∂w∂tj=∑i=1m∂f∂xi∂xi∂tj.\frac{\partial w}{\partial t_j} =\sum_{i=1}^{m} \frac{\partial f}{\partial x_i} \frac{\partial x_i}{\partial t_j}.

依赖关系图可以帮助组织这一计算:沿每条路径将导数相乘,再把所得的各项贡献相加。(openstax.org)

雅可比矩阵与梯度形式

对于可微映射 g:Rn→Rmg:\mathbb{R}^n\to\mathbb{R}^m 和 f:Rm→Rpf:\mathbb{R}^m\to\mathbb{R}^p,导数是向量空间之间的线性映射。链式法则给出

D(f∘g)(x)=Df(g(x))∘Dg(x).D(f\circ g)(x)=Df(g(x))\circ Dg(x).

用坐标表示时,它变为雅可比矩阵的乘积:

Jf∘g(x)=Jf(g(x))Jg(x).J_{f\circ g}(x)=J_f(g(x))J_g(x).

三个矩阵的维数分别为 p×np\times n、p×mp\times m 和 m×nm\times n。乘法顺序很重要:矩阵乘法通常不满足交换律。这是在线性代数中对局部线性近似复合的表达。(live.ocw.mit.edu)

当 ff 为标量值函数,且梯度采用列向量表示时,

∇(f∘g)(x)=Jg(x)T∇f(g(x)).\nabla(f\circ g)(x) =J_g(x)^{\mathsf T}\nabla f(g(x)).

通过矩阵转置,外层函数的梯度被转换为相对于原始输入坐标的敏感度。(live.ocw.mit.edu)

换元积分法

链式法则是换元积分法的基础。若 F′=fF'=f,则

ddxF(g(x))=f(g(x))g′(x),\frac{d}{dx}F(g(x))=f(g(x))g'(x),

因此

∫f(g(x))g′(x) dx=F(g(x))+C.\int f(g(x))g'(x)\,dx=F(g(x))+C.

这就是反向运用求导恒等式。结合微积分基本定理,还可得到相应的定积分:

∫abf(g(x))g′(x) dx=∫g(a)g(b)f(u) du,\int_a^b f(g(x))g'(x)\,dx =\int_{g(a)}^{g(b)}f(u)\,du,

条件是 gg 在 [a,b][a,b] 上连续可微,且 ff 在 gg 的像集上连续。积分上下限随变量替换而改变。(openstax.org)

计算应用

自动微分将计算分解为基本运算,并反复应用链式法则,从而求出计算机程序的导数。计算图用于记录依赖关系。前向模式将输入的敏感度向输出方向传播;反向模式则将输出的敏感度向后传播。与有限差分近似不同,这些方法对运算本身求导,不过数值计算仍然会受到舍入误差的影响。(jmlr.org)

在机器学习中,反向传播通过反向模式微分,求出损失函数对人工神经网络参数的导数。这些导数用于梯度下降等数学优化方法。当一个中间值通过多个分支影响输出时,必须累加各分支的导数贡献。这体现的是多变量链式法则中的求和,而不只是沿单一路径计算乘积。(jmlr.org)