0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以线性回归算法来对三种梯度下降法进行比较

Dbwd_Imgtec 来源:lp 2019-04-19 17:03 次阅读

在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练。其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点。

下面我们以线性回归算法来对三种梯度下降法进行比较。

一般线性回归函数的假设函数为:

对应的能量函数(损失函数)形式为:

下图为一个二维参数(θ0和 θ1)组对应能量函数的可视化图:

01

批量梯度下降法BGD

批量梯度下降法(Batch Gradient Descent,简称BGD)是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新,其数学形式如下:

(1) 对上述的能量函数求偏导:

(2) 由于是最小化风险函数,所以按照每个参数θ的梯度负方向来更新每个 θ :

具体的伪代码形式为:

从上面公式可以注意到,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果样本数目 m 很大,那么可想而知这种方法的迭代速度!所以,这就引入了另外一种方法,随机梯度下降。

优点:

全局最优解;易于并行实现;

缺点:

当样本数目很多时,训练过程会很慢。

从迭代的次数上来看,BGD迭代的次数相对较少。其迭代的收敛曲线示意图可以表示如下:

02

随机梯度下降法SGD

由于批量梯度下降法在更新每一个参数时,都需要所有的训练样本,所以训练过程会随着样本数量的加大而变得异常的缓慢。随机梯度下降法(Stochastic Gradient Descent,简称SGD)正是为了解决批量梯度下降法这一弊端而提出的。

将上面的能量函数写为如下形式:

利用每个样本的损失函数对θ求偏导得到对应的梯度,来更新 θ :

具体的伪代码形式为:

随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。

优点:

训练速度快;

缺点:

准确度下降,并不是全局最优;不易于并行实现。

从迭代的次数上来看,SGD迭代的次数较多,在解空间的搜索过程看起来很盲目。其迭代的收敛曲线示意图可以表示如下:

03

小批量梯度下降法MBGD

有上述的两种梯度下降法可以看出,其各自均有优缺点,那么能不能在两种方法的性能之间取得一个折衷呢?即,算法的训练过程比较快,而且也要保证最终参数训练的准确率,而这正是小批量梯度下降法(Mini-batch Gradient Descent,简称MBGD)的初衷。

MBGD在每次更新参数时使用b个样本(b一般为10),其具体的伪代码形式为:

4. 总结

Batch gradient descent:Use all examples in each iteration;

Stochastic gradient descent:Use 1 example in each iteration;

Mini-batch gradient descent:Use b examples in each iteration.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4325

    浏览量

    62550
  • 梯度
    +关注

    关注

    0

    文章

    30

    浏览量

    10315
  • 机器学习
    +关注

    关注

    66

    文章

    8401

    浏览量

    132534

原文标题:梯度下降法的三种形式BGD、SGD以及MBGD

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    常见算法优缺点比较

    梯度下降法对最小二乘法形式的误差函数进行优化。优点:实现简单,计算简单;缺点:不能拟合非线性数据。4.最近邻算法优点:1)对数据没有假设,准
    发表于 12-02 15:40

    分享一个自己写的机器学习线性回归梯度下降算法

    单变量线性回归算法,利用Batch梯度梯度下降算法
    发表于 10-02 21:48

    回归预测之入门

    的方法,在stanford机器学习开放课最后的部分会推导最小二乘法的公式的来源,这个很多的机器学习和数学书上都可以找到,这里就不提最小二乘法,而谈谈梯度下降法梯度
    发表于 10-15 10:19

    机器学习新手必学的三种优化算法(牛顿法、梯度下降法、最速下降法

    用迭代的算法对优化函数求最小值。在这种情形下,最速下降法梯度下降法相比就比较慢了。因此,最速
    发表于 05-07 08:30

    梯度下降法、牛顿法到拟牛顿法它们的联系与区别是什么

    梯度下降法、牛顿法到拟牛顿法,浅谈它们的联系与区别
    发表于 05-21 11:06

    回归算法有哪些,常用回归算法(3)详解

    随机梯度下降估计系数。损失函数通常被定义为交叉熵项: 逻辑回归用于分类问题,例如,对于给定的医疗数据,可以使用逻辑回归判断一个人是否患有癌
    发表于 07-28 14:36

    TensorFlow实现简单线性回归

    。可以对数据进行归一化处理: 为训练数据声明 TensorFlow 占位符: 创建 TensorFlow 的权重和偏置变量且初始值为零: 定义用于预测的线性回归模型: 定义损失函数: 选择梯度
    发表于 08-11 19:34

    基于梯度下降法和互补滤波的航向姿态参考系统

    针对微型无人机航向姿态参考系统低成本、小型化的工程实现需求,基于轴陀螺仪、加速度计和磁力计,提出了一在线实时姿态估计算法。该算法采用四元数描述系统模型,采用改进的
    发表于 11-16 10:29 15次下载
    基于<b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>和互补滤波的航向姿态参考系统

    结合梯度下降法的二层搜索粒子群算法

    ,采用梯度下降法进行二次搜索,并以最优极值点为中心、某一具体半径设定禁忌区域,防止粒子重复搜索该区域;最后,依据种群多样性准则生成新粒子,替代被淘汰的粒子。将二次搜索粒子群算法及其他四
    发表于 11-27 17:28 5次下载
    一<b class='flag-5'>种</b>结合<b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>的二层搜索粒子群<b class='flag-5'>算法</b>

    机器学习中梯度下降法的过程

    梯度下降法是一个用于寻找最小化成本函数的参数值的最优化算法。当我们无法通过分析计算(比如线性代数运算)求得函数的最优解时,我们可以利用梯度
    发表于 04-26 16:44 3420次阅读

    梯度下降算法及其变种:批量梯度下降,小批量梯度下降和随机梯度下降

    现在我们讨论梯度下降算法个变种,它们之间的主要区别在于每个学习步骤中计算梯度时使用的数据量
    的头像 发表于 05-03 15:55 2.1w次阅读

    掌握logistic regression模型,有必要先了解线性回归模型和梯度下降法

    先回想一下线性回归线性回归模型帮助我们用最简单的线性方程实现了对数据的拟合,然而,这只能完成回归
    的头像 发表于 06-04 11:31 7589次阅读
    掌握logistic regression模型,有必要先了解<b class='flag-5'>线性</b><b class='flag-5'>回归</b>模型和<b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>

    机器学习优化算法梯度下降,牛顿法和拟牛顿法的优缺点详细介绍

    梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度
    的头像 发表于 08-04 11:40 5.2w次阅读

    各种梯度下降法是如何工作的

    导读一图胜千言,什么?还是动画,那就更棒啦!本文用了大量的资源解释各种梯度下降法(gradient descents),想给大家直观地介绍一下这些方法是如何工作的。
    的头像 发表于 08-17 11:50 1107次阅读

    梯度下降法在机器学习中的应用

    梯度下降法沿着梯度的反方向进行搜索,利用了函数的一阶导数信息。
    的头像 发表于 05-18 09:20 1367次阅读
    <b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>在机器学习中的应用