在数学中, 矩阵微积分是多元微积分的一种特殊表达,尤其是在矩阵空间上进行讨论的时候。它把单个函数对多个变量或者多元函数对单个变量的偏导数写成向量和矩阵的形式,使其可以被当成一个整体被处理。这使得要在多元函数寻找最大或最小值,又或是要为微分方程系统寻解的过程大幅简化。这里我们主要使用统计学和工程学中的惯用记法,而张量下标记法更常用于物理学中。

Types Scalar Vector Matrix
Scalar yx\dfrac{\partial y}{\partial x} yx\dfrac{\partial\mathbf y}{\partial x} Yx\dfrac{\partial\mathbf Y}{\partial x}
Vector yx\dfrac{\partial y}{\partial\mathbf x} yx\dfrac{\partial\mathbf y}{\partial\mathbf x}
Matrix yX\dfrac{\partial y}{\partial\mathbf X}

向量求导

scalar-by-vector

标量 y=f(x)y=f(\mathbf x) 相对于向量 x=(x1,x2,,xn)T\mathbf x=(x_1,x_2,\cdots,x_n)^T 的一阶导数称为梯度

f(x)=fx=(fxi)n×1\nabla f(\mathbf x)=\frac{\partial f}{\partial\mathbf x}=\left(\frac{\partial f}{\partial x_i}\right)_{n\times 1}

标量 y=f(x)y=f(\mathbf x) 相对于向量 x=(x1,x2,,xn)T\mathbf x=(x_1,x_2,\cdots,x_n)^T 的二阶导数称为 Hessian 矩阵

2f(x)=(2fxixj)n×n\nabla^2f(\mathbf x)=\left(\frac{\partial^2 f}{\partial x_i\partial x_j}\right)_{n\times n}

求导法则

(1) 设 aa 为常数, 标量函数 u=u(x),v=v(x)u=u(\mathbf x),v=v(\mathbf x)

  • aux=aux\dfrac{\partial au}{\partial\mathbf x}=a\dfrac{\partial u}{\partial\mathbf x}
  • (u+v)x=ux+vx\dfrac{\partial (u+v)}{\partial\mathbf x}=\dfrac{\partial u}{\partial\mathbf x}+\dfrac{\partial v}{\partial\mathbf x}
  • (uv)x=uvx+vux\dfrac{\partial (uv)}{\partial\mathbf x}=u\dfrac{\partial v}{\partial\mathbf x}+v\dfrac{\partial u}{\partial\mathbf x}
  • g(u)x=guux\dfrac{\partial g(u)}{\partial\mathbf x}=\dfrac{\partial g}{\partial u}\dfrac{\partial u}{\partial\mathbf x}

(2) 设 a\mathbf a 为常向量,A\mathbf A 为常矩阵,向量函数 u=u(x),v=v(x)\mathbf u=\mathbf u(\mathbf x),\mathbf v=\mathbf v(\mathbf x)

  • aTux=uTax=uxa\dfrac{\partial \mathbf a^T\mathbf u}{\partial\mathbf x}=\dfrac{\partial \mathbf u^T\mathbf a}{\partial\mathbf x}=\dfrac{\partial\mathbf u}{\partial\mathbf x}\mathbf a
  • uTvx=vTux=uxv+vxu\dfrac{\partial \mathbf u^T\mathbf v}{\partial\mathbf x}=\dfrac{\partial \mathbf v^T\mathbf u}{\partial\mathbf x}=\dfrac{\partial\mathbf u}{\partial\mathbf x}\mathbf v+\dfrac{\partial\mathbf v}{\partial\mathbf x}\mathbf u
  • xTAxx=(A+AT)x\dfrac{\partial \mathbf x^T\mathbf A\mathbf x}{\partial\mathbf x}=(\mathbf A+\mathbf A^T)\mathbf x
  • xTxx=x2x=2x\dfrac{\partial \mathbf x^T\mathbf x}{\partial\mathbf x}=\dfrac{\partial \|\mathbf x\|^2}{\partial\mathbf x}=2\mathbf x
  • xax=xaxa\dfrac{\partial \|\mathbf x-\mathbf a\|}{\partial\mathbf x}=\dfrac{\mathbf x-\mathbf a}{\|\mathbf x-\mathbf a\|}

vector-by-scalar

向量 y=(y1,y2,,yn)T\mathbf y=(y_1,y_2,\cdots,y_n)^T 相对于标量 xx 的导数为向量

yx=(yix)1×n\frac{\partial\mathbf y}{\partial x}=\left(\frac{\partial y_i}{\partial x}\right)_{1\times n}

求导法则:设 aa 为常数,A\mathbf A 为常矩阵,向量函数 u=u(x),v=v(x)\mathbf u=\mathbf u(\mathbf x),\mathbf v=\mathbf v(\mathbf x)

  • aux=aux\dfrac{\partial a\mathbf u}{\partial x}=a\dfrac{\partial \mathbf u}{\partial x}
  • Aux=uxAT\dfrac{\partial \mathbf{Au}}{\partial x}=\dfrac{\partial \mathbf u}{\partial x}\mathbf A^T
  • (u+v)x=ux+vx\dfrac{\partial (\mathbf{u+v})}{\partial x}=\dfrac{\partial\mathbf u}{\partial x}+\dfrac{\partial\mathbf v}{\partial x}
  • (uT×v)x=ux×v+uT×(vx)T\dfrac{\partial (\mathbf u^T\times \mathbf v)}{\partial x}=\dfrac{\partial\mathbf u}{\partial x}\times\mathbf v+\mathbf u^T\times(\dfrac{\partial\mathbf v}{\partial x})^T
  • g(u)x=uxgu\dfrac{\partial\mathbf{g(u)}}{\partial x}=\dfrac{\partial\mathbf u}{\partial x}\dfrac{\partial\mathbf g}{\partial\mathbf u}
  • f(g(u))x=uxgufg\dfrac{\partial\mathbf{f(g(u))}}{\partial x}=\dfrac{\partial\mathbf u}{\partial x}\dfrac{\partial\mathbf g}{\partial\mathbf u}\dfrac{\partial\mathbf f}{\partial\mathbf g}

vector-by-vector

向量 y=(y1,y2,,yn)T\mathbf y=(y_1,y_2,\cdots,y_n)^T 相对于向量 x=(x1,x2,,xm)T\mathbf x=(x_1,x_2,\cdots,x_m)^T 的导数为 m×nm\times n 矩阵,第 iijj 列为

(yx)ij=yjxi\left(\frac{\partial\mathbf y}{\partial\mathbf x}\right)_{ij}=\frac{\partial y_j}{\partial x_i}

求导法则:设 aa 为常数,A\mathbf A 为常矩阵,向量函数 u=u(x),v=v(x)\mathbf u=\mathbf u(\mathbf x),\mathbf v=\mathbf v(\mathbf x) ,标量函数 u=u(x),v=v(x)u=u(\mathbf x),v=v(\mathbf x)

  • xx=I\dfrac{\partial \mathbf x}{\partial\mathbf x}=\mathbf I
  • aux=aux\dfrac{\partial a\mathbf u}{\partial\mathbf x}=a\dfrac{\partial \mathbf u}{\partial\mathbf x}
  • Aux=uxAT\dfrac{\partial \mathbf{Au}}{\partial\mathbf x}=\dfrac{\partial\mathbf u}{\partial\mathbf x}\mathbf A^T
  • vux=vux+vxuT\dfrac{\partial v\mathbf u}{\partial\mathbf x}=v\dfrac{\partial \mathbf u}{\partial\mathbf x}+\dfrac{\partial v}{\partial\mathbf x}\mathbf u^T
  • (u+v)x=ux+vx\dfrac{\partial (\mathbf{u+v})}{\partial\mathbf x}=\dfrac{\partial\mathbf u}{\partial\mathbf x}+\dfrac{\partial\mathbf v}{\partial\mathbf x}
  • g(u)x=uxgu\dfrac{\partial\mathbf{g(u)}}{\partial\mathbf x}=\dfrac{\partial \mathbf u}{\partial\mathbf x}\dfrac{\partial \mathbf g}{\partial\mathbf u}

