数据分析---最小二乘法和梯度下降法

来源:互联网 发布:教师网络培训学员心声 编辑:程序博客网 时间:2024/05/20 11:51

       最近在整理数据优化方面的知识,看的多了最小二乘法和梯度下降法之类的词语经常出现,很多算法都有用到类似方法,或者很多算法看起来和这些似曾相识,比如BP神经网络,支持向量机,等等分类回归方法。可见这最小二乘法和梯度下降法是很基础的方法,很值得好好复习下,不然很多东西剪不断,理还乱。

        首先科普下,这两个基本的慨念,怕自己忘记了。

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

       梯度下降法是一个最优化算法,通常也称为最速下降法。最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。


      最小二乘法原理(下面摘自网上,具体可百度,公式未一一推导)

在物理实验中经常要观测两个有函数关系的物理量。根据两个量的许多组观测数据来确定它们的函数曲线,这就是实验数据处理中的曲线拟合问题。这类问题通常有两种情况:一种是两个观测量x与y之间的函数形式已知,但一些参数未知,需要确定未知参数的最佳估计值;另一种是x与y之间的函数形式还不知道,需要找出它们之间的经验公式。后一种情况常假设x与y之间的关系是一个待定的多项式,多项式系数就是待定的未知参数,从而可采用类似于前一种情况的处理方法。

 

在两个观测量中,往往总有一个量精度比另一个高得多,为简单起见把精度较高的观测量看作没有误差,并把这个观测量选作x,而把所有的误差只认为是y的误差。设xy的函数关系由理论公式

y=fx;c1,c2,……cm          (0-0-1)

给出,其中c1,c2,……cm是m个要通过实验确定的参数。对于每组观测数据(xi,yii=1,2,……,N。都对应于xy平面上一个点。若不存在测量误差,则这些数据点都准确落在理论曲线上。只要选取m组测量值代入式(0-0-1),便得到方程组

                   yi=fx;c1,c2,……cm                   (0-0-2)

式中i=1,2,……,m.求m个方程的联立解即得m个参数的数值。显然N<m时,参数不能确定。在N>m的情况下,式(0-0-2)成为矛盾方程组,不能直接用解方程的方法求得m个参数值,只能用曲线拟合的方法来处理。设测量中不存在着系统误差,或者说已经修正,则y的观测值yi围绕着期望值<fx;c1,c2,……cm>摆动,其分布为正态分布,则yi的概率密度为

,

式中是分布的标准误差。为简便起见,下面用C代表(c1,c2,……cm)。考虑各次测量是相互独立的,故观测值(y1,y2,……cN)的似然函数

.

取似然函数L最大来估计参数C,应使


取最小值:对于y的分布不限于正态分布来说,式(0-0-3)称为最小二乘法准则。若为正态分布的情况,则最大似然法与最小二乘法是一致的。因权重因子,故式(0-0-3)表明,用最小二乘法来估计参数,要求各测量值yi的偏差的加权平方和为最小。

根据式(0-0-3)的要求,应有


解方程组(0-0-4),即得m个参数的估计值,从而得到拟合的曲线方程。

然而,对拟合的结果还应给予合理的评价。若yi服从正态分布,可引入拟合的x2量,


可以证明,服从自由度v=N-mx2分布,由此可对拟合结果作x2检验。

x2分布得知,随机变量的期望值为N-m。如果由式(0-0-6)计算出接近N-m(例如),则认为拟合结果是可接受的;如果,则认为拟合结果与观测值有显著的矛盾。


很多公式没有显示出来,后面再补上。

有了这个基础,我们很容易知道曲线拟合中最基本和最常用的是直线拟合。设xy之间的函数关系由直线方程

y=a0+a1x                         (0-0-7)

给出。式中有两个待定参数,a0代表截距,a1代表斜率。对于等精度测量所得到的N组数据(xi,yi),i=1,2……,N,xi值被认为是准确的,所有的误差只联系着yi。可以使用最小二乘法把观测数据拟合为直线。


最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。


        梯度下降法原理

       顾名思义,梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值)。
其迭代公式为,其中代表梯度负方向,表示梯度方向上的搜索步长。梯度方向我们可以通过对函数求导得到,步长的确定比较麻烦,太大了的话可能会发散,太小收敛速度又太慢。一般确定步长的方法是由线性搜索算法来确定,即把下一个点的坐标ak+1看做是的函数,然后求满足f(ak+1)的最小值的 即可。
因为一般情况下,梯度向量为0的话说明是到了一个极值点,此时梯度的幅值也为0.而采用梯度下降算法进行最优化求解时,算法迭代的终止条件是梯度向量的幅值接近0即可,可以设置个非常小的常数阈值。

那么神马事梯度呢?哈哈,这个可是大有来头。具体的我也不copy了,网上有很多这类慨念,如:http://deepfuture.iteye.com/blog/1593259

里面复习了导数,微分,梯度等等慨念,勾起了很多学习高数的往事,不堪回首啊。


在线性回归中,前提假设是y服从正态分布,而逻辑回归则是服从二项分布的,因为y是逻辑值。所以一定要记住不同的模型,采用不同的方法来处理。

这里摘下知乎上一段话,挺有意思的:为什么用最小二乘(求残差平方和最小值)来拟合函数?残差可以理解,那为什么是平方和,而不是绝对值或者四次方和?对此,极大似然可以完美解释。
为大量独立样本线性拟合,根据中心极限定理可知,其残差呈高斯分布。也就是说,X确定时,y的可能性呈高斯分布。这时,对于给定的参数θ,我们可以求出P(y|X;θ),表示使用这组θ的情况下,给定一组X,得出这组y的可能性。而关于θ的似然函数可以写为L(θ)=P(y|X;θ),表示已知(X,y)的情况下,θ值出现的可能性。明显的,当L(θ)最大时,θ为最佳拟合参数。求L(θ)最大值时,我们会在结果中发现残差平方和的式子,并且残差平方和最小L(θ)最大。
梯度下降法,是先给定一组系数θ,根据最小二乘法构造一个损失函数J(θ)。然后不断迭代以找出新的θ来使J(θ)更小。最终确定最合适的θ。
   

       综上所述,这两个东西是两个不同方面的东西,最小二乘是通过某种规则,来衡量测量结果和期望值之间的差异,求解模型最优化的过程转为最优化目标函数的过程,这个过程存在的前提就是假设噪声的分布是正态分布。在数据分析的过程中,建立了模型,怎么来求解模型,采用什么方法来优化求解的过程,就是数值优化的方法了,而梯度下降法就是其中之一,其他的还有牛顿法,以及拟牛顿法,等等。

  



0 0
原创粉丝点击