泛统计理论初探——梯度下降方法简要比较

数据挖掘-简要比较梯度下降方法

梯度下降方法初探
   本文的内容主要是介绍几种简单的梯度下降方法,比如随机梯度下降方法、小批量梯度下降方法,并对它们的优缺点进行比较,梯度下降方法是一种求解凸函数的常见学习方法。我们都知道在机器学习中的损失函数一般是凸函数,当然随着深度学习的发展,很多损失函数都不是凸函数,这个时候使用梯度下降方法可能效果就不好,会陷入局部最优点而停止下降。本文讨论的梯度下降方法假设针对的是损失函数为凸函数的情况,其他的下降方法会在后续文章中介绍。
   首先我们来回顾损失函数,比如之前的文章讨论的常见的损失函数,线性回归的损失函数是(y-f(x))*(y-f(x)) ,即是真实值与预测值的差值的平方,显然该损失函数是一个常见的凸函数,当我们求解线性回归的参数时,可以对损失函数按照参数求导,当我们有m个样本的时候,就有对参数如下的迭代逼近公式:
在这里插入图片描述
    可以发现梯度下降公式就是损失函数求导后乘以特征x向量的求和,并对m个样本做同样的操作后取平均值,这样的形式就可以统称为梯度下降法。但是显然受到m的值的影响,如果数据量较大的时候m会很大,这个时候计算会比较慢,因为每一次下降的计算都需要计算m个样本的值,比如m=100万的时候,那么假设从初始值到最终稳定值总共走了10步,每次都需要计算100万个样本的值,那么这个计算量是非常大的。
   在这个基础上,我们引出SGD方法,即Stochastic Gradient Descent,也就是随机梯度下降方法,该方法本质上的形式是和上面的梯度下降方法是一样的,因为函数的形式几乎一样,但是不需要对m个样本做操作,每次只需要随机选择1个样本进行计算即可,并以那个样本计算的值作为梯度下降的方向和下降的距离。公式如下:
在这里插入图片描述
   而相对于这种SGD方法,其实有一些偶然性的因素影响,比如选择的样本刚好是异常点,那么最后可能无法找到参数的最优解,因为样本选择是随机的。那么我们又可以选择稍微多一点的样本进行计算,也就是小批量梯度下降方法MBGD,英文是Mini-Batch Gradient Descent,公式的形式也和上面的一样,就是体现在这个Mini上面,即计算的时候不是随机选择1个样本也不是所有m个样本,而是使用K个样本进行求解,公式形式如第一个随机梯度下降方法的公式,只是将m改为K即可。
   其实还有动量梯度下降方法,英文名是Gradient descent with Momentum,该方法是避免在最后的几步下降的时候的震荡现象而提出的,在之前的参数迭代的公式里加入动量v,目的是在参数向量中,衡量各个参数的收敛情况,即收敛几乎不变的参数加快其收敛速度,收敛较快的参数减慢其收敛速度。公式如下:
在这里插入图片描述
   显然可以发现上述的公式是加入了动量,第一个公式右边部分除了梯度下降的里的形式,还有上一步的动量v(t-1),一般来说y是超参数可以取0.8到0.9,另一个超参数η可以取0.1到0.2,因为η=1-y,具体取值视作实际问题而决定,通过加入动量的形式就可以综合考虑上一步的梯度下降情况,其实就是一种把当前步的梯度和上一步的梯度进行加权的思路。
   上面几种梯度下降方法其实都是从BGD批量梯度下降方法延伸而来,只是针对数据量或是收敛情况进行方法的优化,从而可以更好地、更快地进行参数的收敛到全局最优点。从优缺点来说,对于数据量较大的情况,使用SGD可以较快的迭代,但是可能容易陷入局部最优点,并且由于每次选择的样本都不一样,因此有一定可能是震荡较强的,即容易“一步小、一步大”,一般认为规避方法是选择不同的初始值进行多次SGD方法的梯度下降,这样可以减小由于随机选择样本带来的偶然性。对于数据量不大的情况,可以直接使用MBGD方法进行求解,但是也可以选择不同的初始值进行迭代计算,因为MGBD虽然不会大幅震荡,但也是存在陷于局部最优点的情况。而如果使用MBGD方法的效果不理想,那么可以使用动量梯度下降方法Momentum,该方法可以规避一些震荡的情况,但是需要的计算量稍大,使用者需要权衡。
   总的来说,梯度下降方法是一种利用1阶偏导数的下降方法,本质上是容易陷入局部最优点的,因为在1阶偏导数里的信息是不完全的,丢失的较多的。后面的文章会讲到利用2阶导数来进行下降的方法。但是梯度下降方法是计算量较小并且下降较快的方法,初学者需要对不同情况进行考虑,认识不同下降方法的优缺点并合理利用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值