Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 213|回复: 0

[默认分类] 机器学习中的常见问题——几种梯度下降法

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-5-16 18:45:03 | 显示全部楼层 |阅读模式
            一、梯度下降法在机器学习算法中,对于很多监督学习模型,需要对原始的模型构建损失函数ll,接下来便是通过优化算法对损失函数ll进行优化,以便寻找到最优的参数θ\theta 。在求解机器学习参数θ\theta 的优化算法中,使用较多的是基于梯度下降的优化算法(Gradient Descent, GD)。梯度下降法有很多优点,其中,在梯度下降法的求解过程中,只需求解损失函数的一阶导数,计算的代价比较小,这使得梯度下降法能在很多大规模数据集上得到应用。梯度下降法的含义是通过当前点的梯度方向寻找到新的迭代点。二、梯度下降法的集中变形形式在具体使用梯度下降法的过程中,主要有以下几种不同的变种,即:batch、mini-batch、SGD和online。其主要区别是不同的变形在训练数据的选择上。1、batch gradient descent批梯度下降法(Batch Gradient Descent)针对的是整个数据集,通过对所有的样本的计算来求解梯度的方向。批梯度下降法的损失函数为:J(θ)=12m∑i=1m(hθ(x(i))−y(i))2J(\theta ) = \frac{1}{{2m}}\sum\limits_{i = 1}^m {{{({h_\theta }({x^{(i)}}) - {y^{(i)}})}^2}}针对上述的损失函数,在批梯度的优化过程中,对每一个样本都需要计算其梯度,批梯度的优化过程为:repeate{θ:=θ−α1m∑i=1m(hθ(x(i))−y(i))x(i)j}\begin{array}{l}repeate\{ \\\; \; \; \; \theta : = \theta - \alpha \frac{1}{m}\sum\limits_{i = 1}^m ( {h_\theta }({x^{(i)}}) - {y^{(i)}})x_j^{(i)}\\\} \end{array}2、mini-batch gradient descent在上述的批梯度的方式中每次迭代都要使用到所有的样本,对于数据量特别大的情况,如大规模的机器学习应用,每次迭代求解所有样本需要花费大量的计算成本。是否可以在每次的迭代过程中利用部分样本代替所有的样本呢?基于这样的思想,便出现了mini-batch的概念。假设训练集中的样本的个数为nn,则每个mini-batch只是其一个子集,假设,每个mini-batch中含有bb个样本,这样,整个训练数据集可以分为n/bn/b个mini-batch。{foreachωkinΩ:θ:=θ−α1b∑i=1b(hθ(x(i))−y(i))x(i)}for(k=1,2...m/b)\begin{array}{l}\{ {\rm{ for\;  each\;  }}{\omega _k\; }{\rm{ in }\; }\Omega :\\{\rm{ }}\; \; \; \; \; \theta : = \theta - \alpha \frac{1}{b}\sum\limits_{i = 1}^b ( {h_\theta }({x^{(i)}}) - {y^{(i)}}){x^{(i)}}\\{\rm{ }}\} for(k = 1,2...m/b)\\\end{array}3、stochastic gradient descent随机梯度下降算法(stochastic gradient descent)可以看成是mini-batch gradient descent的一个特殊的情形,即在随机梯度下降法中每次仅根据一个样本对模型中的参数进行调整,等价于上述的b=1情况下的mini-batch gradient descent,即每个mini-batch中只有一个训练样本。随机梯度下降法的优化过程为:
    {foreachxi:θ:=θ−α(hθ(x(i))−y(i))x(i)}\begin{array}{l}\{ {\rm{ for\;  each\;  }}{x^{i} } :\\{\rm{ }}\; \; \; \; \; \theta : = \theta - \alpha  ( {h_\theta }({x^{(i)}}) - {y^{(i)}}){x^{(i)}}\\{\rm{ }}\}\\\end{array}4、online gradient descent对于互联网上的应用来说,数据的获取变得实时,例如推荐中,系统希望能够根据用户的实时的信息对模型进行调整,这样就产生了在线学习,在线学习(Online Learning)算法就是充分利用实时数据的一个训练算法。在线梯度下降法(Online gradient descent)对于所有训练数据只用一次,然后丢弃。每次根据实时的数据计算梯度,进而调整模型中的参数。                    $(function () {                $("pre.prettyprint code").each(function () {                    var lines = $(this).text().split("\n").length;                    var $numbering = $("").addClass("pre-numbering").hide();                    $(this).addClass("has-numbering").parent().append($numbering);                    for (i = 1; i ").text(i));                    };                    $numbering.fadeIn(1700);                });            });           
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-20 12:16 , Processed in 0.400304 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表