矩阵求导

scalar-by-matrix

定义矩阵 Xm×n\mathbf X_{m\times n}上的标量函数 yy 对矩阵的导数为矩阵

yX=(yxij)m×n\frac{\partial y}{\partial \mathbf X}=\left(\cfrac{\partial y}{\partial x_{ij}}\right)_{m\times n}

定义矩阵上的重要的标量函数包括矩阵的行列式

求导法则

(1) 设 aa 为常数,标量函数 u=u(X),v=v(X)u=u(\mathbf X),v=v(\mathbf X)

  • auX=auX\dfrac{\partial au}{\partial\mathbf X}=a\dfrac{\partial u}{\partial\mathbf X}
  • (u+v)X=uX+vX\dfrac{\partial (u+v)}{\partial\mathbf X}=\dfrac{\partial u}{\partial\mathbf X}+\dfrac{\partial v}{\partial\mathbf X}
  • (uv)X=uvX+vuX\dfrac{\partial (uv)}{\partial\mathbf X}=u\dfrac{\partial v}{\partial\mathbf X}+v\dfrac{\partial u}{\partial\mathbf X}
  • g(u)X=guuX\dfrac{\partial g(u)}{\partial\mathbf X}=\dfrac{\partial g}{\partial u}\dfrac{\partial u}{\partial\mathbf X}

(2) 设 a,b\mathbf{a,b} 为常向量,A\mathbf A 为常矩阵

  • aTXbX=abT\dfrac{\partial\mathbf a^T\mathbf{Xb}}{\partial\mathbf X}=\mathbf{ab}^T

(3) 设 A,B\mathbf{A,B}​ 为常矩阵

  • tr(X)X=I\dfrac{\partial\text{tr}(\mathbf X)}{\partial\mathbf X}=\mathbf I​​
  • tr(AX)X=tr(XA)X=AT\dfrac{\partial\text{tr}(\mathbf{AX)}}{\partial\mathbf X}=\dfrac{\partial\text{tr}(\mathbf{XA)}}{\partial\mathbf X}=\mathbf A^T
  • tr(XTA)X=tr(AXT)X=A\dfrac{\partial\text{tr}(\mathbf X^T\mathbf A)}{\partial\mathbf X}=\dfrac{\partial\text{tr}(\mathbf{AX}^T)}{\partial\mathbf X}=\mathbf A
  • tr(XAXT)X=X(A+AT)\dfrac{\partial\text{tr}(\mathbf{XAX}^T)}{\partial\mathbf X}=\mathbf{X(A+A}^T)
  • tr(XTAX)X=(A+AT)X\dfrac{\partial\text{tr}(\mathbf X^T \mathbf{AX})}{\partial\mathbf X}=(\mathbf A+\mathbf A^T)\mathbf X
  • tr(XAXTB)X=BXA+BTXAT\dfrac{\partial\text{tr}(\mathbf{XAX}^T\mathbf B)}{\partial\mathbf X}=\mathbf{BXA}+\mathbf B^T\mathbf{XA}^T

matrix-by-scalar

矩阵 Y=(yij)m×n\mathbf Y=(y_{ij})_{m\times n} 对相对于标量 xx 的导数为矩阵 (仅分子布局)

Yx=(yijx)m×n\frac{\partial\mathbf Y}{\partial x}= \left(\cfrac{\partial y_{ij}}{\partial x}\right)_{m\times n}