链式法则 小象实战讲义 · 人工智能数学基础
在多元函数微积分中,链式法则是连接不同变量间导数关系的核心桥梁。本节我们将从一元链式法则出发,逐步推广到多元乃至向量函数的情形,揭示其“并联路径求和”的直观本质,并学习如何用矩阵形式优雅地表示复杂的复合关系。掌握链式法则,是理解神经网络反向传播、优化算法梯度计算等人工智能核心数学原理的关键一步。
💡 核心导读 从一元到多元 :回顾一元链式法则,理解其“单链”结构,并推广到中间变量或输入变量为多个的“多链”情形。并联路径法则 :掌握多元链式法则的核心思想——每个中间变量构成一条独立路径,总导数等于所有路径贡献之和。向量函数的矩阵表示 :当输入和输出均为向量时,链式法则表现为雅可比矩阵的乘法,形式简洁且易于计算。抽象位置导数 :学习当中间变量没有显式命名时,如何使用 f 1 ′ f_1’ f 1 ′ , f 2 ′ f_2’ f 2 ′ 等记号表示对函数第几个位置变量的偏导数。实战应用 :通过具体例题,练习绘制变量关系图、写出链式法则表达式,并用代码进行符号验证。一元与多元链式法则的对比 我们先回顾熟悉的一元函数链式法则。设有函数 x = x ( t ) x = x(t) x = x ( t ) 和 y = f ( x ) y = f(x) y = f ( x ) ,则复合函数 y = f ( x ( t ) ) y = f(x(t)) y = f ( x ( t )) 对 t t t 的导数为: d y d t = d f d x ⋅ d x d t \frac{dy}{dt} = \frac{df}{dx} \cdot \frac{dx}{dt} d t d y = d x df ⋅ d t d x 其结构可以形象地看作一条“单链”:t → x → y t \rightarrow x \rightarrow y t → x → y 。导数就是沿着这条链,将每一步的导数相乘。
现在考虑多元情形。设 x = x ( t ) x = x(t) x = x ( t ) , y = y ( t ) y = y(t) y = y ( t ) ,且 z = f ( x , y ) z = f(x, y) z = f ( x , y ) 。此时,t t t 通过两条独立的路径影响 z z z :一条是 t → x → z t \rightarrow x \rightarrow z t → x → z ,另一条是 t → y → z t \rightarrow y \rightarrow z t → y → z 。这类似于电路中的并联,总效应是各支路效应之和。因此,多元链式法则为: d z d t = ∂ f ∂ x ⋅ d x d t + ∂ f ∂ y ⋅ d y d t \frac{dz}{dt} = \frac{\partial f}{\partial x} \cdot \frac{dx}{dt} + \frac{\partial f}{\partial y} \cdot \frac{dy}{dt} d t d z = ∂ x ∂ f ⋅ d t d x + ∂ y ∂ f ⋅ d t d y 注意,f f f 是二元函数,所以对 x x x , y y y 求导是偏导数 ∂ f / ∂ x \partial f / \partial x ∂ f / ∂ x , ∂ f / ∂ y \partial f / \partial y ∂ f / ∂ y ;而 x x x , y y y 是 t t t 的一元函数,所以对 t t t 求导是常导数 d x / d t dx/dt d x / d t , d y / d t dy/dt d y / d t 。最终 z z z 作为 t t t 的一元函数,其导数写作 d z / d t dz/dt d z / d t 。
核心记忆点 :多元链式法则就是找到所有从自变量到因变量的路径,对每条路径应用“连乘”规则,然后将所有路径的结果相加。
向量函数的链式法则与矩阵表示 当输入和输出都是向量时,链式法则具有更统一和优美的矩阵形式。考虑更一般的复合关系: 设 t = ( x , y ) T \mathbf{t} = (x, y)^T t = ( x , y ) T 是自变量向量,首先映射到中间变量向量 w = ( u , v ) T \mathbf{w} = (u, v)^T w = ( u , v ) T ,其中 u = u ( x , y ) u = u(x, y) u = u ( x , y ) , v = v ( x , y ) v = v(x, y) v = v ( x , y ) 。然后 w \mathbf{w} w 再映射到因变量向量 z = ( z 1 , z 2 ) T \mathbf{z} = (z_1, z_2)^T z = ( z 1 , z 2 ) T ,其中 z 1 = f ( u , v ) z_1 = f(u, v) z 1 = f ( u , v ) , z 2 = g ( u , v ) z_2 = g(u, v) z 2 = g ( u , v ) 。
我们的目标是求 z \mathbf{z} z 对 t \mathbf{t} t 的导数,即雅可比矩阵 ∂ z / ∂ t \partial \mathbf{z} / \partial \mathbf{t} ∂ z / ∂ t 。根据定义,这是一个 2 × 2 2 \times 2 2 × 2 的矩阵: ∂ z ∂ t = ( ∂ z 1 ∂ x ∂ z 1 ∂ y ∂ z 2 ∂ x ∂ z 2 ∂ y ) \frac{\partial \mathbf{z}}{\partial \mathbf{t}} = \begin{pmatrix} \dfrac{\partial z_1}{\partial x} & \dfrac{\partial z_1}{\partial y} \[8pt] \dfrac{\partial z_2}{\partial x} & \dfrac{\partial z_2}{\partial y} \end{pmatrix} ∂ t ∂ z = ∂ x ∂ z 1 ∂ x ∂ z 2 ∂ y ∂ z 1 ∂ y ∂ z 2
如何计算这个矩阵?我们以 ∂ z 1 / ∂ x \partial z_1 / \partial x ∂ z 1 / ∂ x 为例。z 1 z_1 z 1 通过 u u u 和 v v v 两条路径依赖于 x x x ,因此: ∂ z 1 ∂ x = ∂ f ∂ u ⋅ ∂ u ∂ x + ∂ f ∂ v ⋅ ∂ v ∂ x \frac{\partial z_1}{\partial x} = \frac{\partial f}{\partial u} \cdot \frac{\partial u}{\partial x} + \frac{\partial f}{\partial v} \cdot \frac{\partial v}{\partial x} ∂ x ∂ z 1 = ∂ u ∂ f ⋅ ∂ x ∂ u + ∂ v ∂ f ⋅ ∂ x ∂ v 同理可以写出其他三个元素。观察这四个元素的表达式,我们可以发现一个惊人的规律:整个雅可比矩阵 ∂ z / ∂ t \partial \mathbf{z} / \partial \mathbf{t} ∂ z / ∂ t 恰好等于另外两个雅可比矩阵的乘积: ∂ z ∂ t ⏟ 2 × 2 = ∂ z ∂ w ⏟ 2 × 2 ⋅ ∂ w ∂ t ⏟ 2 × 2 \underbrace{\frac{\partial \mathbf{z}}{\partial \mathbf{t}}} {2 \times 2} = \underbrace{\frac{\partial \mathbf{z}}{\partial \mathbf{w}}} {2 \times 2} \cdot \underbrace{\frac{\partial \mathbf{w}}{\partial \mathbf{t}}}_{2 \times 2}2 × 2 ∂ t ∂ z = 2 × 2 ∂ w ∂ z ⋅ 2 × 2 ∂ t ∂ w 其中, ∂ z ∂ w = ( ∂ z 1 ∂ u ∂ z 1 ∂ v ∂ z 2 ∂ u ∂ z 2 ∂ v ) , ∂ w ∂ t = ( ∂ u ∂ x ∂ u ∂ y ∂ v ∂ x ∂ v ∂ y ) \frac{\partial \mathbf{z}}{\partial \mathbf{w}} = \begin{pmatrix} \dfrac{\partial z_1}{\partial u} & \dfrac{\partial z_1}{\partial v} \[8pt] \dfrac{\partial z_2}{\partial u} & \dfrac{\partial z_2}{\partial v} \end{pmatrix}, \quad \frac{\partial \mathbf{w}}{\partial \mathbf{t}} = \begin{pmatrix} \dfrac{\partial u}{\partial x} & \dfrac{\partial u}{\partial y} \[8pt] \dfrac{\partial v}{\partial x} & \dfrac{\partial v}{\partial y} \end{pmatrix} ∂ w ∂ z = ∂ u ∂ z 1 ∂ u ∂ z 2 ∂ v ∂ z 1 ∂ v ∂ z 2 , ∂ t ∂ w = ∂ x ∂ u ∂ x ∂ v ∂ y ∂ u ∂ y ∂ v
这就是向量函数链式法则的矩阵形式 。它和一维形式 d z / d t = ( d z / d w ) ⋅ ( d w / d t ) dz/dt = (dz/dw) \cdot (dw/dt) d z / d t = ( d z / d w ) ⋅ ( d w / d t ) 在结构上完全一致,只是乘法变成了矩阵乘法。这种形式非常紧凑,并且易于推广到任意维度的向量。
链式法则的应用与计算技巧 绘制变量关系图 解决链式法则问题的第一步,永远是理清变量间的依赖关系,并画出关系图。例如,对于函数 z = e x y sin ( x + y ) z = e^{xy} \sin(x+y) z = e x y sin ( x + y ) ,我们可以引入中间变量 u = x y u = xy u = x y , v = x + y v = x+y v = x + y ,则 z = e u sin v z = e^u \sin v z = e u sin v 。关系图为:( x , y ) → ( u , v ) → z (x, y) \rightarrow (u, v) \rightarrow z ( x , y ) → ( u , v ) → z 。
写出并计算偏导数 根据关系图和链式法则: ∂ z ∂ x = ∂ z ∂ u ⋅ ∂ u ∂ x + ∂ z ∂ v ⋅ ∂ v ∂ x = ( e u sin v ) ⋅ y + ( e u cos v ) ⋅ 1 = e x y [ y sin ( x + y ) + cos ( x + y ) ] \begin{aligned} \frac{\partial z}{\partial x} &= \frac{\partial z}{\partial u} \cdot \frac{\partial u}{\partial x} + \frac{\partial z}{\partial v} \cdot \frac{\partial v}{\partial x} \ &= (e^u \sin v) \cdot y + (e^u \cos v) \cdot 1 \ &= e^{xy}[y \sin(x+y) + \cos(x+y)] \end{aligned} ∂ x ∂ z = ∂ u ∂ z ⋅ ∂ x ∂ u + ∂ v ∂ z ⋅ ∂ x ∂ v = ( e u sin v ) ⋅ y + ( e u cos v ) ⋅ 1 = e x y [ y sin ( x + y ) + cos ( x + y )] ∂ z ∂ y = ∂ z ∂ u ⋅ ∂ u ∂ y + ∂ z ∂ v ⋅ ∂ v ∂ y = ( e u sin v ) ⋅ x + ( e u cos v ) ⋅ 1 = e x y [ x sin ( x + y ) + cos ( x + y ) ] \begin{aligned} \frac{\partial z}{\partial y} &= \frac{\partial z}{\partial u} \cdot \frac{\partial u}{\partial y} + \frac{\partial z}{\partial v} \cdot \frac{\partial v}{\partial y} \ &= (e^u \sin v) \cdot x + (e^u \cos v) \cdot 1 \ &= e^{xy}[x \sin(x+y) + \cos(x+y)] \end{aligned} ∂ y ∂ z = ∂ u ∂ z ⋅ ∂ y ∂ u + ∂ v ∂ z ⋅ ∂ y ∂ v = ( e u sin v ) ⋅ x + ( e u cos v ) ⋅ 1 = e x y [ x sin ( x + y ) + cos ( x + y )]
使用矩阵乘法计算 对于上例,我们也可以用矩阵形式验证: ∂ z ∂ ( x , y ) = ∂ z ∂ ( u , v ) ⋅ ∂ ( u , v ) ∂ ( x , y ) \frac{\partial z}{\partial (x, y)} = \frac{\partial z}{\partial (u, v)} \cdot \frac{\partial (u, v)}{\partial (x, y)} ∂ ( x , y ) ∂ z = ∂ ( u , v ) ∂ z ⋅ ∂ ( x , y ) ∂ ( u , v ) 其中 ∂ z ∂ ( u , v ) = ( ∂ z ∂ u , ∂ z ∂ v ) = ( e u sin v , e u cos v ) \frac{\partial z}{\partial (u, v)} = \left( \dfrac{\partial z}{\partial u}, \dfrac{\partial z}{\partial v} \right) = (e^u \sin v, e^u \cos v) ∂ ( u , v ) ∂ z = ( ∂ u ∂ z , ∂ v ∂ z ) = ( e u sin v , e u cos v ) 是一个行向量(1 × 2 1 \times 2 1 × 2 矩阵),∂ ( u , v ) ∂ ( x , y ) = ( y x 1 1 ) \frac{\partial (u, v)}{\partial (x, y)} = \begin{pmatrix} y & x \ 1 & 1 \end{pmatrix} ∂ ( x , y ) ∂ ( u , v ) = ( y 1 x 1 ) 是一个 2 × 2 2 \times 2 2 × 2 矩阵。两者相乘: ( e u sin v , e u cos v ) ( y x 1 1 ) = ( e u ( y sin v + cos v ) , e u ( x sin v + cos v ) ) (e^u \sin v, e^u \cos v) \begin{pmatrix} y & x \ 1 & 1 \end{pmatrix} = (e^u(y \sin v + \cos v), e^u(x \sin v + \cos v)) ( e u sin v , e u cos v ) ( y 1 x 1 ) = ( e u ( y sin v + cos v ) , e u ( x sin v + cos v )) 将 u = x y , v = x + y u=xy, v=x+y u = x y , v = x + y 代入,结果与直接计算一致。
import sympy as sp
# 使用符号计算验证链式法则
x, y = sp.symbols( 'x y' )
# 定义中间变量和函数(u, v 用独立符号表示,便于对中间变量求偏导)
u, v = sp.symbols( 'u v' )
z = sp.exp(u) * sp.sin(v)
# 方法1: 直接对复合函数求偏导(先将 u=xy, v=x+y 代入)
z_xy = z.subs({u: x * y, v: x + y})
dz_dx_direct = sp.diff(z_xy, x)
dz_dy_direct = sp.diff(z_xy, y)
# 方法2: 使用链式法则计算
# 先计算各个部分导数(这里 u, v 是独立符号,可直接对它们求导)
dz_du = sp.diff(z, u)
dz_dv = sp.diff(z, v)
du_dx = sp.diff(x * y, x)
dv_dx = sp.diff(x + y, x)
du_dy = sp.diff(x * y, y)
dv_dy = sp.diff(x + y, y)
# 应用链式法则
dz_dx_chain = dz_du * du_dx + dz_dv * dv_dx
dz_dy_chain = dz_du * du_dy + dz_dv * dv_dy
# 将u,v的表达式代入链式法则结果中
dz_dx_chain_subbed = dz_dx_chain.subs({u: x * y, v: x + y})
dz_dy_chain_subbed = dz_dy_chain.subs({u: x * y, v: x + y})
print ( "直接求导结果:" )
print ( f "∂z/∂x = { sp.simplify(dz_dx_direct) } " )
print ( f "∂z/∂y = { sp.simplify(dz_dy_direct) } " )
print ( " \n 链式法则结果(代入后):" )
print ( f "∂z/∂x = { sp.simplify(dz_dx_chain_subbed) } " )
print ( f "∂z/∂y = { sp.simplify(dz_dy_chain_subbed) } " )
print ( " \n 两者是否相等?" )
print ( f "∂z/∂x: { sp.simplify(dz_dx_direct - dz_dx_chain_subbed) == 0} " )
print ( f "∂z/∂y: { sp.simplify(dz_dy_direct - dz_dy_chain_subbed) == 0} " ) 抽象函数与位置导数记号 有时我们会遇到没有显式给出中间变量名的复合函数,例如 z = f ( x , y , x 2 y ) z = f(x, y, x^2 y) z = f ( x , y , x 2 y ) 。这里 f f f 是一个三元函数,它的三个输入位置依次被 x x x , y y y , x 2 y x^2 y x 2 y 占据。为了应用链式法则,我们需要对 f f f 的每个输入位置求导。
我们引入位置导数记号:用 f 1 ′ f_1’ f 1 ′ 表示 f f f 对第一个位置变量 的偏导数,f 2 ′ f_2’ f 2 ′ 表示对第二个位置变量的偏导数,依此类推。即,若 f = f ( u , v , w ) f = f(u, v, w) f = f ( u , v , w ) ,则: f 1 ′ = ∂ f ∂ u , f 2 ′ = ∂ f ∂ v , f 3 ′ = ∂ f ∂ w f_1’ = \frac{\partial f}{\partial u}, \quad f_2’ = \frac{\partial f}{\partial v}, \quad f_3’ = \frac{\partial f}{\partial w} f 1 ′ = ∂ u ∂ f , f 2 ′ = ∂ v ∂ f , f 3 ′ = ∂ w ∂ f
对于 z = f ( x , y , x 2 y ) z = f(x, y, x^2 y) z = f ( x , y , x 2 y ) ,我们设中间变量为 u = x u = x u = x , v = y v = y v = y , w = x 2 y w = x^2 y w = x 2 y 。则关系图为 ( x , y ) → ( u , v , w ) → z (x, y) \rightarrow (u, v, w) \rightarrow z ( x , y ) → ( u , v , w ) → z 。应用链式法则: ∂ z ∂ x = ∂ f ∂ u ⋅ ∂ u ∂ x + ∂ f ∂ v ⋅ ∂ v ∂ x + ∂ f ∂ w ⋅ ∂ w ∂ x = f 1 ′ ⋅ 1 + f 2 ′ ⋅ 0 + f 3 ′ ⋅ ( 2 x y ) = f 1 ′ + 2 x y f 3 ′ \begin{aligned} \frac{\partial z}{\partial x} &= \frac{\partial f}{\partial u} \cdot \frac{\partial u}{\partial x} + \frac{\partial f}{\partial v} \cdot \frac{\partial v}{\partial x} + \frac{\partial f}{\partial w} \cdot \frac{\partial w}{\partial x} \ &= f_1’ \cdot 1 + f_2’ \cdot 0 + f_3’ \cdot (2xy) \ &= f_1’ + 2xy f_3’ \end{aligned} ∂ x ∂ z = ∂ u ∂ f ⋅ ∂ x ∂ u + ∂ v ∂ f ⋅ ∂ x ∂ v + ∂ w ∂ f ⋅ ∂ x ∂ w = f 1 ′ ⋅ 1 + f 2 ′ ⋅ 0 + f 3 ′ ⋅ ( 2 x y ) = f 1 ′ + 2 x y f 3 ′ ∂ z ∂ y = ∂ f ∂ u ⋅ ∂ u ∂ y + ∂ f ∂ v ⋅ ∂ v ∂ y + ∂ f ∂ w ⋅ ∂ w ∂ y = f 1 ′ ⋅ 0 + f 2 ′ ⋅ 1 + f 3 ′ ⋅ ( x 2 ) = f 2 ′ + x 2 f 3 ′ \begin{aligned} \frac{\partial z}{\partial y} &= \frac{\partial f}{\partial u} \cdot \frac{\partial u}{\partial y} + \frac{\partial f}{\partial v} \cdot \frac{\partial v}{\partial y} + \frac{\partial f}{\partial w} \cdot \frac{\partial w}{\partial y} \ &= f_1’ \cdot 0 + f_2’ \cdot 1 + f_3’ \cdot (x^2) \ &= f_2’ + x^2 f_3’ \end{aligned} ∂ y ∂ z = ∂ u ∂ f ⋅ ∂ y ∂ u + ∂ v ∂ f ⋅ ∂ y ∂ v + ∂ w ∂ f ⋅ ∂ y ∂ w = f 1 ′ ⋅ 0 + f 2 ′ ⋅ 1 + f 3 ′ ⋅ ( x 2 ) = f 2 ′ + x 2 f 3 ′
用矩阵形式可简洁地写为: ∂ z ∂ ( x , y ) = ( f 1 ′ , f 2 ′ , f 3 ′ ) ( 1 0 0 1 2 x y x 2 ) = ( f 1 ′ + 2 x y f 3 ′ , f 2 ′ + x 2 f 3 ′ ) \frac{\partial z}{\partial (x, y)} = (f_1’, f_2’, f_3’) \begin{pmatrix} 1 & 0 \ 0 & 1 \ 2xy & x^2 \end{pmatrix} = (f_1’ + 2xy f_3’, \ f_2’ + x^2 f_3’) ∂ ( x , y ) ∂ z = ( f 1 ′ , f 2 ′ , f 3 ′ ) 1 0 2 x y 0 1 x 2 = ( f 1 ′ + 2 x y f 3 ′ , f 2 ′ + x 2 f 3 ′ )
📝 动手练一练 基础练习 :设 u = e x cos y u = e^{x} \cos y u = e x cos y , v = x y 2 v = x y^2 v = x y 2 ,且 z = ln ( u 2 + v ) z = \ln(u^2 + v) z = ln ( u 2 + v ) 。请使用链式法则计算 ∂ z ∂ x \dfrac{\partial z}{\partial x} ∂ x ∂ z 和 ∂ z ∂ y \dfrac{\partial z}{\partial y} ∂ y ∂ z 。
参考答案 : 引入中间变量 u , v u, v u , v ,则 z = ln ( u 2 + v ) z = \ln(u^2 + v) z = ln ( u 2 + v ) 。 ∂ z ∂ x = 2 u u 2 + v ⋅ ∂ u ∂ x + 1 u 2 + v ⋅ ∂ v ∂ x = 2 e x cos y e 2 x cos 2 y + x y 2 ⋅ e x cos y + 1 e 2 x cos 2 y + x y 2 ⋅ y 2 = 2 e 2 x cos 2 y + y 2 e 2 x cos 2 y + x y 2 \begin{aligned} \frac{\partial z}{\partial x} &= \frac{2u}{u^2+v} \cdot \frac{\partial u}{\partial x} + \frac{1}{u^2+v} \cdot \frac{\partial v}{\partial x} \ &= \frac{2e^{x}\cos y}{e^{2x}\cos^2 y + x y^2} \cdot e^{x}\cos y + \frac{1}{e^{2x}\cos^2 y + x y^2} \cdot y^2 \ &= \frac{2e^{2x}\cos^2 y + y^2}{e^{2x}\cos^2 y + x y^2} \end{aligned} ∂ x ∂ z = u 2 + v 2 u ⋅ ∂ x ∂ u + u 2 + v 1 ⋅ ∂ x ∂ v = e 2 x cos 2 y + x y 2 2 e x cos y ⋅ e x cos y + e 2 x cos 2 y + x y 2 1 ⋅ y 2 = e 2 x cos 2 y + x y 2 2 e 2 x cos 2 y + y 2 ∂ z ∂ y = 2 u u 2 + v ⋅ ∂ u ∂ y + 1 u 2 + v ⋅ ∂ v ∂ y = 2 e x cos y e 2 x cos 2 y + x y 2 ⋅ ( − e x sin y ) + 1 e 2 x cos 2 y + x y 2 ⋅ 2 x y = − 2 e 2 x sin y cos y + 2 x y e 2 x cos 2 y + x y 2 \begin{aligned} \frac{\partial z}{\partial y} &= \frac{2u}{u^2+v} \cdot \frac{\partial u}{\partial y} + \frac{1}{u^2+v} \cdot \frac{\partial v}{\partial y} \ &= \frac{2e^{x}\cos y}{e^{2x}\cos^2 y + x y^2} \cdot (-e^{x}\sin y) + \frac{1}{e^{2x}\cos^2 y + x y^2} \cdot 2xy \ &= \frac{-2e^{2x}\sin y \cos y + 2xy}{e^{2x}\cos^2 y + x y^2} \end{aligned} ∂ y ∂ z = u 2 + v 2 u ⋅ ∂ y ∂ u + u 2 + v 1 ⋅ ∂ y ∂ v = e 2 x cos 2 y + x y 2 2 e x cos y ⋅ ( − e x sin y ) + e 2 x cos 2 y + x y 2 1 ⋅ 2 x y = e 2 x cos 2 y + x y 2 − 2 e 2 x sin y cos y + 2 x y
矩阵形式练习 :设 t = ( r , s ) T \mathbf{t} = (r, s)^T t = ( r , s ) T ,w = ( p , q ) T \mathbf{w} = (p, q)^T w = ( p , q ) T ,其中 p = r 2 − s p = r^2 - s p = r 2 − s , q = r s q = r s q = r s 。又设 z = ( z 1 , z 2 ) T \mathbf{z} = (z_1, z_2)^T z = ( z 1 , z 2 ) T ,其中 z 1 = p q z_1 = p q z 1 = pq , z 2 = p + q 2 z_2 = p + q^2 z 2 = p + q 2 。 a) 计算雅可比矩阵 ∂ z ∂ t \dfrac{\partial \mathbf{z}}{\partial \mathbf{t}} ∂ t ∂ z 。 b) 验证 ∂ z ∂ t = ∂ z ∂ w ⋅ ∂ w ∂ t \dfrac{\partial \mathbf{z}}{\partial \mathbf{t}} = \dfrac{\partial \mathbf{z}}{\partial \mathbf{w}} \cdot \dfrac{\partial \mathbf{w}}{\partial \mathbf{t}} ∂ t ∂ z = ∂ w ∂ z ⋅ ∂ t ∂ w 成立。
参考答案 : a) 直接计算: ∂ z ∂ t = ( ∂ z 1 ∂ r ∂ z 1 ∂ s ∂ z 2 ∂ r ∂ z 2 ∂ s ) \dfrac{\partial \mathbf{z}}{\partial \mathbf{t}} = \begin{pmatrix} \dfrac{\partial z_1}{\partial r} & \dfrac{\partial z_1}{\partial s} \[6pt] \dfrac{\partial z_2}{\partial r} & \dfrac{\partial z_2}{\partial s} \end{pmatrix} ∂ t ∂ z = ∂ r ∂ z 1 ∂ r ∂ z 2 ∂ s ∂ z 1 ∂ s ∂ z 2 。 由 z 1 = ( r 2 − s ) ( r s ) = r 3 s − r s 2 z_1 = (r^2 - s)(r s) = r^3 s - r s^2 z 1 = ( r 2 − s ) ( r s ) = r 3 s − r s 2 ,得 ∂ z 1 ∂ r = 3 r 2 s − s 2 \dfrac{\partial z_1}{\partial r} = 3r^2 s - s^2 ∂ r ∂ z 1 = 3 r 2 s − s 2 , ∂ z 1 ∂ s = r 3 − 2 r s \dfrac{\partial z_1}{\partial s} = r^3 - 2rs ∂ s ∂ z 1 = r 3 − 2 r s 。 由 z 2 = ( r 2 − s ) + ( r s ) 2 = r 2 − s + r 2 s 2 z_2 = (r^2 - s) + (r s)^2 = r^2 - s + r^2 s^2 z 2 = ( r 2 − s ) + ( r s ) 2 = r 2 − s + r 2 s 2 ,得 ∂ z 2 ∂ r = 2 r + 2 r s 2 \dfrac{\partial z_2}{\partial r} = 2r + 2r s^2 ∂ r ∂ z 2 = 2 r + 2 r s 2 , ∂ z 2 ∂ s = − 1 + 2 r 2 s \dfrac{\partial z_2}{\partial s} = -1 + 2r^2 s ∂ s ∂ z 2 = − 1 + 2 r 2 s 。 故 ∂ z ∂ t = ( 3 r 2 s − s 2 r 3 − 2 r s 2 r ( 1 + s 2 ) 2 r 2 s − 1 ) \dfrac{\partial \mathbf{z}}{\partial \mathbf{t}} = \begin{pmatrix} 3r^2 s - s^2 & r^3 - 2r s \ 2r(1+s^2) & 2r^2 s - 1 \end{pmatrix} ∂ t ∂ z = ( 3 r 2 s − s 2 2 r ( 1 + s 2 ) r 3 − 2 r s 2 r 2 s − 1 ) 。
b) 计算中间矩阵: ∂ z ∂ w = ( ∂ z 1 ∂ p ∂ z 1 ∂ q ∂ z 2 ∂ p ∂ z 2 ∂ q ) = ( q p 1 2 q ) = ( r s r 2 − s 1 2 r s ) \dfrac{\partial \mathbf{z}}{\partial \mathbf{w}} = \begin{pmatrix} \dfrac{\partial z_1}{\partial p} & \dfrac{\partial z_1}{\partial q} \[6pt] \dfrac{\partial z_2}{\partial p} & \dfrac{\partial z_2}{\partial q} \end{pmatrix} = \begin{pmatrix} q & p \ 1 & 2q \end{pmatrix} = \begin{pmatrix} r s & r^2 - s \ 1 & 2r s \end{pmatrix} ∂ w ∂ z = ∂ p ∂ z 1 ∂ p ∂ z 2 ∂ q ∂ z 1 ∂ q ∂ z 2 = ( q 1 p 2 q ) = ( r s 1 r 2 − s 2 r s ) 。 ∂ w ∂ t = ( ∂ p ∂ r ∂ p ∂ s ∂ q ∂ r ∂ q ∂ s ) = ( 2 r − 1 s r ) \dfrac{\partial \mathbf{w}}{\partial \mathbf{t}} = \begin{pmatrix} \dfrac{\partial p}{\partial r} & \dfrac{\partial p}{\partial s} \[6pt] \dfrac{\partial q}{\partial r} & \dfrac{\partial q}{\partial s} \end{pmatrix} = \begin{pmatrix} 2r & -1 \ s & r \end{pmatrix} ∂ t ∂ w = ∂ r ∂ p ∂ r ∂ q ∂ s ∂ p ∂ s ∂ q = ( 2 r s − 1 r ) 。 矩阵相乘: ( r s r 2 − s 1 2 r s ) ( 2 r − 1 s r ) = ( 2 r 2 s + s ( r 2 − s ) − r s + r ( r 2 − s ) 2 r + 2 r s 2 − 1 + 2 r 2 s ) = ( 3 r 2 s − s 2 r 3 − 2 r s 2 r ( 1 + s 2 ) 2 r 2 s − 1 ) \begin{pmatrix} r s & r^2 - s \ 1 & 2r s \end{pmatrix} \begin{pmatrix} 2r & -1 \ s & r \end{pmatrix} = \begin{pmatrix} 2r^2 s + s(r^2 - s) & -r s + r(r^2 - s) \ 2r + 2r s^2 & -1 + 2r^2 s \end{pmatrix} = \begin{pmatrix} 3r^2 s - s^2 & r^3 - 2r s \ 2r(1+s^2) & 2r^2 s - 1 \end{pmatrix} ( r s 1 r 2 − s 2 r s ) ( 2 r s − 1 r ) = ( 2 r 2 s + s ( r 2 − s ) 2 r + 2 r s 2 − r s + r ( r 2 − s ) − 1 + 2 r 2 s ) = ( 3 r 2 s − s 2 2 r ( 1 + s 2 ) r 3 − 2 r s 2 r 2 s − 1 ) 。 与 (a) 结果一致,验证通过。
本章小结 本节系统学习了多元微分学中的链式法则,这是连接复合函数各层导数关系的核心工具。
要点回顾 :
基本思想 :多元链式法则本质是“并联路径求和”。对于复合函数,要找出所有从自变量到因变量的路径,每条路径的贡献是路径上各环节偏导数的乘积,总导数是所有路径贡献之和。矩阵形式 :当输入和输出均为向量时,链式法则表现为雅可比矩阵的乘法:∂ z ∂ t = ∂ z ∂ w ⋅ ∂ w ∂ t \dfrac{\partial \mathbf{z}}{\partial \mathbf{t}} = \dfrac{\partial \mathbf{z}}{\partial \mathbf{w}} \cdot \dfrac{\partial \mathbf{w}}{\partial \mathbf{t}} ∂ t ∂ z = ∂ w ∂ z ⋅ ∂ t ∂ w 。这种形式高度统一且便于计算。位置导数 :对于抽象复合函数 f ( expr1 , expr2 , . . . ) f(\text{expr1}, \text{expr2}, …) f ( expr1 , expr2 , … ) ,使用 f 1 ′ f_1’ f 1 ′ , f 2 ′ f_2’ f 2 ′ , … 表示对函数第1, 2, … 个位置变量的偏导数,使得链式法则的书写不依赖于中间变量的具体命名。解题步骤 :面对链式法则问题,应遵循“绘图 → 识别路径 → 写出公式 → 逐项计算”的流程,确保不遗漏任何路径。行动清单 :
绘制关系图 :下次遇到复合函数求导,先花30秒画出变量间的依赖关系图,这是应用链式法则最直观可靠的方法。矩阵乘法验证 :选择一个二维例题,分别用路径求和与矩阵乘法两种方法计算,用代码验证结果是否一致,加深对矩阵形式本质的理解。抽象记号练习 :尝试对函数 g ( x , y ) = h ( x + y , x y , x / y ) g(x, y) = h(x+y, xy, x/y) g ( x , y ) = h ( x + y , x y , x / y ) 写出 ∂ g / ∂ x \partial g / \partial x ∂ g / ∂ x 的表达式,使用 h 1 ′ h_1’ h 1 ′ , h 2 ′ h_2’ h 2 ′ , h 3 ′ h_3’ h 3 ′ 记号。链式法则不仅是微积分的优美结论,更是神经网络中误差反向传播(Backpropagation)算法的数学基石。理解并熟练运用它,将为后续学习深度学习等人工智能核心领域打下坚实的数学基础。
— 小象教研组