最小二乘法来龙去脉

花月世界 花月世界     2022-11-11     341

关键词:

 https://blog.csdn.net/bitcarmanlee/article/details/51589143 

最小二乘是每个上过大学的同学都接触过的概念与知识点(当然可能纯文科的同学没接触过,但是一般纯文科的同学也不会看这篇文章好像)。最小二乘理论其实很简单,用途也很广泛。但是每次说到最小二乘,总感觉差了点什么似的,好像对于最小二乘的前世今生没有一个特别详细与系统的了解。so,本博主趁着周末的时间,赶紧给详细整理整理,力争把最小二乘是个什么鬼做一个特别详细的说明,争取让学英语学中文学历史学画画唱歌的同学都能看明白。

1.最小二乘的背景

这种东东的来源,比较容易找到而且比较靠谱的途径自然是wiki百科了,以下部分的内容来自wiki百科: 
1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥伯斯根据高斯计算出来的轨道重新发现了谷神星。 
高斯使用的最小二乘法的方法发表于1809年他的著作《天体运动论》中,而法国科学家勒让德于1806年独立发现“最小二乘法”,但因不为世人所知而默默无闻。两人曾为谁最早创立最小二乘法原理发生争执。1829年,高斯提供了最小二乘法的优化效果强于其他方法的证明,见高斯-马尔可夫定理。

2.举个最简单的例子理解最小二乘

现在大家都越来越重视自己的身体健康。现代人最常见的亚健康问题就是肥胖,本博主身体棒棒哒,唯一困扰本博主的健康问题就是超重。(好吧,承认自己是个死胖子就完了) 
假设身高是变量X,体重是变量Y,我们都知道身高与体重有比较直接的关系。生活经验告诉我们:一般身高比较高的人,体重也会比较大。但是这只是我们直观的感受,只是很粗略的定性的分析。在数学世界里,我们大部分时候需要进行严格的定量计算:能不能根据一个人的身高,通过一个式子就能计算出他或者她的标准体重? 
接下来,我们肯定会找一堆人进行采用(请允许我把各位当成一个样本)。采样的数据,自然就是各位的身高与体重。(为了方便计算与说明,请允许我只对男生采样)经过采样以后,我们肯定会得到一堆数据(x1,y1),(x2,y2),?,(xn,yn)(x1,y1),(x2,y2),?,(xn,yn),其中x是身高,y是体重。 
得到这堆数据以后,接下来肯定是要处理这堆数据了。生活常识告诉我们:身高与体重是一个近似的线性关系,用最简单的数学语言来描述就是y=β0+β1xy=β0+β1x。于是,接下来的任务就变成了:怎么根据我们现在得到的采样数据,求出这个β0β0与β1β1呢?这个时候,就轮到最小二乘法发飙显示威力了。

3.最小二乘的cost function

在讲最小二乘的详情之前,首先明确两点:1.我们假设在测量系统中不存在有系统误差,只存在有纯偶然误差。比如体重计或者身高计本身有问题,测量出来的数据都偏大或者都偏小,这种误差是绝对不存在的。(或者说这不能叫误差,这叫错误)2.误差是符合正态分布的,因此最后误差的均值为0(这一点很重要) 
明确了上面两点以后,重点来了:为了计算β0β0,β1β1的值,我们采取如下规则:β0β0,β1β1应该使计算出来的函数曲线与观察值的差的平方和最小。用数学公式描述就是: 

 
Q=minin(yie?yi)2Q=min∑in(yie?yi)2


其中,yieyie表示根据y=β0+β1xy=β0+β1x估算出来的值,yiyi是观察得到的真实值。

 

可能有很多同学就会不服了,凭什么要用差的平方和最小勒?用差的绝对值不行么?不要骗我们好不好? 
本博主不敢骗大家,为了让大家相信,特意找了一种本博主认为比较靠谱的解释: 
我们假设直线对于坐标 Xi 给出的预测 f(Xi) 是最靠谱的预测,所有纵坐标偏离 f(Xi) 的那些数据点都含有噪音,是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以用一个正态分布曲线来模拟,这个分布曲线以直线对 Xi 给出的预测 f(Xi) 为中心,实际纵坐标为 Yi 的点 (Xi, Yi) 发生的概率就正比于 EXP[-(ΔYi)^2]。(EXP(..) 代表以常数 e 为底的多少次方)。 
所以我们在前面的两点里提到,假设误差的分布要为一个正态分布,原因就在这里了。 
另外说一点我自己的理解:从数学处理的角度来说,绝对值的数学处理过程,比平方和的处理要复杂很多。搞过机器学习的同学都知道,L1正则就是绝对值的方式,而L2正则是平方和的形式。L1能产生稀疏的特征,这对大规模的机器学习灰常灰常重要。但是L1的求解过程,实在是太过蛋疼。所以即使L1能产生稀疏特征,不到万不得已,我们也还是宁可用L2正则,因为L2正则计算起来方便得多。。。

4.最小二乘法的求解

明确了前面的cost function以后,后面的优化求解过程反倒变得so easy了。 
样本的回归模型很容易得出: 

 
Q=in(yi?β0?β1x)2Q=∑in(yi?β0?β1x)2


现在需要确定β0β0、β1β1,使cost function最小。学过高数的同志们都清楚,求导就OK。对于这种形式的函数求导,so easy,so happy…

 

 

 
?Q?β0=2in(yi?β0?β1xi)(?1)=0?Q?β1=2in(yi?β0?β1xi)(?xi)=0?Q?β0=2∑in(yi?β0?β1xi)(?1)=0?Q?β1=2∑in(yi?β0?β1xi)(?xi)=0

 

将这两个方程稍微整理一下,使用克莱姆法则,很容易求解得出: 

 
β0=x2iyi?xixiyinx2i?(xi)2β1=nxiyi?xiyinx2i?(xi)2β0=∑xi2∑yi?∑xi∑xiyin∑xi2?(∑xi)2β1=n∑xiyi?∑xi∑yin∑xi2?(∑xi)2

 

因为求和符号比较多,省略了上标与下标。 
根据这个公式,就可以求解出相应的参数。 
对应上面的身高体重关系的例子,我们只需要将采样得到的数据,一一代入即可求解。

5.矩阵表达形式

如果我们推广到更一般的情况,假如有更多的模型变量x1,x2,?,xmx1,x2,?,xm(注意:x1x1是指 一个样本,x1x1是指样本里的一个模型相关的变量),可以用线性函数表示如下: 

 
y(x1,?,xm;β0,?,βm)=β0+β1x1+?+βmxmy(x1,?,xm;β0,?,βm)=β0+β1x1+?+βmxm


对于n个样本来说,可以用如下线性方程组表示: 

 
β0+β1x11+?+βjxj1+?+βmxm1=y1β0+β1x12+?+βjxj2+?+βmxm2=y2?β0+β1x1i+?+βjxji+?+βmxmi=yi?β0+β1x1n+?+βjxjn+?+βmxmn=ynβ0+β1x11+?+βjx1j+?+βmx1m=y1β0+β1x21+?+βjx2j+?+βmx2m=y2?β0+β1xi1+?+βjxij+?+βmxim=yi?β0+β1xn1+?+βjxnj+?+βmxnm=yn

 

如果将样本矩阵xhixih记为矩阵A,将参数矩阵记为向量ββ,真实值记为向量Y,上述线性方程组可以表示为:

 

 
???????11?1x(1)1x(1)2?x(1)n????x(m)1x(m)2?x(m)n?????????????β0β1?βm?????=?????y1y2?yn?????[1x1(1)?x1(m)1x2(1)?x2(m)????1xn(1)?xn(m)]?[β0β1?βm]=[y1y2?yn]


Aβ=YAβ=Y 
对于最小二乘来说,最终的矩阵表达形式可以表示为: 

 
min||Aβ?Y||2min||Aβ?Y||2


最后的最优解为: 

 
β=(ATA)?1ATYβ=(ATA)?1ATY

 

6.注意事项

经典的最小二乘法使用起来够简单粗暴,计算过程也不复杂。但是一个致命的问题就是其对噪声的容忍度很低。试想一下,如果前面我们得到的总采样数据为100个,但是里面有几个大胖子,这几个大胖子就相当于不是普通人的身高-体重系数,他们就是噪声了。如果不采取一些手段对这几个噪声样本进行处理,最后计算出来的身高-体重系数肯定会比正常值要偏大。 
对于噪声的处理,比如有加权最小二乘等方法,后续有时间跟大家再讲讲。

理解最小二乘法

最小二乘法辨识  最小二乘法-矩阵求导求解  最小二乘法的一般形式和矩阵形式原理推导和代码实现 查看详情

机器学习-最小二乘法

最小二乘法是机器学习中的基础知识点,一致对最小二乘法的理解不够深入,今天就花点时间来深入理解和探讨一下最小二乘法最小二乘法,又称最小平方法,基本公式通俗来讲,二者先取个差值,在来个平方,最后搞一个和号... 查看详情

最小二乘法小结

原帖地址:http://www.cnblogs.com/pinard/p/5976811.html最小二乘法是用来做函数拟合或者求函数极值的方法。在机器学习,尤其是回归模型中,经常可以看到最小二乘法的身影,这里就对我对最小二乘法的认知做一个小结。1.最小二乘法... 查看详情

最小二乘法小结

    最小二乘法是用来做函数拟合或者求函数极值的方法。在机器学习,尤其是回归模型中,经常可以看到最小二乘法的身影,这里就对我对最小二乘法的认知做一个小结。  1.最小二乘法的原理与要解决的问题    ... 查看详情

最小二乘法小结

 最小二乘法是用来做函数拟合或者求函数极值的方法。在机器学习,尤其是回归模型中,经常可以看到最小二乘法的身影,这里就对我对最小二乘法的认知做一个小结。1.最小二乘法的原理与要解决的问题     最小二乘... 查看详情

最小二乘法

最小二乘法 最小化误差的平方。对于式子,y(i)是真值,ax(i)-b是预测值。将两者差的平方和最小化,就是最小二乘法解决的问题。x_bar:x向量对应的均值推导过程: 查看详情

最小二乘法

目录最小二乘法 不同厂家的尺子的生产精度不同尺子材质不同,热胀冷缩不一样测量的时候心情起伏不定这样做有道理吗?用调和平均数行不行?用中位数行不行?用几何平均数行不行?最小二乘法 查看详情

机器学习-最小二乘法

...。追本溯源,从“Logistic回归”到“线性回归”,再到“最小二乘法”。最终定格到了《高等数学》(第六版·下册)第九章第10节“最小二乘法”,这才了解到最小二乘法背后的数学原理出自哪里。“最小二乘法”是最优化问题... 查看详情

算法#03--具体解释最小二乘法原理和代码

最小二乘法原理最小二乘法的目标:求误差的最小平方和,相应有两种:线性和非线性。线性最小二乘的解是closed-form(例如以下文),而非线性最小二乘没有closed-form,通经常使用迭代法求解(如高斯牛顿迭代法,本文不作介... 查看详情

最小二乘法(leastsquares)简介

 原文链接:最小二乘法(LeastSquares)简介最小二乘法(LeastSquares)详细介绍|数据学习者官方网站(Datalearner)  最小二乘法(LeastSquares)是回归分析中的一种标准方法,它是用来近似超定系统(OverdeterminedS... 查看详情

最小二乘法,了解一下?

摘要:最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具。最小二乘很简单,也在业界得到了广泛使用。本文分享自华为云社区《最小二乘法介绍》,... 查看详情

线性回归——最小二乘法

...ession),本篇文章详细将讲解单变量线性回归并写出使用最小二乘法(leastsquaresmethod)来求线性回归损失函数最优解的完整过程,首先推导出最小二乘法,后用最小二乘法对一个简单数据集进行线性回归拟合;线性回归  线性... 查看详情

最小二乘法

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法... 查看详情

浅谈最小二乘法

参考技术A最小二乘法是回归分析的一种标准方法,它通过最小化每个方程式结果中的残差平方和来近似超定系统(方程组多于未知数的方程组)。回归分析(regressionanalysis)指的是确定两种或两种以上变量间相互依赖的定量关系... 查看详情

最小二乘法

理解:最小:理论值和观测值之差的平方和最小。高斯于1823年在误差e1,…,en独立同分布的假定下,证明了最小二乘方法的一个最优性质:在所有无偏的线性估计类中,最小二乘方法是其中方差最小的!现行的最小二乘法是勒让德... 查看详情

加权最小二乘法的权重形式

加权最小二乘法的权重形式?加权最小二乘法采用指数权数W,0以直线模型为例,其加权的剩余平方和为:对上式分别求a和b的偏导数,得到标准方程组:对上述方程解出a和b,就得到加权最小二乘法直线模型。应用加权最小二乘... 查看详情

什么是加权最小二乘法,它可以解决什么问题?

着急!请会的人迅速回复,用来答选择提的,不需要太长最小二乘法是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配。  最小二乘法是用最简的方法求得一些绝对不可知的真值,而令误差平方之... 查看详情

最小二乘法求线性回归方程的公式是啥?

参考技术A最小二乘法求线性回归方程为a=y(平均)-b*x(平均)。最小二乘法公式是一个数学的公式,在数学上称为曲线拟合,此处所讲最小二乘法,专指线性回归方程!最小二乘法公式为a=y(平均)-b*x(平均)。最小二乘法(又称... 查看详情