本页为 Math-06 矩阵微积分 子系列总论。深度学习训练需要 $\partial L / \partial \boldsymbol{\theta}$——标量损失对向量/矩阵参数的导数。
段末注释:本系列采用分子布局(numerator layout):$\partial f / \partial \mathbf{x}$ 与 $\mathbf{x}$ 同形(列向量对列向量);与部分教材分母布局不同,读论文时需留意。
系列入口:00.系列规划 | 前置:Math-03/02 向量矩阵、Math-04/03 SGD
1. 为何需要矩阵微积分(D1)

| 对象 | 形状 | 导数形状(分子布局) |
|---|---|---|
| $L$ 标量损失 | $1$ | — |
| $\mathbf{x}$ 输入向量 | $d \times 1$ | $\partial L/\partial \mathbf{x}$:$d \times 1$ |
| $W$ 权重矩阵 | $m \times n$ | $\partial L/\partial W$:$m \times n$ |
| $\mathbf{f}(\mathbf{x})$ 向量函数 | $m \times 1$ | Jacobian $J$:$m \times d$ |
PyTorch loss.backward() 自动填充 .grad,形状与参数一致。
2. 分子布局约定(D2)

标量对列向量 $\mathbf{x} \in \mathbb{R}^d$:
$$
\frac{\partial f}{\partial \mathbf{x}} = \begin{bmatrix} \partial f / \partial x_1 \ \vdots \ \partial f / \partial x_d \end{bmatrix} \in \mathbb{R}^d
$$
梯度 $\nabla f = \partial f / \partial \mathbf{x}$(列向量)。
链式法则(标量 $f$ 经 $\mathbf{y}=g(\mathbf{x})$):
$$
\frac{\partial f}{\partial \mathbf{x}} = \left(\frac{\partial \mathbf{y}}{\partial \mathbf{x}}\right)^\top \frac{\partial f}{\partial \mathbf{y}}
$$
其中 $\partial \mathbf{y}/\partial \mathbf{x}$ 为 Jacobian(见 03 专篇)。
3. 核心对象关系(D3)
| 名称 | 定义 | 形状 |
|---|---|---|
| 梯度 | $\nabla_{\mathbf{x}} f$ | 与 $\mathbf{x}$ 同形 |
| Jacobian | $J_{ij} = \partial y_i / \partial x_j$ | $m \times d$ |
| Hessian | $H_{ij} = \partial^2 f / \partial x_i \partial x_j$ | $d \times d$,对称 |
Math-04/07 牛顿法 用 $H$;深网训练主要用 $\nabla L$。
4. 与训练流程(D7)

1 | 前向:x -> f(x; W) -> L |
计算图(04 反向传播)记录依赖;autograd(10 PyTorch)自动执行。
5. 常见错误(D8)

| 错误 | 说明 |
|---|---|
| 布局混用 | 链式公式差一个转置 |
| 忘记 $\partial L/\partial W$ 与 $W$ 同形 | Linear 层 backward |
| 把 Jacobian 当梯度 | 向量输出需先聚合为标量 $L$ |
| 手动推导 vs 框架 | 应用 torch.autograd.gradcheck 验证 |
6. 验证梯度(D12)
1 | import torch |
7. 系列导航
| 篇号 | 主题 |
|---|---|
| 02 向量求导 | 基本公式 |
| 03 Jacobian | 链式法则 |
| 04 反向传播 | 计算图 |
| 06 层梯度手册 | Linear、Softmax+CE |
| 10 autograd | 自定义层 |