超定方程组
已知 m×n 的列满秩矩阵 A(m≥n),未知 n 维列向量 x,已知 m 维列向量 y,有:
Ax=y
当 m>n 时,这是一个超定方程组(方程的数量大于未知数的数量,且这些方程之间经常存在一些小矛盾),通常不存在 x 的精确解。那么我们退一步,我们想要一个“很像解”的解。
正规方程
🤓👆诶,我们可以往等式两边的左边同乘一个 AT(这一乘其实严格来说并不严谨,毕竟原来等号就很难成立,且矩阵乘法不满足消去律,这里实际上我们构造了一个新的方程),得到:
ATAx=ATy
这个方程就叫正规方程。
这式子漂不漂亮?这式子太漂亮了!ATA 是 n 阶方阵(可以求逆!),x 和 ATy 都是 n 维列向量,那一切就舒服♡多了:
x=(ATA)−1ATy
这样,我们就可以得到一个很不错(实际上是最不错,这就是今天要证明的)的 x 的解。其中,(ATA)−1AT 称为 A 的伪逆。(就像伪娘一样)
残差、最小二乘解
很多时候,精确解对于超定方程组是个奢求,即 Ax 和 y 总是有一些偏差的。对于一个解,我们定义它的残差向量 r:
r=y−Ax
显然,残差的范数(模)∥r∥ 越小,这个解 x 就越好。当 ∥r∥ 取到最小值时,x 就是我们最想要的最小二乘解(Ax 与 y 各位相差的平方和最小)。
证明:正规方程的解就是最小二乘解
因为我太菜了,导不出来 基于矩阵求导的证明一个字也看不懂,所以这里换个角度,用几何法来证。哎呀~ 几何法得了 MVP!
寻找最小二乘解,从几何角度看,就是在 A 的列空间 Col(A)(由 A 各个列向量张成的空间)中寻找与 y 最接近的向量(即 y 在 Col(A) 中的正交投影)。那么,正如平面外一点到平面,垂线段最短,想要 y 与 Ax 的残差 r 最短,那 r 就必须与 Col(A) 正交。
与 Col(A) 正交,就是和它的每个基向量都正交(内积等于 0)。记 A=[c1c2⋯cn],那么:
⎩⎨⎧c1Tr=0c2Tr=0⋮cnTr=0
合起来就是:
ATr=0
将 r=y−Ax 代入:
AT(y−Ax)=0
整理一下:
ATAx=ATy
这,恰是正规方程!
所以,求解超定方程组时,通过构造正规方程得到的解就是最小二乘解。
Quod Erat Demonstrandum Miau~