矩阵微分与常用矩阵导数
层级:B|按需
1. 本章目标
矩阵微积分把“对许多参数逐个求偏导”压缩成形状清晰的向量/矩阵公式。你需要能推导线性回归、L2 正则化和简单神经网络层的梯度,并知道不同资料的布局约定可能不同。
本章默认:标量对列向量的梯度仍为同形状列向量;标量对矩阵的梯度与矩阵同形状。
2. 先做形状检查
若
f:Rd→R,
则
∇xf∈Rd.
若
f:Rm×n→R,
定义梯度 ∇Xf∈Rm×n,满足一阶变化
df≈⟨∇Xf,dX⟩F=tr((∇Xf)TdX).
形状错的“导数公式”一定错;形状对只是必要条件,不是充分条件。
3. 微分法的核心思想
把输入小变化记为 dx 或 dX,计算输出的一阶变化,并整理成标准形式。
常用规则:
d(A+B)=dA+dB,
d(AB)=(dA)B+A(dB),
d(AT)=(dA)T.
若 A 为常量,dA=0。
对标量函数,若能整理为
df=gTdx,
则 ∇xf=g;若整理为
df=tr(GTdX),
则 ∇Xf=G。
4. 向量线性函数
f(x)=aTx.
微分:
df=aTdx,
所以
∇x(aTx)=a.
若 f(x)=xTa,结果相同,因为它是同一个标量。
5. 二次型
f(x)=xTAx.
使用乘积法则:
df=(dx)TAx+xTA(dx).
第一项是标量,可转置为 xTATdx,所以
df=xT(AT+A)dx=((A+AT)x)Tdx.
因此
∇x(xTAx)=(A+AT)x.
若 A 对称:
∇x(xTAx)=2Ax.
特别地
∇x∥x∥22=2x.
6. 仿射映射的 Jacobian
y=Ax+b
的微分为
dy=A,dx,
所以 Jacobian 是 A。若后面有标量损失 L(y),链式法则给
∇xL=AT∇yL.
这就是全连接层反向传播到输入的核心公式。
7. 最小二乘梯度
定义
L(w)=21∥Xw−y∥22.
令残差 r=Xw−y,则
dL=rTdr=rTX,dw.
整理为
dL=(XTr)Tdw,
所以
∇wL=XT(Xw−y).
若没有 1/2,梯度多一个因子 2。令梯度为零即得到正规方程。
8. 对权重矩阵的梯度
设
Z=XW,L=L(Z),
上游梯度为 G=∇ZL。因
dZ=X,dW,
dL=tr(GTdZ)=tr(GTX,dW)=tr((XTG)TdW),
故
∇WL=XTG.
若也对 X 求导:
∇XL=GWT.
这两式是批量全连接层反向传播。
9. 迹导数
常用结果:
∇Xtr(ATX)=A,
∇Xtr(AXB)=ATBT,
其中第二式假设整体迹为标量且形状兼容。更安全的方法是每次用微分和迹循环性推导,而非机械套表。
10. 逆与 log-determinant 微分
由 XX−1=I 微分:
d(X−1)=−X−1(dX)X−1.
对可逆 X:
dlog∣detX∣=tr(X−1dX),
因此在相应定义域内
∇Xlog∣detX∣=X−T.
它们用于高斯似然、协方差优化和生成模型。实际计算仍通过线性求解与分解,避免显式逆。
11. L1 不可导与次梯度
∥w∥1=j∑∣wj∣
在 wj=0 时导数为 sign(wj),在 0 处没有普通导数。可使用次梯度集合 [−1,1] 或近端算子。不能简单宣称 0 处导数为 0 而不说明算法约定。
12. 梯度检查
对某方向 D,中心差分近似方向导数:
2ϵf(X+ϵD)−f(X−ϵD)≈⟨∇Xf,D⟩F.
选择多个随机方向可检验解析/自动微分梯度。ϵ 太大有截断误差,太小有浮点消去误差,双精度常从 10−5 左右尝试。
易错点
- 不同教材可能采用 numerator/denominator layout,Jacobian 会转置;先看约定。
- 矩阵乘法不能在求导过程中随意换序。
- 对称假设未给出时,xTAx 梯度不是简单 2Ax。
- 目标必须为标量才能直接谈同形状梯度。
- 自动微分给出计算图的导数,不能修复形状正确但目标写错的问题。
常见问答
Q1:需要背矩阵求导表吗?
记住少量核心式和微分—迹方法更可靠。遇到复杂式先拆计算图、写形状,再推导或让自动微分验证。
Q2:为什么损失常乘 1/2?
平方项求导会产生 2,乘 1/2 后抵消,使梯度简洁;不改变最优点。
Q3:自动微分是否意味着不用学矩阵微积分?
仍需理解梯度形状、链式法则、数值稳定和目标设计,才能调试模型、阅读论文和实现新算子。
练习
- 求 ∇x(bTx+c)。
- 求 ∇x21∥x−a∥22。
- 若 A 对称,求 ∇x(21xTAx−bTx)。
- 对 L(W)=21∥XW−Y∥F2,写出梯度。
- 为什么梯度检查更适合用中心差分而非单边差分?
答案与提示
- b。
- x−a。
- Ax−b。
- XT(XW−Y)。
- 中心差分截断误差通常为 O(ϵ2),单边差分为 O(ϵ)。