在数学中, 矩阵微积分是多元微积分的一种特殊表达,尤其是在矩阵空间上进行讨论的时候。它把单个函数对多个变量或者多元函数对单个变量的偏导数写成向量和矩阵的形式,使其可以被当成一个整体被处理。这使得要在多元函数寻找最大或最小值,又或是要为微分方程系统寻解的过程大幅简化。这里我们主要使用统计学和工程学中的惯用记法,而张量下标记法更常用于物理学中。
| Types |
Scalar |
Vector |
Matrix |
| Scalar |
∂x∂y |
∂x∂y |
∂x∂Y |
| Vector |
∂x∂y |
∂x∂y |
|
| Matrix |
∂X∂y |
|
|
向量求导
scalar-by-vector
标量 y=f(x) 相对于向量 x=(x1,x2,⋯,xn)T 的一阶导数称为 梯度
∇f(x)=∂x∂f=(∂xi∂f)n×1
标量 y=f(x) 相对于向量 x=(x1,x2,⋯,xn)T 的二阶导数称为 Hessian 矩阵
∇2f(x)=(∂xi∂xj∂2f)n×n
求导法则:
(1) 设 a 为常数, 标量函数 y=f(x),z=g(x)
∂x∂ay=a∂x∂y
∂x∂(y+z)=∂x∂y+∂x∂z
∂x∂(yz)=y∂x∂z+z∂x∂y
(2) 设 a 为常向量,A 为常矩阵,向量函数 y=f(x),z=g(x)
∂x∂aTy=∂x∂yTa=∂x∂ya
∂x∂yTz=∂x∂zTy=∂x∂yz+∂x∂zy
∂x∂xTAx=(A+AT)x
∂x∂xTx=∂x∂∥x∥2=2x
∂x∂∥x−a∥=∥x−a∥x−a
vector-by-scalar
向量 y=(y1,y2,⋯,yn)T 相对于标量 x 的导数为向量
∂x∂y=(∂x∂yi)1×n
求导法则:
设 a 为常数,A 为常矩阵,向量函数 y=f(x),z=g(x)
∂x∂ay=a∂x∂y
∂x∂Au=∂x∂yAT
∂x∂(y+z)=∂x∂y+∂x∂z
∂x∂(yT×z)=∂x∂y×z+yT×(∂x∂z)T
vector-by-vector
向量 y=(y1,y2,⋯,yn)T 相对于向量 x=(x1,x2,⋯,xm)T 的导数为 m×n 矩阵,第 i 行 j 列为
(∂x∂y)ij=∂xi∂yj
求导法则:
(1) 设 a 为常数,A 为常矩阵,向量函数 y=f(x),z=g(x),
∂x∂x=I
∂x∂ay=a∂x∂y
∂x∂Ax=AT
∂x∂xTA=A
∂x∂Ay=∂x∂yAT
∂x∂(y+z)=∂x∂y+∂x∂z
∂x∂yTAv=∂x∂yAv+∂x∂zATy
(2) 向量函数 y=f(x),标量函数 z=g(x)
∂x∂zy=z∂x∂y+∂x∂zyT
(3) 向量函数 y=f(x) 按位计算,即 yi=f(xi)。其导数为一个对角矩阵
∂x∂f(x)=diag(f′(x1),f′(x2),⋯))
矩阵求导
scalar-by-matrix
定义矩阵 Xm×n上的标量函数 y 对矩阵的导数为矩阵
∂X∂y=(∂xij∂y)m×n
定义矩阵上的重要的标量函数包括矩阵的迹和行列式。
求导法则:
(1) 设 a 为常数,标量函数 y=f(X),z=g(X)
∂X∂ay=a∂X∂y
∂X∂(y+z)=∂X∂y+∂X∂z
∂X∂(yz)=y∂X∂z+z∂X∂y
(2) 设 a,b 为常向量,A 为常矩阵
∂X∂aTXb=abT
(3) 设 A,B 为常矩阵
∂X∂tr(X)=I
∂X∂tr(AX)=∂X∂tr(XA)=AT
∂X∂tr(XTA)=∂X∂tr(AXT)=A
∂X∂tr(XAXT)=X(A+AT)
∂X∂tr(XTAX)=(A+AT)X
∂X∂tr(XAXTB)=BXA+BTXAT
matrix-by-scalar
矩阵 Y=(yij)m×n 对相对于标量 x 的导数为矩阵 (仅分子布局)
∂x∂Y=(∂x∂yij)m×n