本节通过具体的线和平面投影,引出了投影向量和误差向量概念。误差向量表示空间中两个向量的差异的手段,其模的大小是误差量化的手段,模越大,误差越大。一个子空间有一个仅与自身有关的投影矩阵 P P P,空间中任意向量都可以通过这个 P P P求得投影和“偏差”大小。
引出投影向量和误差向量的概念是我们理解最小二乘解的关键,最小二乘法中的“最小”指的是误差向量最小。空间中两个向量只要不共线,一个向量就可以分解成另一个向量共线部分和剩余部分,最常见的一种方式就是“投影”,投影就是以一定的角度分解原向量,分解之后两个分量相互正交。这是一种非常特殊的一种分解,也是最符合人类习惯的一种方式。
这种“特殊”的九十度分解方法就是投影,我们知道一个向量左乘一个矩阵会得到一个新的向量,这个矩阵如果恰好能够完成我们的九十度分解,那么这个矩阵就是投影矩阵,显然,投影矩阵与投影的载体有关,输入是任意的。
平面中有两个向量 a a a和 b b b,过 b b b的末端点作 a a a垂线于 P P P, a a a起点到垂足点 P P P记为向量 p p p。下面是推导过程:
向量减法的方向指向被减向量。
根据向量的运算法则,有
e
=
b
−
p
e=b-p
e=b−p(
e
e
e是翘起方向,由垂足指向翘起向量末端),因为
p
p
p与
a
a
a共线,所以有:
p
=
x
a
(
x
∈
R
)
(1)
p=xa\quad (x\in R)\tag{1}
p=xa(x∈R)(1) 因为
a
a
a与
e
e
e正交,所以有:
a
T
(
b
−
x
a
)
=
0
x
a
T
a
=
a
T
b
(2)
\begin{aligned} a^T(b-xa)&=0\\ xa^Ta&=a^Tb\\ \end{aligned}\tag{2}
aT(b−xa)xaTa=0=aTb(2) 因为
a
T
a
a^Ta
aTa是一个数(或者你可以理解为一个只有一个元素的矩阵),故
x
=
a
T
b
a
T
a
(3)
x=\frac{a^Tb}{a^Ta}\tag{3}
x=aTaaTb(3) 联立
(
1
)
(
2
)
(1)(2)
(1)(2)有:
p
=
a
a
T
b
a
T
a
(4)
p=a\frac{a^Tb}{a^Ta}\tag{4}
p=aaTaaTb(4) 假如我们将向量
b
b
b翻倍,那么投影向量
p
p
p也将翻倍;假如向量
a
a
a翻倍或者反向,你会发现投影
p
p
p不会改变,他仍然是原投影向量。
在线性代数中我们称矩阵 P P P为投影矩阵,其的数值等于: P = a a T a T a (5) P=\frac{aa^T}{a^Ta}\tag{5} P=aTaaaT(5) 于是 ( 4 ) (4) (4)可以写成: P r o j p = P b (6) Proj_p=Pb\tag{6} Projp=Pb(6) 投影矩阵帮助我们求取向量的到另一个向量的投影向量。
投影矩阵 P P P在此的有如下性质:
- P P P是一个对称矩阵 P T = P P^T=P PT=P
- C ( P ) C(P) C(P)是一个通过 a a a的直线(秩是1)
- P 2 = P P^2=P P2=P
关于第一点,观察几何含义容易得到此结论。
为什么投影矩阵是一个对称矩阵?因为 A A T AA^T AAT一定是一个对称矩阵。证明: ( A A T ) T = A T T A T = A A T (AA^T)^T={A^T}^TA^T=AA^T (AAT)T=ATTAT=AAT,转置等于其本身,符合对称矩阵定义。
为什么投影矩阵的列空间为直线且过向量 a a a?任何一个向量 b b b经过一个矩阵 P P P处理后都将变成一个向量,这个向量还具备过特定向量 a a a的特点。将 P P P看成是 A x = b Ax=b Ax=b关于第二点, p = P b p=Pb p=Pb,对于任何一个向量 b b b都能 P P P矩阵的结果向量都是直线,那只能是 P P P本身的秩为1,否则投影将不会是直线。
二、更高维度的投影对于方程 A x = b Ax=b Ax=b,方程有解的条件是: b b b在 C ( A ) C(A) C(A)的列空间中。假如列空间是一个平面,方程有解的条件是向量 b b b在平面上。假如由于种种原因, b b b向量稍微往上”翘“了一点,方程就会出现无解的情况,但是此时我们又需要得到这个近似的解,那该怎么做?
答:可以稍微将 b b b向量调整一下,使得调整后的 p p p在列空间(平面内)中。
求解无解方程 A x = b Ax=b Ax=b就变成了求解新的、调整后的 b b b的方程: A x ^ = p (7) A\hat x=p\tag{7} Ax^=p(7)
为了说明问题,假设
C
(
A
)
C(A)
C(A)由两个基
a
1
a_1
a1和
a
2
a_2
a2组成,下面是原向量
b
b
b与列空间的相对关系,可以看出,
b
b
b并不在列空间(平面)内,我们将这个向量投影至
C
(
A
)
C(A)
C(A)中,同样记投影向量为
p
p
p;定义
e
=
b
−
p
(8)
e=b-p \tag{8}
e=b−p(8) 为两者的误差向量
e
=
b
−
p
e=b-p
e=b−p (注意向量方向垂足指向向量末端),与列空间的关系是正交。
A = [ a 1 a 2 ] (9) A=\begin{bmatrix}a_1&a_2\end{bmatrix} \tag{9} A=[a1a2](9) 向量角度: p p p在列空间中,所以有: p = x 1 a 1 + x 2 a 2 (10) p=x_1a_1+x_2a_2 \tag{10} p=x1a1+x2a2(10) 矩阵角度: p = A x ^ (11) p=A\hat x \tag{11} p=Ax^(11) 注意为了区分原方程未知数用了 x ^ \hat x x^。将方程 e = b − p e=b-p e=b−p用 p = A x ^ p=A\hat x p=Ax^代替: e = b − p = b − A x ^ (12) e=b-p=b-A\hat x \tag{12} e=b−p=b−Ax^(12) 向量角度:因为 e e e与列空间(平面)正交,所以: a 1 T ( b − A x ^ ) = 0 a 2 T ( b − A x ^ ) = 0 (13) a_1^T(b-A\hat x)=0\\ a_2^T(b-A\hat x)=0 \tag{13} a1T(b−Ax^)=0a2T(b−Ax^)=0(13) 矩阵角度: [ a 1 T a 2 T ] ( b − A x ^ ) = [ 0 0 ] (14) \begin{bmatrix} a_1^T\\a_2^T \end{bmatrix}(b-A\hat x)=\begin{bmatrix}0\\0\end{bmatrix} \tag{14} [a1Ta2T](b−Ax^)=[00](14) 也就是: A T ( b − A x ^ ) = A T e = 0 (15) A^T(b-A\hat x)=A^Te=0 \tag{15} AT(b−Ax^)=ATe=0(15) 从 A T e = 0 A^Te=0 ATe=0可知,误差向量 e e e在矩阵 A T A^T AT的零空间中,即: e ∈ N ( A T ) (16) e\in N(A^T)\tag{16} e∈N(AT)(16) 因为行空间和零空间相互正交,根据空间正交的定义,零空间的所有向量都正交于列空间,即: e ⊥ C ( A ) (17) e\perp C(A)\tag{17} e⊥C(A)(17) 小结:误差向量垂直于列空间,属于行空间。
继续我们上一堂课,通过对 A x = b Ax=b Ax=b同时左乘 A T A^T AT,结合对称矩阵必可逆这一特点,求得新的系数 x ^ : \hat x: x^: x ^ = ( A T A ) − 1 A T b (18) \hat x=(A^TA)^{-1}A^Tb\tag{18} x^=(ATA)−1ATb(18) 代入 p = A x ^ p=A\hat x p=Ax^: p = A x ^ = A ( A T A ) − 1 A T b (19) p=A\hat x=A(A^TA)^{-1}A^Tb\tag{19} p=Ax^=A(ATA)−1ATb(19) 令 P = A ( A T A ) − 1 A T (20) P=A(A^TA)^{-1}A^T\tag{20} P=A(ATA)−1AT(20)
p = P b (21) p=Pb\tag{21} p=Pb(21) 这个 P P P矩阵帮助我们求取了一个投影向量,因此也叫做投影矩阵。事实上,平面内投影 P P P形式上与 ( 20 ) (20) (20)一致,不过因为 a T a a^Ta aTa是一个数写在了分母: p = a a T b a T a (22) p=a\frac{a^Tb}{a^Ta}\tag{22} p=aaTaaTb(22) 你会发现,因为 a T a a^Ta aTa是一个实数,所以能简单的进行除法运算,将 ( 22 ) (22) (22)处理回去有: p = a ( a T a ) − 1 a T b (23) p=a(a^Ta)^{-1} a^Tb\tag{23} p=a(aTa)−1aTb(23)
思考下面变换是否成立: P = A ( A T A ) − 1 A T = A A − 1 ( A T ) − 1 A T = I P=A(A^TA)^{-1}A^T=AA^{-1}(A^T)^{-1}A^T=I P=A(ATA)−1AT=AA−1(AT)−1AT=I 答案是否定的,因为 A A A不一定是可逆的。可逆的基本条件是他必须是一个方阵,且列和行都是满秩的。 假如 A A A确实是一个可逆矩阵,那么列空间将是整个 n n n维空间,投影矩阵 P = I P=I P=I。 一个矩阵的乘以其转置只能说明他是一个对称矩阵 A T A A^TA ATA,忘记了可以复习对称矩阵:https://blog.csdn.net/weixin_39258979/article/details/110306510
平面投影同样满足:
- P T = P P^T=P PT=P
- P 2 = P P^2=P P2=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是一个“瘦”子矩阵(方程组个数大于未知数),为了继续求解一个最优解,我们将等式两边同时乘以 A T A^T AT: A T A x ^ = A T b A^TA\hat x=A^Tb ATAx^=ATb 下节课将继续这个求解。