在很多时候,我们在求解方程时,如果A的列数太多,混入一些不准确的数据,此时方程时无解的,我们需要求解出最优解。这时候就需要使用最小二乘法来进行拟合。在讲解最小二乘法之前需要一些知识作为铺垫。
一、四个基本子空间
首先我们知道,对于一个的矩阵有四个子空间:列空间、行空间、零空间、左零空间。
列空间 ():列空间是的子空间,是矩阵的列向量的线性组合的集合构成的空间,每个列向量有个分量,设矩阵的秩为,则有个主列,这个主列就是列空间的一组基,一组基中有个向量,所以列空间维数是。
行空间():行空间是的子空间,是矩阵各行向量的线性组合的集合构成的空间,可以化为转置的列空间,因此行空间的秩也是,每个行向量有个分量,所以行空间的维数也是r。
零空间():零空间是的子空间,是由的解所构成的空间。由于x本质是A列向量的线性组合,一共有个列向量,所以的秩为时,自由列有列,中有个自由变元,也就有个基向量,因此维数也是。
左零空间():左零空间是的子空间,是由的解的线性组合构成的空间,维数为。
二、子空间与正交
接着,我们会发现,这四个子空间中存在正交关系。我们知道,在空间中证明两个向量是正交关系只需要判断两向量的内积是否为0。那么在子空间中也是如此。空间的正交定义是:一个空间中的任意一个向量都与另一个空间中的任意一个向量正交。
零空间与行空间是正交的,证明起来非常容易。我们将写成下图的形式,很轻易就能证明,每一个行向量乘上向量都为0,由于行向量是行空间的一组基,因此可以代表全部的行向量,这就满足了空间正交的定义。
不光行空间与零空间是正交关系,我们也可以轻易推出列空间和左零空间也是正交关系。
我们假设在一个空间中,不难想象,假设矩阵的行空间是二维平面(),那么其零空间就是一条线(),又因为是正交关系,所以可知,零空间就是行空间二维平面的法向。因此,行空间与零空间之间关系类似于将空间一分为二,得到两个正交的子空间,我们把这称为空间的正交补。
三、子空间投影
向量-向量的投影问题
如图1,为在上的投影,写作(为倍数),根据向量减法得到,投影方向。根据向量正交则内积为零的性质(垂直于)可得
这时再将带入,可得
这里我们可以将看作一个矩阵,称为投影矩阵。
向量-平面的投影问题
如图2,,为构成平面的一组基,在平面上。所以有,或者直接写作,(其中为列向量),。
由于是垂直于平面的向量,,那么我们可以用内积形式表达和、的垂直关系:、,写成矩阵形式得:
即
上文已述,列空间与左零空间是正交关系,图2中的向量、正是列空间中的向量,又垂直于这个平面,也就是说,位于的左零空间中。
我们继续展开式子:
得到:
代入得:
这样我们就得到了向量p与向量b之间的投影关系,进而得到了投影矩阵:
这也是投影矩阵的一般情况。那么有哪些性质呢?我们知道是一个矩阵,并且是可逆的对称矩阵。对称矩阵的转置还是它本身,因此观察公式我们能得出
接着,根据图像,如果我们将b投影到A的列空间上两次,得到的结果依然是,因此有
证明:
那么投影矩阵有什么用呢?举例来说,它应该能产生出一个投影,如果让和相乘,此时在极端情况下,如果位于列空间中时,那么有;如果垂直于列空间,那么有,此时的就在左零空间中。一般情况下会有一个分量在列空间里,另一个分量在左零空间中。
因此,一个向量总有两个分量,一个分量在的列空间中(也就是),另一个分量垂直于的列空间(位于左零空间,也就是)。而投影矩阵的作用就是保留列空间中的那个分量,拿掉垂直于列空间的分量。
由此我们可以分别表示出和:
这里(I-P)也可以看作是一个投影矩阵,作用于向量,投影到左零空间中。被表示出来后,我们就可以控制误差了。
四、最小二乘法
有了上述知识的铺垫接下来就可以进入最小二乘法了。其实最小二乘法就是一种投影,最后就是保证误差最小,使用最小二乘法其实就是为了解决无解的情况。
我们从一个案例开始:
例. 求解:三个点,,拟合的直线方程
我们设最优直线方程为:,带入三个点得:、、
写成矩阵形式为:
其中,
列出矩阵方程后会发现无解,为了求近似的,由于可能无解,那么只能求解最接近的那个可解问题,因为总是在列空间里,而不一定在,所以我们要把变为列空间中最为接近的向量,这样就把问题转化为了,误差就是投影距离。就有
求解:
解得:
固拟合直线为:
我们也可以通过求偏导,求极值,从导数的角度来求得拟合直线,可以先表示出误差,为了便于计算,我们去求它们的平方和:
那么总误差,求的最小值即可。
求出和后三个点各自的误差也可以求得,只需带入三个点的坐标即可得到三个,通过,最终我们得到了:
我们就得到了如下性质:
- 误差向量与投影向量垂直;
- 误差向量还垂直与列空间中的每一个向量。
最后需要注意,最小二乘法存在一定的局限性,那就是最小二乘法很容易受到离群量的影响。如果数据中有误差过大的点,那么它会对整个结果带来巨大的影响。