最小二乘中的矩阵求导基础总结

矩阵求导基础总结

在最小二乘问题中,经常会遇到含有 XTX^TXT 的表达式,例如:

XTCX^T CXTC

CTXC^T XCTX

XTMXX^T M XXTMX

∥AX−B∥2\|AX-B\|^2∥AX−B∥2

需要注意的是,严格来说,通常不是单独对 XTX^TXT 求导,而是对包含 XTX^TXT 的标量函数进行求导。

设:

X=x1x2⋮xnX=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}X= x1x2⋮xn

如果 f(X)f(X)f(X) 是一个标量函数,那么它对 XXX 的导数通常写成梯度形式:

∂f∂X=∂f∂x1∂f∂x2⋮∂f∂xn\frac{\partial f}{\partial X}=\begin{bmatrix}\frac{\partial f}{\partial x_1}\\\frac{\partial f}{\partial x_2}\\\vdots\\\frac{\partial f}{\partial x_n}\end{bmatrix}∂X∂f= ∂x1∂f∂x2∂f⋮∂xn∂f

也就是说,对 XXX 求导,本质上就是分别对 XXX 中的每一个分量 xix_ixi 求偏导。


1. 线性项 XTCX^T CXTC 的求导

设:

X=x1x2⋮xn,C=c1c2⋮cnX=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix},\quad C=\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}X= x1x2⋮xn ,C= c1c2⋮cn

则:

XTC=x1x2⋯xnc1c2⋮cnX^T C=\begin{bmatrix}x_1 & x_2 & \cdots & x_n\end{bmatrix}\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}XTC=x1x2⋯xn c1c2⋮cn

展开可得:

XTC=x1c1+x2c2+⋯+xncnX^T C=x_1c_1+x_2c_2+\cdots+x_nc_nXTC=x1c1+x2c2+⋯+xncn

分别对每个变量求偏导:

∂(XTC)∂x1=c1\frac{\partial (X^T C)}{\partial x_1}=c_1∂x1∂(XTC)=c1

∂(XTC)∂x2=c2\frac{\partial (X^T C)}{\partial x_2}=c_2∂x2∂(XTC)=c2

⋮\vdots⋮

∂(XTC)∂xn=cn\frac{\partial (X^T C)}{\partial x_n}=c_n∂xn∂(XTC)=cn

因此:

∂(XTC)∂X=c1c2⋮cn=C\frac{\partial (X^T C)}{\partial X}=\begin{bmatrix}c_1\\c_2\\\vdots\\c_n\end{bmatrix}=C∂X∂(XTC)= c1c2⋮cn =C

所以有结论:

∂(XTC)∂X=C\boxed{\frac{\partial (X^T C)}{\partial X}=C}∂X∂(XTC)=C

由于 CTXC^T XCTX 与 XTCX^T CXTC 都是标量,并且二者相等:

CTX=XTCC^T X=X^T CCTX=XTC

因此:

∂(CTX)∂X=C\boxed{\frac{\partial (C^T X)}{\partial X}=C}∂X∂(CTX)=C


2. 二次型 XTMXX^T M XXTMX 的求导

设:

f(X)=XTMXf(X)=X^T M Xf(X)=XTMX

其中:

X∈Rn×1X\in \mathbb{R}^{n\times 1}X∈Rn×1

M∈Rn×nM\in \mathbb{R}^{n\times n}M∈Rn×n

二次型求导的常用结论是:

∂(XTMX)∂X=(M+MT)X\boxed{\frac{\partial (X^T M X)}{\partial X}=(M+M^T)X}∂X∂(XTMX)=(M+MT)X

如果 MMM 是对称矩阵,即:

MT=MM^T=MMT=M

那么:

∂(XTMX)∂X=2MX\boxed{\frac{\partial (X^T M X)}{\partial X}=2MX}∂X∂(XTMX)=2MX

下面简单推导这个公式。

将二次型展开:

XTMX=∑i=1n∑j=1nxiMijxjX^T M X=\sum_{i=1}^{n}\sum_{j=1}^{n}x_iM_{ij}x_jXTMX=i=1∑nj=1∑nxiMijxj

对某一个变量 xkx_kxk 求偏导。由于 xkx_kxk 既可能出现在前面的 xix_ixi 位置,也可能出现在后面的 xjx_jxj 位置,因此会产生两部分。

当 i=ki=ki=k 时,有:

∑j=1nMkjxj\sum_{j=1}^{n}M_{kj}x_jj=1∑nMkjxj

当 j=kj=kj=k 时,有:

