最小二乘法简介

来源:互联网 发布:《梦里花落知多少》 编辑:程序博客网 时间:2024/06/08 06:00

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

最小二乘法最重要的应用是在曲线拟合(曲线拟合俗称拉曲线,是一种把现有数据透过数学方法来代入一条数式的表示方式。科学和工程问题可以通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,我们往往希望得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合,这过程就叫做拟合(fitting))上。最小平方所涵义的最佳拟合,即残差(残差为:观测值与模型提供的拟合值之间的差异)平方总和的最小化。

最小二乘法分为两种:线性或普通的最小二乘法(Ordinary Least Squares, OLS)和非线性的最小二乘法,取决于在所有未知数中的残差是否为线性。线性的最小二乘问题发生在统计回归分析中;它有一个封闭形式的解决方案。非线性的问题通常经由迭代细致化来解决;在每次迭代中,系统由线性近似,因此在这两种情况下核心演算是相同的。梯度下降法是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。高斯-牛顿法是另一种经常用于求解非线性最小二乘的迭代法。

示例:已知四个数据点(x,y):(1,6)、(2,5)、(3,7)、(4,10)。我们希望找出一条和这四个点最匹配的直线y=β12x,即找出在某种”最佳情况”下能够大致符号如下超定线性方程组的β1和β2: β1+1β2=6 ;  β1+2β2=5 ;  β1+3β2=7 ;   β1+4β2=10

最下二乘法采用的手段是尽量使得等号两边的方差最小,也就是找出这个函数的最小值:

S(β1, β2)=[6-(β1+1β2)]2+[5-(β1+2β2)]2+[7-(β1+3β2)]2+[10-(β1+4β2)]2.

最小值可以通过对S(β1, β2)分别求β12的偏导数,然后使它们等于零得到,即:


如此就得到了一个只有两个未知数的方程组,即可解出:β1=3.5, β2=1.4 , 也就是说直线y=3.5+1.4x是最佳的。

一般线性情况:

若含有更多不相关模型变量t1,…,tq,可如下组成线性函数的形式:

y(t1,…,tq;b0,…,bq)=b0+b1t1+…+bqtq

即线性方程组:

b0+b1t11+…+bjt1j+…+bqt1q=y1

b0+b1t21+…+bjt2j+…+bqt2q=y2

….

b0+b1ti1+…+bjtij+…+bqtiq=yi

b0+b1tn1+…+bjtnj+…+bqtnq=yn

通常人们将tij记作数据矩阵A,参数bj记作参数向量b,观测值yi记作Y,则线性方程组又可写成:

 

上述方程运用最小二乘法导出为线性平方差计算的形式为:

最小二乘法的特解为A的广义逆矩阵(广义逆阵(generalized inverse)也称为伪逆矩阵)与Y的乘积,这同时也是二范数极小的解,其通解为特解加上A的零空间。

以上内容主要摘自:维基百科

待后面介绍线性回归时会给出最小二乘法的C++实现

GitHub:https://github.com/fengbingchun/NN_Test

原创粉丝点击