在超定方程中, 线性方程组一般不能被完全精确满足,因此需要使用最小二乘法求解参数XXX。
假设线性方程组可以写成:
AX≈B AX \approx BAX≈B
其中,AAA为系数矩阵,XXX为待求参数向量,BBB为观测值向量。
定义残差向量为:
r=AX−B r = AX - Br=AX−B
最小二乘法的目标是使残差平方和最小,即:
X=argminX∥AX−B∥2 X = \arg\min_X \|AX - B\|^2X=argXmin∥AX−B∥2
为了便于推导,定义目标函数:
J(X)=∥AX−B∥2 J(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+BTB J(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=BTAX X^T A^T B = B^T A XXTATB=BTAX
所以目标函数可以化简为:
J(X)=XTATAX−2XTATB+BTB J(X) = X^T A^T A X - 2X^T A^T B + B^T BJ(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 = 02ATAX−2ATB=0
化简可得:
ATAX=ATB A^TAX = A^TBATAX=ATB
这就是最小二乘法对应的正规方程。
当ATAA^TAATA可逆时,可以在等式两边左乘(ATA)−1(A^TA)^{-1}(ATA)−1,得到:
X=(ATA)−1ATB X = (A^TA)^{-1}A^TBX=(ATA)−1ATB
因此,正规方程的本质就是:对最小二乘目标函数J(X)=∥AX−B∥2J(X)=\|AX-B\|^2J(X)=∥AX−B∥2关于待求参数XXX求导,并令导数为零后得到的方程。