上篇中,超定线性方程组 A x = b Ax=b Ax=b的最小二乘解满足 A T A x = A T b A^TAx=A^Tb ATAx=ATb,当 A A A是列满秩矩阵时, x = ( A T A ) − 1 A T b x=(A^TA)^{-1}A^Tb x=(ATA)−1ATb。
首先要确定的是:对于任何超定的线性方程组 A x = b Ax=b Ax=b,都是有最小二乘解的。
证明:
A T A x = A T b r a n k ( A T A , A T b ) = r a n k ( A T ( A , b ) ) ≤ r a n k ( A T ) r a n k ( A T A , A T b ) ≥ r a n k ( A T A ) = r a n k ( A T ) ∴ r a n k ( A T A , A T b ) = r a n k ( A T A ) A^TAx=A^Tb \\ rank(A^TA,A^Tb)=rank(A^T(A,b))\le rank(A^T) \\ rank(A^TA,A^Tb)\ge rank(A^TA)=rank(A^T) \\ \therefore rank(A^TA,A^Tb)=rank(A^TA) ATAx=ATbrank(ATA,ATb)=rank(AT(A,b))≤rank(AT)rank(ATA,ATb)≥rank(ATA)=rank(AT)∴rank(ATA,ATb)=rank(ATA)
根据线性方程组的解与秩的关系得证。
回到上一篇提到的的超定方程组 A x = b Ax=b Ax=b:
{ x 1 + x 2 = 0 x 1 + 2 x 2 = 2 2 x 1 + 3 x 2 = 3 \begin{cases} x_1+x_2=0 \\ x_1+2x_2=2 \\ 2x_1+3x_2=3 \\ \end{cases} ⎩⎪⎨⎪⎧x1+x2=0x1+2x2=22x1+3x2=3
由于 2 = r ( A ) < r ( A , b ) = 3 2=r(A)
之前矩阵乘法的博客中提到过,矩阵与向量的乘法,本质上是矩阵列向量组的线性组合,而向量的每个元素都是系数。因此, ( 1 , 1 , 2 ) T , ( 1 , 2 , 3 ) T (1,1,2)^T,(1,2,3)^T (1,1,2)T,(1,2,3)T这两个列向量将张成一个二维列空间 S S S,而向量 ( 0 , 2 , 3 ) T (0,2,3)^T (0,2,3)T不在这个空间上。
如下图所示,虽然 b b b不在矩阵 A A A的列空间 S S S上,也就是说找不到一组系数 x x x使得 A x = b Ax=b Ax=b,但是可以在列空间 S S S上找到一个向量 b ^ \hat b b^并且满足线性组合 A x ^ = b ^ A\hat x=\hat b Ax^=b^,使得向量 b − b ^ b-\hat b b−b^的长度最小。这个线性组合的系数 x ^ \hat x x^就是最小二乘解。从图中可以看出,当 b − b ^ b-\hat b b−b^垂直于 S S S时,将得到最小二乘解。
因此得到了最小二乘解的几何意义:线性方程组 A x = b Ax=b Ax=b的最小二乘法,实际上就是在矩阵的列空间上寻找一个向量 b ^ \hat b b^,使得 b − b ^ b-\hat b b−b^的模最小。向量 b ^ \hat b b^,就是 b b b在 A A A的列空间上的投影。最小二乘解 x ^ \hat x x^满足 A x ^ = b ^ A\hat x=\hat b Ax^=b^。
比较有趣的现象是,如果 b b b与 A A A的列空间垂直,那么最小二乘解就是n维 0 0 0向量。
从最小二乘的几何意义也可知,超定线性方程组的最小二乘解是必然存在的。