笔记 / 详情

向量求导记号简记(Jacobian, gradient, Hessian)

2026.04.07
方法备忘
2408 字数

约定

本文采用分子布局(numerator layout)。

x=(x1,,xn)TRn,y(x)=(y1(x),,ym(x))TRm,f(x)R.\mathbf x=(x_1,\dots,x_n)^T\in\mathbb R^n, \qquad \mathbf y(\mathbf x)=(y_1(\mathbf x),\dots,y_m(\mathbf x))^T\in\mathbb R^m, \qquad f(\mathbf x)\in\mathbb R.

默认向量都是列向量(column vector)。

向量对向量

向量值函数 y:RnRm\mathbf y:\mathbb R^n\to\mathbb R^m 的导数定义为

yxT:=[yixj]1im, 1jn.\frac{\partial \mathbf y}{\partial \mathbf x^T} := \left[ \frac{\partial y_i}{\partial x_j} \right]_{1\le i\le m,\ 1\le j\le n}.

这是雅可比矩阵(Jacobian matrix),其维度为

yxTRm×n.\frac{\partial \mathbf y}{\partial \mathbf x^T}\in\mathbb R^{m\times n}.

因此:

  • 行数等于分子的维度,即 mm
  • 列数等于分母的维度,即 nn

微分写成

dy=yxTdx.d\mathbf y = \frac{\partial \mathbf y}{\partial \mathbf x^T}\,d\mathbf x.

标量对向量

f:RnRf:\mathbb R^n\to\mathbb R,则

fxT:=[fx1fx2fxn].\frac{\partial f}{\partial \mathbf x^T} := \begin{bmatrix} \dfrac{\partial f}{\partial x_1} & \dfrac{\partial f}{\partial x_2} & \cdots & \dfrac{\partial f}{\partial x_n} \end{bmatrix}.

fxTR1×n.\frac{\partial f}{\partial \mathbf x^T}\in\mathbb R^{1\times n}.

也就是说,在本文约定下,标量对向量的导数是行向量(row vector)。

对应微分为

df=fxTdx.df = \frac{\partial f}{\partial \mathbf x^T}\,d\mathbf x.

若定义梯度(gradient)

f:=(fxT)T,\nabla f:= \left( \frac{\partial f}{\partial \mathbf x^T} \right)^T,

fRn×1\nabla f\in\mathbb R^{n\times 1} 是列向量。

二阶导数

标量函数 ff 的二阶导数定义为

2fxxT:=x(fxT).\frac{\partial^2 f}{\partial \mathbf x\,\partial \mathbf x^T} := \frac{\partial}{\partial \mathbf x} \left( \frac{\partial f}{\partial \mathbf x^T} \right).

这就是 Hessian matrix:

2fxxT=[2fxixj]1i,jnRn×n.\frac{\partial^2 f}{\partial \mathbf x\,\partial \mathbf x^T} = \left[ \frac{\partial^2 f}{\partial x_i\partial x_j} \right]_{1\le i,j\le n} \in\mathbb R^{n\times n}.

这里分母的顺序不能随意改写:

  • 先对 xT\mathbf x^T 求导,得到 1×n1\times n 的行向量 fxT.\frac{\partial f}{\partial \mathbf x^T}.
  • 再对 x\mathbf x 求导,得到 n×nn\times n 的矩阵 2fxxT.\frac{\partial^2 f}{\partial \mathbf x\,\partial \mathbf x^T}.

fC2f\in C^2,则 Hessian 对称,即

2fxixj=2fxjxi.\frac{\partial^2 f}{\partial x_i\partial x_j} = \frac{\partial^2 f}{\partial x_j\partial x_i}.

一页总结

在本文约定下,

yxTRm×n,fxTR1×n,2fxxTRn×n.\frac{\partial \mathbf y}{\partial \mathbf x^T}\in\mathbb R^{m\times n}, \qquad \frac{\partial f}{\partial \mathbf x^T}\in\mathbb R^{1\times n}, \qquad \frac{\partial^2 f}{\partial \mathbf x\,\partial \mathbf x^T}\in\mathbb R^{n\times n}.

所以:

  • 向量对向量得到 Jacobian。
  • 标量对向量得到行向量。
  • 标量对向量的二阶导数得到 Hessian。

若教材把 f/x\partial f/\partial \mathbf x 直接写成列向量,那么它采用的是另一套布局;那时 Jacobian 与 Hessian 的排列也要一起改变。真正重要的是全文记号前后一致。