梯度下降法,最小二乘法求线性回归

转载地址:

http://www.cnblogs.com/iamccme/archive/2013/05/15/3080737.html

最小二乘法与梯度下降法

   最小二乘法跟梯度下降法都是通过求导来求损失函数的最小值,那它们有什么区别呢。

   相同

 

  1.本质相同:两种方法都是在给定已知数据(independent & dependent variables)的前提下对dependentvariables算出出一个一般性的估值函数。然后对给定新数据的dependent variables进行估算。

  2.目标相同:都是在已知数据的框架内,使得估算值与实际值的总平方差尽量更小(事实上未必一定要使用平方),估算值与实际值的总平方差的公式为:

\Delta =\frac{1}{2} \sum_{i=1}^{m}{(f_{\beta }(\bar{x_{i}} )-y_{i})^{2} }                              

   其中为第i组数据的independentvariable,为第i组数据的dependentvariable,为系数向量。

 

   不同

  1.实现方法和结果不同:最小二乘法是直接对求导找出全局最小,是非迭代法。而梯度下降法是一种迭代法,先给定一个,然后向下降最快的方向调整 ,在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。






转载地址:

http://blog.csdn.net/star_liux/article/details/39646115





一.梯度下降法:

我们假设回归函数为:

        ,这里x0 = 1.

定义回归函数和实际值之间差的均方和为损失函数:

      ,m为样本数量

我们的目的是求出使损失函数最小的参数的值。求最小值,对于每个参数,求出梯度并使梯度等于0,此时的即为对于参数来说,损失函数最小。

是包含所有参数的一维向量,我们先初始化一个,在这个值之上,用梯度下降法去求出下一组的值,由于是梯度下降的,所以损失函数的值在下降。当迭代到一定程度,的值趋于稳定,此时的即为要求得的值。

迭代函数如下:

     每次迭代,我们用当前的求出求出等式右边的值,并覆盖得到迭代后的值。

这里

       

原文在推导过程中省略了连加符。

二. 随机梯度下降法(stochastic gradient descent)和批梯度下降法(batch gradient descent)

       随机梯度下降法和批梯度下降法是对于多样本迭代的两种策略,其中,随机梯度下降法是在每一次迭代中,随机的选择m个样本来求取的值,而批梯度下降法在每次迭代中,需要先求出所有样本的梯度值。相比之下,随机梯度下降法高效。

A. 随机梯度下降法:

     Repeat{

            for i = 1 to m{

                     对于每一个j进行操作

            }

     }

    这里的m为随机选择的m个样本。

B. 批梯度下降法:

      Repeat 直到收敛{

               对于每一个j进行操作

      }

      这里的m为整个样本数。需要先求出在本次迭代中整个样本关于j的导数和,再计算出,对于大样本,很耗时。

三.最小二乘法

A. 需要用到的公式

      首先我们定义为一个m*n矩阵,它在(i,j)上的元素值为。定义n*n的方矩阵A的迹trA为

              

      我们可以证明trABCD = trDABC = trCDAB = trBCDA

      同时,下面两个公式也可以证明:

              

B. 最小二乘法求线性回归

       对于m个样本,每个样本的n个特征值可以表示为一维列向量Xi,则m个样本,可以组成样本矩阵m*(n+1),其中的1为常量参数:

        这里每一行为一个样本的特征向量;

        我们设Y向量为样本特征值对应的目标值,则:

        

        由于,我们可以得到:

         

        到这里,我们需要求X-Y的平方和,假设各个特征之间是相互独立的,则(X-Y)转置*(X-Y)可以得到除了对角线之外都为0的矩阵,而对角线上的值,为X-Y的平方值。于是有:

        

         对矩阵求导的:

          

      令求导函数等于0,此时

         

     于是:

          


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值