上节课提到一个重要的投影公式: p = P b = A ( A T A ) − 1 A T b (1) p=Pb=A(A^TA)^{-1}A^Tb\tag{1} p=Pb=A(ATA)−1ATb(1)它能够使得一个向量满足以下关系:
- 如果 b ∈ C ( A ) b\in C(A) b∈C(A)中,那么 P b = b Pb=b Pb=b
- 如果 b ⊥ C ( A ) b\perp C(A) b⊥C(A),那么 P b = 0 Pb=0 Pb=0
以上两种情况在几何上非常容易看出来。下面结合四个基本空间关系来看待上面结论:
第一个结论,哪些向量将会在列空间上?答: A x Ax Ax所构成的结果向量集合,对于任意一个 b b b都有,都存在 b = A x b=Ax b=Ax,代入 ( 1 ) (1) (1)有: P b = A ( A T A ) − 1 A T A x = A A − 1 ( A T ) − 1 A T A x = b (2) Pb=A(A^TA)^{-1}A^TAx=AA^{-1}(A^T)^{-1}A^TAx=b\tag{2} Pb=A(ATA)−1ATAx=AA−1(AT)−1ATAx=b(2) 这与结论1是对应的。
第二个结论,哪些向量将会垂直于列空间?答:行向量及其线性组合,换句话说,就是行空间,或者你愿意把它称为 A T A^T AT的零空间,我们任意 A T A^T AT零空间上的 b b b同时乘以式子 ( 1 ) (1) (1)有: P b = A ( A T A ) − 1 A T b (3) Pb=A(A^TA)^{-1}A^Tb\tag{3} Pb=A(ATA)−1ATb(3) 因为行空间上的元素满足 A T b = 0 A^Tb=0 ATb=0,所以式子 P b = 0 Pb=0 Pb=0成立,即结论2成立。
那么在两个极端情况之间的“普通”
b
b
b,在几何上又满足什么关系? 答:任何一个向量
b
b
b都可以向一个子空间投影成
p
p
p,向另一个垂直于此子空间的投影成
e
e
e。其实,
b
b
b和
p
p
p向量都可以用一个矩阵
A
A
A表示,一个向量如果往
A
A
A的列空间投影,投影向量就是
p
p
p,如果一个向量往
A
T
A^T
AT的零空间投影,投影向量就是
e
e
e。 根据向量运算法则有:
b
=
e
+
p
b=e+p
b=e+p,其中:
- p = P b p=Pb p=Pb
- e = p − b = P b − b = ( P − I ) b e=p-b=Pb-b=(P-I)b e=p−b=Pb−b=(P−I)b
一个向量 b b b可以分解为同一个矩阵 A A A子空间上的两个向量 e e e和 p p p,其中 e e e在左零空间, p p p在列空间。
二、最小二乘法最小二乘法拟合直线(Least square fitting by a line)。 求一个经过
A
(
1
,
1
)
A(1,1)
A(1,1)
B
(
2
,
2
)
B(2,2)
B(2,2)
C
(
3
,
2
)
C(3,2)
C(3,2)的直线方程:
b
=
C
+
D
t
b=C+Dt
b=C+Dt
将点代入方程有: C + D = 1 C + 2 D = 2 C + 3 D = 2 C+D=1\\ C+2D=2\\ C+3D=2 C+D=1C+2D=2C+3D=2 写成矩阵形式: [ 1 1 1 2 1 3 ] [ C D ] = [ 1 2 2 ] \begin{bmatrix} 1&1\\1&2\\1&3 \end{bmatrix}\begin{bmatrix} C\\D \end{bmatrix}=\begin{bmatrix}1\\2\\2\end{bmatrix} ⎣⎡111123⎦⎤[CD]=⎣⎡122⎦⎤ 记: A = [ 1 1 1 2 1 3 ] X = [ C D ] b = [ 1 2 2 ] A=\begin{bmatrix} 1&1\\1&2\\1&3 \end{bmatrix}\quad X=\begin{bmatrix} C\\D \end{bmatrix}\quad b=\begin{bmatrix}1\\2\\2\end{bmatrix} A=⎣⎡111123⎦⎤X=[CD]b=⎣⎡122⎦⎤
A X = b AX=b AX=b是无解的,因为 A A A是一个“瘦”子矩阵(方程组个数大于未知数)。
b b b必须用一个在列空间的向量 k k k来表示,以保证方程组能够继续进行,此时误差向量 e = b − k (4) e=b-k\tag{4} e=b−k(4) k k k表示列空间任意向量,所有在 k k k都可以解出一组系数使得方程组 A x = b Ax=b Ax=b成立,只是选取不同的 k k k将会有不同的偏差。如何找到一个向量恰好使得误差向量最小是我们要解决的问题,误差向量每一个分量都表示与原数据的差值,表示差值的方法选取就比较随意:
- 分量差值平方和大小
- 分量差值平方和再开平方
后者恰好是向量的模,而且在三维空间中有明确的几何意义。所以在列空间内找到一个使得误差最小的向量 m i n ∣ ∣ e ∣ ∣ min{\vert\vert e\vert\vert} min∣∣e∣∣是解决问题的关键,设这个关键向量为 p p p,此时对应的方程的解,就是与原数据拟合得最好的解(误差平方和最小)。
上节课举的两个例子告诉我们正交点对应的向量就是我们要找的关键向量 p p p。上述问题就转换成以下等价问题:求使得误差向量最小的投影向量 p p p对应的方程组的解,就是与原无解方程最为接近的解。
对于 A X = b AX=b AX=b我们同时乘以 A T A^T AT的解恰好是使得投影向量 p p p在列空间的解,这个解就是我们最小二乘解[1]。 A T A X ^ = A T b A^TA\hat X=A^Tb ATAX^=ATb 其中, X ^ = [ C ^ D ^ ] \hat X =\begin{bmatrix}\hat C\\\hat D\end{bmatrix} X^=[C^D^]。 上面的帽子代表是最佳估计,不是理想状态。上面这个式子是你遇到噪声和误差最先会用的估计。
方程的左边系数矩阵 A T A A^TA ATA: [ 1 1 1 1 2 3 ] [ 1 1 1 2 1 3 ] = [ 3 6 6 14 ] \begin{bmatrix} 1&1&1\\ 1&2&3 \end{bmatrix} \begin{bmatrix} 1&1\\1&2\\1&3 \end{bmatrix}=\begin{bmatrix}3&6\\6&14\end{bmatrix} [111213]⎣⎡111123⎦⎤=[36614]
方程的右边结果向量 A T b A^Tb ATb: [ 1 1 1 1 2 3 ] [ 1 2 2 ] = [ 5 11 ] \begin{bmatrix} 1&1&1\\ 1&2&3 \end{bmatrix}\begin{bmatrix} 1\\2\\2 \end{bmatrix}=\begin{bmatrix} 5\\ 11 \end{bmatrix} [111213]⎣⎡122⎦⎤=[511]
= =,老师将他们写在了一起: [ 1 1 1 1 2 3 ] [ 1 1 1 1 2 2 1 3 2 ] = [ 3 6 5 6 14 11 ] \begin{bmatrix} 1&1&1\\ 1&2&3 \end{bmatrix} \begin{bmatrix} 1&1&1\\1&2&2\\1&3&2 \end{bmatrix}=\begin{bmatrix}3&6&5\\6&14&11\end{bmatrix} [111213]⎣⎡111123122⎦⎤=[36614511] 其实结果都是一样省了点空间,那么对应的方程应该为: 3 C ^ + 6 D ^ = 5 6 C ^ + 14 D ^ = 11 3\hat C+6\hat D=5\\6\hat C+14\hat D=11 3C^+6D^=56C^+14D^=11 容易得出: C ^ = 2 3 \hat C=\frac{2}{3} C^=32 D ^ = 1 2 \hat D=\frac{1}{2} D^=21,对应的拟合直线方程为 y = 2 3 + 1 2 t y=\frac{2}{3}+\frac{1}{2}t y=32+21t。
课上老师还提示可以使用高等数学方法来求解,令误差方程为 e 2 = ( C ^ + D ^ − 1 ) 2 + ( C ^ + 2 D ^ − 2 ) 2 + ( C ^ + 3 D ^ − 2 ) 2 e^2=(\hat C+\hat D-1)^2+(\hat C+2\hat D-2)^2+(\hat C+3\hat D-2)^2 e2=(C^+D^−1)2+(C^+2D^−2)2+(C^+3D^−2)2,分别对 C ^ \hat C C^和 D ^ \hat D D^求偏导数。
按照这个方程组给出的结果向量为: p = [ 7 / 6 10 / 6 13 / 6 ] p=\begin{bmatrix} 7/6\\ 10/6\\ 13/6\\ \end{bmatrix} p=⎣⎡7/610/613/6⎦⎤ 它和实际的差值(即误差向量)为: e = p − b = [ 7 / 6 10 / 6 13 / 6 ] − [ 1 2 2 ] = [ 1 / 6 − 2 / 6 1 / 6 ] e=p-b=\begin{bmatrix}7/6\\10/6\\13/6\end{bmatrix}-\begin{bmatrix}1\\2\\2\end{bmatrix}= \begin{bmatrix}1/6\\-2/6\\1/6\end{bmatrix} e=p−b=⎣⎡7/610/613/6⎦⎤−⎣⎡122⎦⎤=⎣⎡1/6−2/61/6⎦⎤ 借此你可以验证 p p p和 b b b的正交性: p T b = 0 p^Tb=0 pTb=0,验证后确实成立。
我们可以作出上面的这条直线: 上图显示通过直角坐标系显示了一个最优直线,展示了
e
e
e
p
p
p
b
b
b之间的关系;对于行空间和列空间的图像
也同样表示了
e
e
e
p
p
p
b
b
b之间的关系。
下面进行一个证明,这个证明是进行上面一系列的运算的理论基础:如果 A A A的列向量线性无关,那么 A T A A^TA ATA 是可逆的。 证明: A A T AA^T AAT是可逆的,等价于证明 A T A X = 0 A^TAX=0 ATAX=0只有零解,即 X = 0 X=0 X=0。对方程两边同时乘以 X T X^T XT,有 X T A T A X = 0 X^TA^TAX=0 XTATAX=0,恰当加上括号有: ( A X ) T ( A X ) = 0 (AX)^T(AX)=0 (AX)T(AX)=0,显然要求 ∣ ∣ A X ∣ ∣ = 0 \vert\vert AX \vert\vert=0 ∣∣AX∣∣=0,结合 A A A的列是线性无关的有: X X X必然为零向量,证明完毕。
在我们使用最小二乘法的时候一定要检查 A A A向量是否是线性无关的,只有线性无关才能继续进行求解。
三、标准正交基如果向量是正交单位向量,那么这些列一定是相互独立的。这样的向量组,叫做标准正交向量组(Orthnormal vectors),这个标准指的是单位向量。
三维空间的标准向量组如下: 下面也是一组标准正交向量:
[1] A X = b AX=b AX=b同时乘以 A T A^T AT有: A T A X = A T b A^TAX=A^Tb ATAX=ATb,假设 A T A A^TA ATA可逆,那么有: X ^ = ( A T A ) − 1 A T b \hat X=(A^TA)^{-1}A^Tb X^=(ATA)−1ATb,再乘以 A A A有: A X ^ = A ( A T A ) − 1 A T b = P b = p A\hat X=A(A^TA)^{-1}A^Tb=Pb=p AX^=A(ATA)−1ATb=Pb=p, A X ^ = p A\hat X=p AX^=p不就是我们投影向量的方程吗!所以方程组是同解的。