一、超定方程组##
超定方程组即为有效方程个数大于未知数个数的方程组。(这里只讨论多元一次的情况)
超定方程组可以写成矩阵的形式:
egin{equation}
egin{split}
Ax=b
end{split}
end{equation}
其中(A)为(m imes n)的矩阵,其与(b)组成的增广矩阵([A|b])的秩大于(n)。(x)为(n)维列向量未知数。
二、超定方程组的最小二乘解##
超定方程组是无解的,但是我们可以求得其最小二乘解,就是将等式左右两端乘上(A)的转置。
egin{equation}
egin{split}
ATAx=ATb
end{split}
end{equation}
该方程有增广矩阵([A^TA|A^Tb])的秩等于(n),即该方程的未知数的个数等于有效方程的个数,所以该方程有唯一解且为原方程的最小二乘解。
平时记住结论直接用就好
三、推导过程##
(记录,大家不要看:其实小生也是只知道结论不知道结论是怎么来的,不过有一天看斯坦福大学的机器学习公开课的第二节,看到了推导过程。)
1.前置结论###
- (trAB = trBA)
- (trABC = trBCA = trCAB)
- ( abla_AtrAB = B^T)
- (trA = trA^T)
- (tra = a)
6)( abla_AtrABA^TC = CAB + C^TAB^T)
tr代表矩阵的迹,大写字母为矩阵小写字母表示实数,( abla表示求导)。
2.公式推导###
作差
egin{equation}
egin{split}
Ax-b = left[ egin{array}{c}
a_1^Tx - b_1
vdots
a_m^T - b_m
end{array}
ight ]
end{split}
end{equation}
构建最小二乘
egin{equation}
egin{split}
frac{1}{2}(Ax-b)^T(Ax-b) = frac{1}{2}sum_{i=1}m(a_iTx-b_i)^2
end{split}
end{equation}
对(x)求导
egin{equation}
egin{split}
abla_x frac{1}{2}(Ax-b)^T(Ax-b) =
abla_x tr(xTATAx-xTATb-bTAx+bTb)
end{split}
end{equation}
利用前置结论2)4)5)
egin{equation}
egin{split}
abla_x frac{1}{2}(Ax-b)^T(Ax-b) =
abla_xtr[xxTATA-
abla_xbTAx-
abla_xbTAx]
end{split}
end{equation}
其中利用前置结论6)
注:大括号下的A为前置结论中的A,大括号上的A为矩阵A。
egin{equation}
abla_xxxTATA =
abla_x cdot underbrace{x}_A cdot underbrace{I}_B
end{equation}
egin{equation}
cdot underbrace{xT}_{AT} cdot underbrace{A^TA}_C
end{equation}
利用前置结论1)3)
egin{equation}
egin{split}
abla_xunderbrace{b^TA}_Bunderbrace{x}_A = A^Tb
end{split}
end{equation}
所以就有:
egin{equation}
egin{split}
frac{1}{2}(Ax-b)^T(Ax-b) = A^TAx - A^Tb = 0
end{split}
end{equation}
则有:
egin{equation}
A^TAx = A^Tb
end{equation}
egin{equation}
x=(ATA){-1}A^Tb
end{equation}