本页定义 Jacobian(雅可比矩阵)并给出向量/矩阵形式的链式法则——反向传播的数学核心。
段末注释:Jacobian $J \in \mathbb{R}^{m \times d}$ 的第 $(i,j)$ 元为 $\partial y_i / \partial x_j$,描述向量函数 $\mathbf{y}=f(\mathbf{x})$ 的一阶局部线性近似。
系列入口:00.系列规划 | 前置:02 标量对向量求导
1. Jacobian 定义(D2–D3)

$\mathbf{y} = f(\mathbf{x})$,$\mathbf{x} \in \mathbb{R}^d$,$\mathbf{y} \in \mathbb{R}^m$:
$$
J = \frac{\partial \mathbf{y}}{\partial \mathbf{x}} =
\begin{bmatrix}
\partial y_1 / \partial x_1 & \cdots & \partial y_1 / \partial x_d \
\vdots & \ddots & \vdots \
\partial y_m / \partial x_1 & \cdots & \partial y_m / \partial x_d
\end{bmatrix} \in \mathbb{R}^{m \times d}
$$
线性近似:$\Delta \mathbf{y} \approx J , \Delta \mathbf{x}$。
2. 标量链式法则(D3)
$L$ 依赖 $\mathbf{y}$,$\mathbf{y}$ 依赖 $\mathbf{x}$(分子布局):
$$
\frac{\partial L}{\partial \mathbf{x}} = J^\top \frac{\partial L}{\partial \mathbf{y}}
$$
| 量 | 形状 |
|---|---|
| $\partial L / \partial \mathbf{y}$ | $m \times 1$ |
| $J$ | $m \times d$ |
| $\partial L / \partial \mathbf{x}$ | $d \times 1$ |
记忆:$J^\top$ 把 $\mathbf{y}$ 空间的梯度拉回 $\mathbf{x}$ 空间。
3. 复合示例(D6)

$\mathbf{y} = A\mathbf{x}$,$L = \frac{1}{2}|\mathbf{y}-\mathbf{b}|^2$:
$$
\frac{\partial L}{\partial \mathbf{y}} = \mathbf{y} - \mathbf{b}, \quad J = A
$$
$$
\frac{\partial L}{\partial \mathbf{x}} = A^\top (\mathbf{y} - \mathbf{b}) = A^\top(A\mathbf{x} - \mathbf{b})
$$
ReLU:$\mathbf{y} = \max(0, \mathbf{x})$ 逐元素,$J = \mathrm{diag}(\mathbb{1}_{x_i>0})$。
4. 多变量链(D3)
$L \leftarrow \mathbf{z} \leftarrow \mathbf{y} \leftarrow \mathbf{x}$:
$$
\frac{\partial L}{\partial \mathbf{x}} =
\left(\frac{\partial \mathbf{y}}{\partial \mathbf{x}}\right)^\top
\left(\frac{\partial \mathbf{z}}{\partial \mathbf{y}}\right)^\top
\frac{\partial L}{\partial \mathbf{z}}
$$
即逐段乘 $J^\top$,与计算图从 $L$ 向 $\mathbf{x}$ 反向一致(04 反向传播)。
5. ML 场景(D7)

| 层 | Jacobian 结构 |
|---|---|
| Linear $\mathbf{y}=W\mathbf{x}$ | $W$ |
| Element-wise $\sigma(\mathbf{x})$ | 对角阵 |
| Softmax | 稠密 $K \times K$(常用恒等式避显式 $J$) |
| BatchNorm | 与 batch 统计相关 |
6. 局限(D8)

| 陷阱 | 检查 |
|---|---|
| $J^\top$ 漏写 | 手推后 gradcheck |
| batch 维 | PyTorch 对 batch 独立,Jacobian 为 per-sample 或 vmap |
| 分母布局 | 公式为 $J$ 非 $J^\top$ |
7. PyTorch 验证(D12)
1 | import torch |
8. 小结
反向传播 = 链式法则 + 存储中间量 + 从 $L$ 反向乘 $J^\top$。下一篇:04 反向传播。