投影矩阵的推导
假设我们想把一个向量b投影到线性空间S中,应该怎么做呢。
设投影后的向量为p,则有p∈S,设误差向量(error vector)e=b−p,则e应与S正交。投影就是将向量分为两部分b=p+e,一部分在S中,另一部分与S正交,然后取其中的p。也可以用图像直观理解:
要求得p,只需要将p∈S(1)和e⊥S(2)这两个条件翻译成线性代数的语言即可。
首先,我们要先表达线性空间S,设S⊂Pm,dimS=n,取S的一组基,作为矩阵Am×n的列向量,则S就是A的列空间,S=C(A)。
- 然后要翻译p∈S,只需要令p=Ax^,其中x^为Pm中的任意向量。
- 翻译e⊥S,就是e∈S⊥=C(A)⊥=N(AT),即ATe=0。
得到方程组
{p=Ax^ATe=0
ATeAT(b−Ax^)ATbx^p=0=0=ATAx^=(ATA)−1ATb=A(ATA)−1ATb
令P=A(ATA)−1AT,称P为S的投影矩阵(projection matrix),则要将b投影至S,只需左乘P即可,p=Pb。
这里的(ATA)−1不能拆作A−1(A−1)T,因为A不一定为方阵,当n<m时,A不可逆。当n=m时,A必定可逆,因为列向量线性无关,然而当n=m时,投影的意义不大,易得P=I,投影不会改变任何东西。而(ATA)−1一定是可逆的(想想为什么?)。
当A是向量时
当A是向量而非矩阵时,一切都没有变,我们仍然有p=a(aTa)−1aTb,不过现在aTa是一个标量了,也可以写作
p=aTaaTba=a⋅aa⋅ba
这和我们常见的向量投影到另一个向量的形式是一致的。
投影矩阵的特性
1. 对称性
PT=P
证明
PT=(A(ATA)−1AT)T=A((ATA)−1)TAT=A((ATA)T)−1AT=A(ATA)−1AT=P
2. 幂等性
Pk=P(k=1,2,…)
直观理解,就是将b投影到S后,再投影一次,没有任何变化,因为p已经在S里了。
证明
要证原命题,只需证P2=P
P2=(A(ATA)−1AT)(A(ATA)−1AT)=A(ATA)−1(ATA)(ATA)−1AT=A(ATA)−1AT=P
两种极端情况
1. 当b∈S,有Pb=b
已经在S上的向量再投影到S不会变化
证明
因为b∈C(A),则∃x,s.t.b=Ax,有:
Pb=A(ATA)−1ATAx=A(ATA)−1(ATA)x=Ax=b
2. 当b⊥S,有Pb=0
正交与S的向量,投影到S就只剩下一个点了
证明
b⊥C(A)⇔b∈N(AT),故ATb=0
Pb=A(ATA)−1ATb=A(ATA)−1(ATb)=0
投影的应用
解一个无解的方程
Ax=b有时是无解的,因为b不在A的列空间C(A)中,于是我们可以将b投影到C(A)中。设p为b在C(A)的投影,则Ax^=p一定有解。
注意:这里的p不能和前文一样使用A(ATA)−1ATb求得,因为前面的A是列线性无关的,这里不一定。当A列线性无关时,x^有唯一解,当A列线性相关时,x^有无穷多解,无论如何,x^总是存在的。
回归正题,我们解出来的这个x^虽然不是一个精确的解,但却是一个最好的解,这个x^可以令∣∣Ax−b∣∣2最小,这一点可以从两个角度证明:
- 几何直观理解:∣∣Ax−b∣∣2就是Ax和b的欧氏距离,所有可能的Ax都在C(A)中,而C(A)中距离b最近的那个点,就是b的投影p,此时x=x^。
- 代数严格证明:由∣∣Ax−b∣∣2=∣∣Ax−p−e∣∣2=∣∣Ax−p∣∣2+∣∣e∣∣2≥∣∣e∣∣2,其中∣∣e∣∣2是与x无关的常量,则当∣∣Ax−p∣∣2=0时,取得最小值,此时Ax=p,即x=x^
新的方程Ax^=p,不仅有“一定有解”、“解是最好的”这两个良好的性质,当Ax=b本身就有解时,新的方程与原方程的解是一致的,这是因为当b∈C(A)时,p=b(上面两种极端情况的第一种)。
也就是说,无论Ax=b是否有解,你可以不管三七二十一,就计算Ax^=p,肯定能解出来一个最好的x^,它满足“如果有精确解,我就是精确解,如果没有精确解,我就是最好的解”。你可以在对A一无所知的情况下,保证能解出一个优秀的x^。
换一个形式
为了方便,下面还是假设A列满秩。
Ax^=p=A(ATA)−1ATb,我们都知道求逆矩阵既困难又会造成精度问题(浮点数计算时),于是可以两边都左乘AT,变成
ATAx^ATAx^x^=(ATA)(ATA)−1ATb=ATb=(ATA)−1ATb(1)(2)
其中(1)是比较好用的形式
而(2)在线性回归领域也写作
θ=(XTX)−1XTy
并被称为normal equation(或许译作正交方程?)
最小二乘法
最小二乘法其实可以从投影的角度理解,个人认为这是最巧妙,无需计算的解法了(相比于对均方误差求导的解法)
假设我们有m个点(t1,b1),(t2,b2),…,(tm,bm),要找一条直线y=cx+d,最佳拟合它们,即令∑(cti+d−bi)2(也被称为均方误差,mean square error, MSE)最小。
只需令
b=b1b2⋮bmA=11⋮1t1t2⋮tmx=[dc]
就有Ax=b。假如m个点落在同一条直线上,这个方程才有解,大多数情况下,它是无解的,运用前面推导的式子,有
ATA=[m∑ti∑ti∑ti2]ATb=[∑bi∑biti]
只需解
[m∑ti∑ti∑ti2][dc]=[∑bi∑biti]
即可得到使MSE最小的c和d。
拟合抛物线
假如将拟合直线变成拟合抛物线y=c2x2+c1x+c0,只需要改成
b=b1b2⋮bmA=11⋮1t1t2⋮tmt12t22⋮tm2x=c0c1c2
然后求ATAx^=ATb就完事了,如果把抛物线换成n次多项式也是类似的。
参考
Introduction to Linear Algebra, 5th edition, by Gilbert Strang