∑i=1nxiMik\sum_{i=1}^{n}x_iM_{ik}i=1∑nxiMik

由于 MikM_{ik}Mik 是标量,所以可以写成:

∑i=1nMikxi\sum_{i=1}^{n}M_{ik}x_ii=1∑nMikxi

因此:

∂(XTMX)∂xk=∑j=1nMkjxj+∑i=1nMikxi\frac{\partial (X^T M X)}{\partial x_k}=\sum_{j=1}^{n}M_{kj}x_j+\sum_{i=1}^{n}M_{ik}x_i∂xk∂(XTMX)=j=1∑nMkjxj+i=1∑nMikxi

第一项对应矩阵形式中的第 kkk 个分量:

∑j=1nMkjxj=(MX)k\sum_{j=1}^{n}M_{kj}x_j=(MX)_kj=1∑nMkjxj=(MX)k

第二项对应矩阵形式中的第 kkk 个分量:

∑i=1nMikxi=(MTX)k\sum_{i=1}^{n}M_{ik}x_i=(M^T X)_ki=1∑nMikxi=(MTX)k

所以整体写成矩阵形式为:

∂(XTMX)∂X=MX+MTX\frac{\partial (X^T M X)}{\partial X}=MX+M^T X∂X∂(XTMX)=MX+MTX

即:

∂(XTMX)∂X=(M+MT)X\frac{\partial (X^T M X)}{\partial X}=(M+M^T)X∂X∂(XTMX)=(M+MT)X

如果 MMM 是对称矩阵:

MT=MM^T=MMT=M

则有:

∂(XTMX)∂X=2MX\frac{\partial (X^T M X)}{\partial X}=2MX∂X∂(XTMX)=2MX


3. 最小二乘中的矩阵求导

最小二乘问题通常写成:

X=arg⁡min⁡X∥AX−B∥2X=\arg\min_X \|AX-B\|^2X=argXmin∥AX−B∥2

定义目标函数:

J(X)=∥AX−B∥2J(X)=\|AX-B\|^2J(X)=∥AX−B∥2

根据二范数定义:

J(X)=(AX−B)T(AX−B)J(X)=(AX-B)^T(AX-B)J(X)=(AX−B)T(AX−B)

展开:

J(X)=XTATAX−XTATB−BTAX+BTBJ(X)=X^T A^T A X-X^T A^T B-B^T A X+B^T BJ(X)=XTATAX−XTATB−BTAX+BTB

因为 XTATBX^T A^T BXTATB 是标量,BTAXB^T A XBTAX 也是标量,并且二者相等:

XTATB=BTAXX^T A^T B=B^T A XXTATB=BTAX

所以:

J(X)=XTATAX−2XTATB+BTBJ(X)=X^T A^T A X-2X^T A^T B+B^T BJ(X)=XTATAX−2XTATB+BTB


4. 对每一项分别求导

第一项为:

XTATAXX^T A^T A XXTATAX

令:

M=ATAM=A^T AM=ATA

则:

XTATAX=XTMXX^T A^T A X=X^T M XXTATAX=XTMX

由于:

(ATA)T=ATA(A^T A)^T=A^T A(ATA)T=ATA

所以 ATAA^T AATA 是对称矩阵。

因此:

∂(XTATAX)∂X=2ATAX\frac{\partial (X^T A^T A X)}{\partial X}=2A^T A X∂X∂(XTATAX)=2ATAX

第二项为:

−2XTATB-2X^T A^T B−2XTATB

令:

C=ATBC=A^T BC=ATB

则:

−2XTATB=−2XTC-2X^T A^T B=-2X^T C−2XTATB=−2XTC

所以:

∂(−2XTATB)∂X=−2ATB\frac{\partial (-2X^T A^T B)}{\partial X}=-2A^T B∂X∂(−2XTATB)=−2ATB

第三项为:

BTBB^T BBTB

由于该项不含 XXX,所以:

∂(BTB)∂X=0\frac{\partial (B^T B)}{\partial X}=0∂X∂(BTB)=0

因此目标函数的导数为:

∂J∂X=2ATAX−2ATB\frac{\partial J}{\partial X}=2A^T A X-2A^T B∂X∂J=2ATAX−2ATB

令导数为零:

2ATAX−2ATB=02A^T A X-2A^T B=02ATAX−2ATB=0

两边同时除以 222,得到:

ATAX−ATB=0A^T A X-A^T B=0ATAX−ATB=0

即:

ATAX=ATB\boxed{A^T A X=A^T B}ATAX=ATB

这就是最小二乘问题对应的正规方程。

