记号约定:标量用普通斜体(如 x),向量用粗体(如 x),矩阵用大写字母(如 A,J,H,X)。
1. 微分运算律
- 乘积微分
d(UV)=dUV+UdV
- 转置微分
d(U⊤)=(dU)⊤
- 标量转置不变(非常常用)
s=s⊤
- 迹的循环不变(维度匹配时)
tr(UVW)=tr(WUV)=tr(VWU)
- 用微分读梯度(列向量约定)
df=(∇xf)⊤dx
2. 二次型我到底是怎么推出来的
目标:
f(x)=x⊤Ax
第一步,直接对乘积微分:
df=d(x⊤Ax)=dx⊤Ax+x⊤Adx
用“标量转置不变”处理它:
dx⊤Ax=(dx⊤Ax)⊤=x⊤A⊤dx
代回去:
df=x⊤A⊤dx+x⊤Adx=x⊤(A⊤+A)dx
再改成“梯度点乘”格式:
df=((A+A⊤)x)⊤dx
所以:
∇xf=(A+A⊤)x
若 A 对称(A=A⊤):
∇xf=2Ax
3. 最小二乘
f(x)=21∥Ax−b∥22=21(Ax−b)⊤(Ax−b)
设残差 r=Ax−b,则
f=21r⊤r
先对 r 微分:
dr=Adx
再微分 f:
df=21(dr⊤r+r⊤dr)=r⊤dr=r⊤Adx
整理成读梯度格式:
df=(A⊤r)⊤dx
所以:
∇xf=A⊤(Ax−b)
4. 我常用的两个矩阵微分公式(附来路)
4.1 逆矩阵微分
从恒等式 XX−1=I 出发:
d(XX−1)=0
dXX−1+Xd(X−1)=0
左乘 X−1:
d(X−1)=−X−1(dX)X−1
4.2 logdetX 的微分
dlogdetX=tr(X−1dX)
于是可读出:
∂X∂logdetX=(X−1)⊤