投影、最小二乘拟合与QR分解笔记
投影
高中的时候就学过,向量在
上的投影为
其实也不难:注意到和其投影
的差一定是垂直于基向量
的。因为
与
平行,设
代数推导和投影矩阵有啥用?它们可以让我们把投影从投影到一个向量推广到投影到向量空间。
考虑如何把一个向量投影到矩阵
的列空间上(假设
的列向量线性无关)。我们一样考虑
与
的差,其一定垂直于
,自然也垂直于
,于是就有:
我们接下来证明之前我们用到的一个结论:可逆的充分必要条件是
的列向量线性无关。
我们发现这个结论等价于:和
有相同的零空间。
怎么证明?一个方向是简单的:
证毕。
最小二乘拟合
投影和最小二乘拟合是怎么联系起来的呢?
线性拟合的本质是用给定的若干列向量的线性组合表示另一个向量。
比如我有一组数据,我的模型是
,拟合的过程就是用向量
和
的线性组合表示
的过程:
但是事情不太妙的就是又高又瘦,方程组比未知数多,所以几乎肯定不存在准确解。
什么时候存在准确解?要在
的列空间
里。
所以如果只能求近似解,我们可以考虑把“近似到”
中的一个最近的向量,然后就能求解了。
这个“近似”的过程其实就是投影。在中
的投影肯定最接近
,因为只有二者的差是和
垂直的,这很符合我们的代数直觉。
所以联系之前的投影的推导,假设这个投影向量是,我们直接写出方程和解:
如果非要较真,从微积分的角度理解一波也是可以的:定义拟合的误差函数为
中的平方项也是最小二乘中“二”的由来。
矩阵的Gram-Schmidt正交化
我们发现无论是投影还是最小二乘拟合,计算和它的逆都是绕不过去的一步。
本身就有一些特殊的性质,比如说其一定是正方阵,一定是对称的(通过转置等于自身易证)。但是这些性质在计算的时候帮助不大。如果我们能够优化
的形态从而简化
和它的逆的计算,那么各种算法的效率都会高上不少。
注意到中的每一个位置都是
两个列向量的点积。如果
当中的列向量是两两正交的,那么
就变成了一个对角阵。对角阵的逆不要太好算!更进一步,如果
的每一个列向量都是单位向量,那么
就是单位阵,连逆都不用求了!
所以说啊,正交是个好东西。那对于一个矩阵,通过什么样的方式将其列向量完成正交化呢?
比较简单的一个算法称为Gram-Schmidt正交化。设的列向量为
,则向量正交化之后的结果
可以这么计算:
最后,把所有的除以其模完成归一化,我们就可以得到一个标准正交列向量组成的矩阵
,满足
。(线性代数中常使用
表示列向量标准正交的矩阵)
从变到
的过程没有改变列空间,所以不会改变投影矩阵,但计算投影矩阵的开销大大降低了:
QR分解
Gram-Schmidt正交化的过程可以看作是在原矩阵上进行列变换,而列变换是可以用矩阵表示的。类比从高斯消元导出LU分解的思路,我们可以从Gram-Schimidt正交化导出一个矩阵的QR分解:
QR分解有什么用呢?之前我们说正交化不改变投影矩阵,原因是“正交化不改变列空间”,QR分解能让我们在代数上证明这一点:
类似地,QR分解还简化了最小二乘拟合的计算: