在超定方程中, 线性方程组一般不能被完全精确满足,因此需要使用最小二乘法求解参数 XXX。
假设线性方程组可以写成:
AX≈B AX \approx B AX≈B
其中,AAA 为系数矩阵,XXX 为待求参数向量,BBB 为观测值向量。
定义残差向量为:
r=AX−B r = AX - B r=AX−B
最小二乘法的目标是使残差平方和最小,即:
X=argminX∥AX−B∥2 X = \arg\min_X \|AX - B\|^2 X=argXmin∥AX−B∥2
为了便于推导,定义目标函数:
J(X)=∥AX−B∥2 J(X) = \|AX - B\|^2 J(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+BTB J(X) = X^T A^T A X - X^T A^T B - B^T A X + B^T B J(X)=XTATAX−XTATB−BTAX+BTB
由于 XTATBX^T A^T BXTATB 和 BTAXB^T A XBTAX 都是标量,并且二者相等: (计算两者矩阵维度)
XTATB=BTAX X^T A^T B = B^T A X XTATB=BTAX
所以目标函数可以化简为:
J(X)=XTATAX−2XTATB+BTB J(X) = X^T A^T A X - 2X^T A^T B + B^T B J(X)=XTATAX−2XTATB+BTB
下面对 J(X)J(X)J(X) 关于 XXX 求导。
首先有:
∂∂X(XTATAX)=2ATAX \frac{\partial}{\partial X} (X^T A^T A X) = 2A^TAX ∂X∂(XTATAX)=2ATAX
这是因为 ATAA^TAATA 是对称矩阵,即:
(ATA)T=ATA (A^TA)^T = A^TA (ATA)T=ATA
其次有:
∂∂X(−2XTATB)=−2ATB \frac{\partial}{\partial X} (-2X^TA^TB) = -2A^TB ∂X∂(−2XTATB)=−2ATB
最后,BTBB^TBBTB 中不含有待求参数 XXX,因此:
∂∂X(BTB)=0 \frac{\partial}{\partial X} (B^TB) = 0 ∂X∂(BTB)=0
所以目标函数的导数为:
∂J(X)∂X=2ATAX−2ATB \frac{\partial J(X)}{\partial X} = 2A^TAX - 2A^TB ∂X∂J(X)=2ATAX−2ATB
最小二乘问题要求目标函数取得最小值,因此令导数为零:
2ATAX−2ATB=0 2A^TAX - 2A^TB = 0 2ATAX−2ATB=0
化简可得:
ATAX=ATB A^TAX = A^TB ATAX=ATB
这就是最小二乘法对应的正规方程。
当 ATAA^TAATA 可逆时,可以在等式两边左乘 (ATA)−1(A^TA)^{-1}(ATA)−1,得到:
X=(ATA)−1ATB X = (A^TA)^{-1}A^TB X=(ATA)−1ATB
因此,正规方程的本质就是:对最小二乘目标函数 J(X)=∥AX−B∥2J(X)=\|AX-B\|^2J(X)=∥AX−B∥2 关于待求参数 XXX 求导,并令导数为零后得到的方程。