最小二乘法拟合线性回归方程是机器学习中最基础的内容了,之前都是从微积分求导的思路理解最小二乘法,现在看到线性代数视角下的最小二乘法感觉挺新颖,记录一下。

  • 求解思路

我们经常会碰到Ax = b 方程组无解的情况,通常的原因是方程组过多,而未知数太少的情况,也就是矩阵A(n× m)的行数大于列数的情况(n远远大于m)。除非碰上极端情况,结果向量b都在矩阵A的列空间外。普通的消元法解决不了这类问题,因为我们的测量数据是包含杂讯的。

重申一遍:我们不能总是让误差项 e = b – Ax 等于0,当e为0时,x就是使方程组Ax=b 的解。当e 尽可能的取最小值的时候,求得的 	ilde{x}

就是最小二乘法的解决思路。具体来说,方程Ax=b 无解,但是方程A 	ilde{x} =p 可解(p:向量b在矩阵A的列空间上的投影)。我们把b向量分解成两部分,在矩阵A的列空间的部分是p,垂直于p位于 A^{T} 零空间的部分是e。e = b – p, e ot p, 也就是 A^{T}(b - A	ilde{x})=0。

当Ax=b无解时,方程左右乘以 A^{T}求解 A^{T}(b - A	ilde{x})=0

例 1 最小二乘法的一个典型应用就是拟合直线方程,如:给定数据(0,1),(1,9),(3,9)和(4,21)找到一条离数据点最近的直线。

A^{T}(b - A	ilde{x})=0Rightarrow A^{T}A	ilde{x}=A^{T}b

可以解得方程参数:

所以最佳直线方程是 y = 4x +2

  • 与微积分的联系

误差E =(b -A	ilde{x})^{2} = (C+Dx -b)^{2}

delta E/delta C =Sigma 2(C+Dx_{i}-b)=0

delta E/delta D =Sigma 2(C+Dx_{i}-b)x_{i}=0

化简得(n为样本数):

nC + Sigma x_{i}D=b

nC + Sigma x_{i}^{2}D = bSigma x_{i}

用矩阵的方式表达为:

  • 为什么最小二乘是竖直距离而不是垂直距离

下面两幅图,左图是平面图,空心圆代表原始数据,直线是我们的最佳拟合线。直线上的点 p_{i} 表示原始数据在该直线的投影,点 e_{i}代表误差。右图是四维空间图(我们的样本数为4),投影向量p在列空间上,原始向量b在列空间外。

p是向量b在列空间上的投影,e是误差。投影向量p=(2,6,14,18),误差向量e=(-1,3,-5,3),可以看到p ot e,也就是p * e = 0。在高维空间,我们可以很清楚的看到投影向量垂直于误差向量,反映到二维平面来说,误差就是原始数据点到拟合直线上的竖直距离。

另一种解释是,我们的观测值y序列(也就是b向量)是存在测量误差的,但对x序列是没有误差概念的(也就是我们说的对于不同的自变数x,误差分布应该一致,变异量应该相等。这是线性回归基本假设中的误差等分散性假设)。所以对于某一x对应的y,我们只需考虑y序列(b向量)在由直线方程参数C,D向量构成的平面上的投影,而自变数x序列(D向量)在平面上的投影就是其自身。反映到二维平面图上,x在拟合直线上的投影是自身x,y在拟合直线上的投影就是直线上对应的点p,误差就是竖直距离。

上面从理论的上解释了为什么是竖直距离,其实实践中很重要的一个因素就是竖直距离计算复杂度明显小于垂直距离,而大部分情况下,精度又和垂直距离计算的结果很接近。那么什么情况下,采用竖直距离不适合呢?先来看一张图:

上图(a)表示符合误差等分散性的数据,可以采用最小二乘法求解直线方程;图(b)表示不符合误差等分散性的数据,此时用最小二乘法可能就不是很合适。写到这,顺便提一下采用垂直距离到底是什么意思呢?此时,x,y都相当于自变数,他们的关系是平等的。我们要对y投影,也要对x投影(投影这个词可能在这就不那么准确了)。最小二乘法是将y投影到由x序列和1序列构成的平面上,x和y并不是对等的关系。所以求解垂直距离最小的思路相当于做了一次基变换,原始空间的基(也就是x(1,0),y(0,1))变换为一组新的基。这组新的基就是矩阵 A^{T}A 的特征向量构成。这也就是我们熟悉的主成分分析的方法。

知乎也有一位大牛的博客讲解的特别清晰,可前往:

zhuanlan.zhihu.com/p/36


推荐阅读:
相关文章