当 ATAA^T AATA 可逆时,有:

X=(ATA)−1ATB\boxed{X=(A^T A)^{-1}A^T B}X=(ATA)−1ATB


5. 最小二乘求导的直接记忆公式

对于目标函数:

J(X)=∥AX−B∥2J(X)=\|AX-B\|^2J(X)=∥AX−B∥2

可以直接使用如下结论:

∂∂X∥AX−B∥2=2AT(AX−B)\boxed{\frac{\partial}{\partial X}\|AX-B\|^2=2A^T(AX-B)}∂X∂∥AX−B∥2=2AT(AX−B)

令导数为零:

2AT(AX−B)=02A^T(AX-B)=02AT(AX−B)=0

得到:

AT(AX−B)=0A^T(AX-B)=0AT(AX−B)=0

展开:

ATAX−ATB=0A^T A X-A^T B=0ATAX−ATB=0

因此:

ATAX=ATB\boxed{A^T A X=A^T B}ATAX=ATB


6. 常用矩阵求导公式总结

线性项:

∂(XTC)∂X=C\boxed{\frac{\partial (X^T C)}{\partial X}=C}∂X∂(XTC)=C

∂(CTX)∂X=C\boxed{\frac{\partial (C^T X)}{\partial X}=C}∂X∂(CTX)=C

二次型:

∂(XTMX)∂X=(M+MT)X\boxed{\frac{\partial (X^T M X)}{\partial X}=(M+M^T)X}∂X∂(XTMX)=(M+MT)X

如果 MMM 是对称矩阵:

∂(XTMX)∂X=2MX\boxed{\frac{\partial (X^T M X)}{\partial X}=2MX}∂X∂(XTMX)=2MX

最小二乘残差形式:

∂∂X∥AX−B∥2=2AT(AX−B)\boxed{\frac{\partial}{\partial X}\|AX-B\|^2=2A^T(AX-B)}∂X∂∥AX−B∥2=2AT(AX−B)

正规方程:

ATAX=ATB\boxed{A^T A X=A^T B}ATAX=ATB

最小二乘解:

X=(ATA)−1ATB\boxed{X=(A^T A)^{-1}A^T B}X=(ATA)−1ATB


7. 一句话总结

最小二乘问题的核心是最小化残差平方和:

J(X)=∥AX−B∥2J(X)=\|AX-B\|^2J(X)=∥AX−B∥2

对参数 XXX 求导:

∂J∂X=2AT(AX−B)\frac{\partial J}{\partial X}=2A^T(AX-B)∂X∂J=2AT(AX−B)

令导数为零:

2AT(AX−B)=02A^T(AX-B)=02AT(AX−B)=0

即可得到正规方程:

ATAX=ATBA^T A X=A^T BATAX=ATB

如果 ATAA^T AATA 可逆,则最小二乘解为:

X=(ATA)−1ATBX=(A^T A)^{-1}A^T BX=(ATA)−1ATB

相关推荐
赛博云推-Twitter热门霸屏工具36 分钟前
Twitter矩阵运营实践:账号分层、流量协同与自动化执行方案解析
矩阵·自动化·twitter
m沐沐38 分钟前
【机器学习】信用卡欺诈检测实战:逻辑回归 + 过采样
人工智能·算法·机器学习·pycharm·逻辑回归
code_pgf39 分钟前
SFT 过程及技巧详解
人工智能·机器学习
子非鱼92139 分钟前
机器学习之决策树与集成学习
决策树·机器学习·集成学习
zy_destiny1 小时前
【大模型应用】用千问大模型实现屋顶材质分类算法实现
人工智能·深度学习·机器学习·计算机视觉·数据挖掘·材质·通义千问
imDwAaY1 小时前
从非线性分类到多层神经网络 CS188 Note21 学习笔记
人工智能·笔记·python·神经网络·学习·机器学习·分类
好好学仿真1 小时前
材料/力学/岩土科研加速:三套顶刊复现实战(PINN+机器学习+生成式AI),附代码与数据集
机器学习·岩土工程·pinn·水泥基材料·复合材料多尺度·rve建模·材料性能预测
yyuuuzz1 小时前
运维场景中AI模型的常见问题
运维·服务器·人工智能·深度学习·机器学习·云计算·aws
小糖学代码1 小时前
机器学习:3.逻辑回归
人工智能·机器学习·线性回归
zhangfeng113315 小时前
超算/曙光DCU集群 昆山站 根目录文件夹逐项释义(HTC调度集群环境、国产DCU算力节点)
人工智能·pytorch·机器学习