线性最小二乘法

背景:

   记得在高中的时候,课本上有一个拟合直线的例子,当时并没有怎么放在心上,到了大学之后,在校比赛和工作学习需要用到,现在做一下记录,也算是温习以前学过的知识,帮助自己加深理解。

正文:

    最小二乘法在求解最优化问题时,经常是作为一种有效的数据分析方法,本文主要是阐述线性最小二乘法,我们首先引入一个最经典的例子——拟合直线。

    方便计算,给出三个点集合(1, 1),B(2, 1),C(3, 2),很明显这三个点不在一条直线上,按照维基百科的定义是,每个残差项的平方和最小时,此时对应的参数即为最优化参数。

   假设直线的方程是:y = a*x + b ,那么残差方程 : \huge L= \sum_{i=1}^{n}((ax_i + b) - y_i) (n = 3),

带入三个点数据化解 \huge L= 14a^2 + 3b^2 + 12ab - 18a - 8b + 6, 哈哈,这就进入三维空间找最低点过程了,(有兴趣的可以在maltab做图看看),对其微分求导:\huge \begin{pmatrix} 28 & 12\\ 12& 6 \end{pmatrix} \begin{pmatrix} a\\ b \end{pmatrix} = \begin{pmatrix} 18\\ 8 \end{pmatrix}, (如此表达是有原因的,后面矩阵运算揭晓!哈哈),即:\huge \begin{pmatrix} a = 1/2\\ b = 1/3 \end{pmatrix},

为了验证答案是否正确,下图是使用 Microsoft Office Excel.exe拟合的图片,

可以看到上图,一毛一样!(从侧面也反映Excel也是通过最小二乘法拟合直线的)。

上面结束了以求导方式来解决做优化问题,在实际应用中,一般数据量都比较庞大,而且也不是拟合直线那么简单,那么矩阵方式就变得很重要了,而且编程也容易实现。

首先表达线性方程组:  \begin{pmatrix} 1 & 1 \\ 2 & 1\\ 3 & 1 \end{pmatrix}\begin{pmatrix} i\\ j \end{pmatrix} = \begin{pmatrix} 1\\ 1\\ 2 \end{pmatrix}

简写成表达: AX = b,其中A= \begin{pmatrix} 1 & 1 \\ 2 & 1\\ 3 & 1 \end{pmatrix},X = \begin{pmatrix} i \\ j\end{pmatrix},b = \begin{pmatrix} 1 \\ 1\\ 2 \end{pmatrix},

     首先我们要明确一点,上面的这个线性方程组是没有解的,所以描述一个解不存在的方程组,实际应用的常出现这类不相容问题,尽管不会出现如此的系数矩阵,当方程组的解不存在但又要求解时,最好的方法是寻求X,是的AX尽可能接近b。

     考虑AX作为b的一个近似,从b到AX的距离越小,||b - AX||近似程度越好,一般的最小二乘问题就是找出使||b-AX||尽量小的X,术语“最小二乘”来源这样的事实,||b - AX||是平方和的平方根。

下面,是摘自《线性代数及其应用》原书第四版,(想打字的,想一想,太多了),该书以图形化方式解释最小二乘的一般矩阵表达式,容易理解,直接上图吧(每次干这种侵权坏事,心里总是胆战心惊)。

      图片最后一行公式中 \widehat{x} 就是最小二乘解,可以带入A和b,解出\widehat{x} = \huge \begin{pmatrix} 1/2\\ 1/3 \end{pmatrix}​​​​​与微分求导一样的结果。

     这其中蕴涵的数学原理是非常奇妙的,已惊艳到了作者我。

     可以在麻省理工学院的线性代数视频课上观看最小二乘该节内容,加深理解!

     链接: http://open.163.com/movie/2010/11/P/U/M6V0BQC4M_M6V2AOJPU.html

     上面介绍的是线性最小二乘法,工程中也可能遇到非线性问题,一般用梯度下降法找到高维空间最优化解,网上有许多这方面的优化库,可以下载来参考使用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值