美文网首页
最小二乘法

最小二乘法

作者: Jarkata | 来源:发表于2021-02-28 09:50 被阅读0次

本文为转载,原文链接:最小二乘法 (Least Squares) - mathwater的文章 - 知乎
https://zhuanlan.zhihu.com/p/128083562

最小二乘法,为什么叫二乘法

二乘其实是指平方的意思,为什么用平方呢?因为平方可以消除误差正负方向上的差异,单纯的只比较长度

另一种通俗的说法叫距离(学术一点叫欧氏距离),距离不分上下、左右,只有大小,所以可以用来衡量目标与估计的所有方向偏差累积。

啰嗦的分析一下,若您善用程序员if-else思维。定义:估计在目标正方向上为正,负方向上为负。计算时只要加一个if-else判断就行了,并不一定非要用平方来代表距离,还可以用绝对值、三次方、次方.......等。何为数学技巧?此处的平方(二乘)是谓也!最简单的负负得正计算规则让二乘法这个名字得以发扬光大,名垂青史,成为一切拟和法追宗溯源的“鼻屎“(鼻始)。至于最小,这个任务就传到微积分最优化同学的头上了,暂且不表。

如上图所示:蓝点是真实数据,黄点是每个真实数据的估计值,红线的长短即代表真实与估计距离,目标就是找到一条直线(模型)使得所有红线累和最短,推广到多维空间,就是找到一个超平面,而这个超平面是有数学公式解的!以下就是该公式一般化的推导过程,需要点儿耐心看,若有不明白的,请大胆的留言指出。

最小二乘法 通用数学公式解

误差方程为:


其最优解为:

其中X为mxn的样本输入矩阵:


y为mx1列向量,一般称为labels,对应于简单函数,其实就是指函数值f(x)


w为nx1列向量,就是待求的拟合权重参数。


最优解的详细推导过程

误差方程展开


因为,对于两个任意两个列向量\alpha^T\beta=\beta^T\alpha,所以上式等于:

它的极值在对w求导为0处,所以有:

整理得:

为什么?

为什么对列向量求导可以得到上面的等式呢?

假设有以向量为参数的函数f(v)=k^Tv,对向量求导等价于对向量的每个分量求偏导二形成新的向量:


把向量表达式展开:

对每一分量求偏导有:
所以有:

按同样的方法,我们把

展开分别对w的每个分量求偏导

先看第二部分(第三部分为0忽略)



对每一个分量求偏导



合并整理后可得:

同理展开第一部分有(利用到X^TX是对称阵的信息):

所以可得


参考

机器学习笔记——最小二乘法

相关文章

网友评论

      本文标题:最小二乘法

      本文链接:https://www.haomeiwen.com/subject/viawfltx.html