多方位理解最小二乘法 | 从均值到正态分布
最小二乘法,想必很多人熟悉又陌生,今天咱们来聊聊!
最小二乘法(ordinary least squares)是一种数学优化方法,又称最小平方法,由勒让德和数学小王子高斯分别独立提出,但高斯先发明(1809发表),勒让德先发表(1805发表)。最小二乘法在机器学习领域里的应用便是最小二乘参数估计,当然最小二乘法与我们熟知的算数平均数以及正态分布之间也有密切关系,本推送将一一揭秘。

图图还记得,从小学二年测量数学课本边长开始,数学老师就告诉我们要多次测量取平均值,具体操作就是将几次测量结果加起来除以测量次数。

后来我们知道了这是为了求得算数平均值——用多次观测值的算数平均值逼近真实值。
此处以y代表真实值,yhat代表算数平均值,y_i代表每次的观测值;

这么做基于如下重要事实与假设:
真实值是无法得到的;
单次的测量误差是随机的;
在往后的中学与大学学习中我们也继续这么使用。可是这样有道理嘛?我们为什么不用调和平均数?几何平均数?为什么不用众数或者中位数?来反映课本边长的真值?
为了解决这个疑惑,我们不妨换个角度思考问题。
既然测量的误差是随机的,那么误差应该围绕真实值上下随机波动(可以参考无偏估计的概念)。

由于误差含有绝对值,进行微积分运算比较麻烦,所以干脆以平方值代替,同样可以反映出误差的大小:

假设某次测量有n个观测(测量)值,那么测量值与真值之间的误差平方和Rn为:

注意此时只有真值y是不知道的。我们知道yi围绕y值随机地上下波动,问题就变成了如何根据已有数据确定y的值。
举例说明:如下图所示,黄色数据为观测值,其算数平均值为5;黑色横线为真值,因为真值不确定,所以让真值在数据间波动以寻找规律,发现当真值等于算数平均值时,误差平方和最小,以此作为真值。


(动态绘图代码见文末~)
这是自洽的,也蛮符合直觉。因为如果误差是随机的,误差应该围绕着真值,真值应该使得误差平方和最小。
下面我们让Rn对y求两次导,进行简单的数学证明:

显然Rn任意阶连续可微,又二阶导数恒为正,所以一阶导数为0的点便是极小值点;

这一解答便是算数平均值。
也就是说算术平均数可以让误差(欧几里得范数意义下)最小。
算数平均值只是最小二乘法应用的特例,可以看作是一组数据的0阶拟合,多项式拟合以及函数逼近就是更广泛一点的应用了。
以我们熟悉的线性拟合为例:
下图中有一些数据点,它们似乎符合某种线性关系

由于不知道是什么关系,只能假设为:

根据最小二乘法的原理得到极值条件方程组(线性方程组)

方程组的解即为系数a和b。
对于上述数据,利用MATLAB求解出的曲线如下所示:

对于更高次的拟合,方法相同:

我们再来观察一下对于15个数据点,从1次到16次多项式依次拟合的情况:

(动态绘图代码见文末~)
注意到,随着拟合次数的增加,更多的点靠近拟合曲线(代数精度提升),但是曲线的振荡变得更加严重(龙格现象),如何解决这一问题?这个部分我们之后再讨论~
上述的合理性基于一个重要假设!使得误差平方和最小的值为数据的真值,这个假设是符合直观感受的,那么它是否合理呢?勒让德虽然提出了最小二乘法,但高斯最早从概率分布的角度给出了更为具体的证明。

以一开始的书本边长测量为例,设测量误差为随机变量epsilon,服从未知的概率分布p,
进而得到似然函数L(y)。根据极大似然估计的思想,联合概率最大的情况最应该出现,那么似然估计的随机变量y需要满足下方驻值条件:

如果最小二乘是对的,那么:

解上方微分方程组得到:

这就是正态分布。并且可以证明正态分布和均值互为充要条件。
也就是说,如果误差的分布是正态分布,那么最小二乘法得到的就是最有可能的值。
误差的分布是正态分布吗?如果误差是由于随机的、无数的、独立的、多个因素造成的,那么根据中心极限定理,误差的分布就应该是正态分布。至此,推理链已经完整。
相信通过上述过程,您已经基本了解了最小二乘法,算数平均值以及正态分布之间的关系,更多文中提到的相关的数值计算与概率方面的内容将后续更新~
(文中的部分解答参考:https://www.zhihu.com/question/37031188/answer/411760828)
需文中的拟合与绘图代码,评论区留邮箱
动画演示:
