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

    文章

    3859

    浏览量

    61296
  • 梯度
    +关注

    关注

    0

    文章

    30

    浏览量

    10259
  • 机器学习
    +关注

    关注

    66

    文章

    8094

    浏览量

    130513

原文标题:梯度下降法的三种形式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>

    一文看懂常用的梯度下降算法

    编辑:祝鑫泉 一 概述 梯度下降算法( Gradient Descent Optimization )是神经网络模型训练最常用的优化算法。对于深度学习模型,基本都是采用
    发表于 12-04 18:17 1533次阅读

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

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

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

    现在我们来讨论梯度下降算法的三个变种,它们之间的主要区别在于每个学习步骤中计算梯度时使用的数据量,是对每个参数更新(学习步骤)时的梯度准确性
    的头像 发表于 05-03 15:55 2w次阅读

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

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

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

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

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

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