最小二乘法(least square method)的直观认识

背景

关于最小二乘法(LSM,least square method)网上有很多讲解,但是看起来难免有些晦涩,很多也说不清楚看得莫名其妙,最近机器学习programming作业需要实现5种不同的回归的方法,其中最基础的就是LSM,所以不如趁这个机会讨论下如何直观的认识它的本质。本文主要关注点是最小二乘法的矩阵形式推导和几何的直观理解(可能会有很多不太严谨的地方,欢迎斧正)。


正文

在Ax=b中,A是一个向量组,假设其中有列向量(a1,a2...an);

x是一个"系数向量",假设是有(x1,x2...xn)转置

b是最终向量,显然也有(b1,b2...bn)转置

那其实这个公式展开后就会有这样的关系, a1x1+a2x2+...+anXn=b,可以明显看出来,之所以x称之为系数向量,是因为b是A向量组内部列向量通过x向量中系数配置的线性组合而形成的。

接下来思考一下,如果不存在一个系数向量x让A向量组可以线性表示b的情况,那什么样的x系数能做到让A向量组线性组合后最接近b呢?


这里先引入一个概念:张成(span)。直观解释是,向量v1,v2,.,vn的所有线性组合构成的集合,称为v1,v2,...,vn的张成(span).或者叫生成子空间。在这个问题中,b向量无法在A的生成子空间中被表示,那么想象一下,假设A是一个所有向量通过各种向量组合形成的“平面”,b因为无法被A表示所以像一根木棍插在这个水面上。现在我的要求是在水面上找一个和b最“像”(方向一致)的向量,显然b在水面的上的影子(垂直投影)是在A空间上能被表示出来并且离b最近的一个向量。如果对这个结论难以理解,那么再想象如果是水面上别的向量只会和b的夹角越来越大。


ok,问题到这里,发现其实我们要找得是Ax=b投影  (1)

而根据向量的加减法运算:b投影=b-b垂直  (2)

然后把(2)式代入(1): Ax = b-b垂直  (3)

这里用到一个trick,b垂直 垂直于A平面,那么A上所有向量和b垂直的内积都是零,既: A转置*b垂直=0 (4)

那么现在在(3)式两边同时左乘一个A转置,得 : A转置*Ax = A转置*b-A转置*b垂直  (5)

等式右边最后一项等于0,所以得到  A转置*Ax = A转置*b (6)

最后,将等式两边同时乘以(A转置*A) ,得到 :x = (A转置*A)逆*A转置*

这样最小二乘法的几何解释和推导就结束了,当然看完你可能都没发现这个几何角度的解释和“最小二乘”有任何关系,下面解释一下他们之间的关系。

最小二乘法的定义:


   
时,
   
取最小值,记作:



再看Ax=b,将等式变换过来,这个定义中的argmin其实就是等价于 求argmin(|Ax-b|平方),而Ax-b事实上就是两个向量的减法,最小二乘就是找到最终最小的那个向量,即向量b在A上的投影。

当然,最小二乘法还可以用求偏导等于0的方法计算,但这种方法很晦涩,十分不优雅。

再啰嗦一句,事实上最小二乘法,和样本点的高斯分布求最大似然(ML)有着殊途同归的一致,而后者的本质是假设观测点符合在拟合曲线附近的高斯分布,真是和谐得不可思议。


[1]:https://www.youtube.com/watch?v=Z0wELiinNVQ

[2]:https://www.youtube.com/watch?v=8mAZYv5wIcE&t=24








你可能感兴趣的:(机器学习)