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

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

3天内不再提示

介绍机器学习中常用的三种优化算法

汽车玩家 来源:人工智能遇见磐创 作者:Walker 2020-05-04 18:19 次阅读

本文主要介绍了常用的一些机器学习中常用的优化算法

在机器学习的世界中,通常我们会发现有很多问题并没有最优的解,或是要计算出最优的解要花费很大的计算量,面对这类问题一般的做法是利用迭代的思想尽可能的逼近问题的最优解。我们把解决此类优化问题的方法叫做优化算法,优化算法本质上是一种数学方法,常见的优化算法包括梯度下降法、牛顿法、Momentum,Nesterov Momentum,Adagrad,Adam等。其实大部分机器学习算法的本质都是建立优化模型,通过优化算法对损失函数(优化的目标函数)进行优化,从而训练出最好的模型。

(1)梯度下降法

梯度下降法是最常用的一种优化算法。其核心思想是:在当前位置寻找梯度下降最快的方向,来逐渐逼近优化的目标函数。且离目标函数越近,逼近的“步伐”也就越小。梯度下降法本质是一种迭代方法,常用于机器学习算法的模型参数求解。其示意图如下图1所示:

图1梯度下降法

梯度下降法的更新公式为:

介绍机器学习中常用的三种优化算法

其中α为梯度上每次逼近的步长,前边的“-”表示搜索方向为负梯度的方向,L我损失函数。算法更新终止的条件是梯度向量接近于0即可。此外需要特别注意的是,梯度下降法不一定能够找到全局的最优解,很有可能找到的是一个局部最优解。

(2)梯度下降法的变式

通常基于梯度的下降方法又有很多变式,我们主要为大家介绍:随机梯度下降法(SGD), Momentum, Nesterov Momentum, Adagrad, Adam。

随机梯度下降法是每次使用一批数据进行梯度的计算,而非计算全部数据的梯度,因为如果每次计算全部数据的梯度,会导致运算量加大,运算时间变长,容易陷入局部最优解,而随机梯度下降可能每次不是朝着真正最小的方向,这样反而可以跳出局部的最优解。

Momentum是在随机梯度下降法的基础上,增加了动量(Momentum)的技术。其核心是通过优化相关方向的训练和弱化无关方向的振荡,来加速SGD训练。Momentum的方法能够在一定程度上缓解随机梯度下降法收敛不稳定的问题,并且有一定的摆脱陷入局部最优解的能力。

Nesterov Momentum是基于Momentum的加速算法,相比于传统的动量算法,最大的优化是计算经过动量更新之后的位置梯度。

Adagrad即adaptive gradient,是一种自适应学习率的梯度法。它通过记录并调整每次迭代过程中的前进方向和距离,使得针对不同问题都有一套自适应学习率的方法。Adagrad最大的优势是不需要手动来调整学习率,但与此同时会降低学习率。

Adam即Adaptive Moment Estimation,是能够自适应时刻的估计方法,能够针对每个参数,计算自适应学习率。这是一种综合性的优化方法,在机器学习实际训练中,往往能够取得不错的效果。

(3)牛顿法和拟牛顿法

与上述梯度类型的优化算法最大的不同是,牛顿法是一种二阶收敛算法,所以它的收敛速度相较于一阶算法会更快。牛顿法二阶的意义在于它不仅会沿着梯度最大的方向下降,还会考虑走的下一步坡度是不是也很大,它能够以较远的目光全局的逼近目标函数。其算法的具体步骤为:

1)首先选择接近于函数f(x)的零点x0,并计算f(x0)处的斜率f’(x0)。然后我们求解以下方程,得到比刚刚的x0更加准确的解x1。

2)接下来我们利用x1进行下一轮的迭代,迭代公式如下所示。这样经过反复的迭代过程,我们便能取得函数f(x)的最优解。

介绍机器学习中常用的三种优化算法

牛顿法的迭代示意图如下所示:

介绍机器学习中常用的三种优化算法

图2 牛顿法

虽然牛顿法相较于梯度下降法等优化算法收敛速度更快,但每一步都需要求解复杂的Hessian矩阵,计算非常不易。所以后来美国Argonne国家实验室的物理学家W.C.Davidon又针对牛顿法计算复杂的缺陷提出了拟牛顿法。它的核心思想是使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂。另外,因为拟牛顿法不需要二阶导数的信息,所以现在拟牛顿法在机器学习实际问题中应用更加的广泛。

【总结】:除了以上几类较为常见的优化算法以外,还有共轭梯度法、启发式优化算法等。在实际的机器学习问题中,往往需要具体问题具体分析,根据每类优化问题的特征,选择合适的优化算法。

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

    关注

    23

    文章

    4455

    浏览量

    90751
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130556
收藏 人收藏

    评论

    相关推荐

    【技术干货】PID算法原理分析及优化

    负荷和操作条件的变化。 在电机控制中串级PID十分常见,常用的位置环+速度环+电流环控制结构如图。 在PID控制方法中P、I、D是三种不同的调节作用,在实际应用时可根据需求对三种调节作用进行灵活组合
    发表于 12-22 15:38

    全面总结机器学习中的优化算法

    几乎所有的机器学习算法最后都归结为求一个目标函数的极值,即最优化问题,例如对于有监督学习,我们要找到一个最佳的映射函数f (x),使得对训练
    发表于 11-02 10:18 269次阅读
    全面总结<b class='flag-5'>机器</b><b class='flag-5'>学习</b>中的<b class='flag-5'>优化</b><b class='flag-5'>算法</b>

    机器人技术中常用的路径规划算法的开源库

    如何规划机器人的运动方式是机器人开发领域的一大课题,本文分享GitHub的一个机器人技术中常用的路径规划算法的开源库,并用动图直观演示运行过
    的头像 发表于 10-21 09:36 455次阅读
    <b class='flag-5'>机器</b>人技术<b class='flag-5'>中常用</b>的路径规划<b class='flag-5'>算法</b>的开源库

    gvim中常用的一些指令介绍

    在 Vim 编辑器中,有一些常用的指令可以帮助我们更高效地编辑文本。以下是一些在 gvim 中常用的指令
    的头像 发表于 10-10 15:47 891次阅读

    keras内置的7个常用优化介绍

    的改进,和 Adagrad 相比,它不是累积所有过去的梯度,而是根据渐变更新的移动窗口调整学习速率。 2.3 RMSprop(均方差传播算法) RMSProp优化算法是Adagr
    发表于 08-18 06:32

    机器学习有哪些算法机器学习分类算法有哪些?机器学习预判有哪些算法

    有许多不同的类型和应用。根据机器学习的任务类型,可以将其分为几种不同的算法类型。本文将介绍机器学习
    的头像 发表于 08-17 16:30 1396次阅读

    python数据挖掘与机器学习

    python数据挖掘与机器学习 Python是一个非常流行的编程语言,被广泛用于数据挖掘和机器学习领域。在本篇文章中,我们将探讨Python在数据挖掘和
    的头像 发表于 08-17 16:29 884次阅读

    机器学习vsm算法

    (VSM)算法计算相似性。本文将从以下几个方面介绍机器学习vsm算法。 1、向量空间模型 向量空间模型是一种常见的文本表示方法,根据文本的词
    的头像 发表于 08-17 16:29 577次阅读

    机器学习算法入门 机器学习算法介绍 机器学习算法对比

    机器学习算法入门 机器学习算法介绍
    的头像 发表于 08-17 16:27 625次阅读

    机器学习算法总结 机器学习算法是什么 机器学习算法优缺点

    机器学习算法总结 机器学习算法是什么?机器
    的头像 发表于 08-17 16:11 1073次阅读

    机器学习算法汇总 机器学习算法分类 机器学习算法模型

    是解决具体问题的一系列步骤,机器学习算法被设计用于从大量的数据中自动学习并不断改进自身的性能。本文将为大家介绍
    的头像 发表于 08-17 16:11 724次阅读

    机器学习算法的5种基本算子

    自主决策的方法和插件,其中包含了一系列常用的基本算子。在本文中,我们将会介绍机器学习算法的五种基本算子。 一、 求值算子 求值算子是
    的头像 发表于 08-17 16:11 1336次阅读

    基于机器学习算法的校准优化方案

    基于机器学习算法的校准优化方案
    发表于 06-29 12:35 257次阅读
    基于<b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>算法</b>的校准<b class='flag-5'>优化</b>方案

    从浅层到深层神经网络:概览深度学习优化算法

    优化算法一直以来是机器学习能根据数据学到知识的核心技术。而好的优化算法可以大大提高
    的头像 发表于 06-15 11:20 430次阅读
    从浅层到深层神经网络:概览深度<b class='flag-5'>学习</b><b class='flag-5'>优化</b><b class='flag-5'>算法</b>

    机器学习笔记之优化-拉格朗日乘子法和对偶分解

    优化机器学习中的关键步骤。在这个机器学习系列中,我们将简要介绍
    的头像 发表于 05-30 16:47 1428次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>笔记之<b class='flag-5'>优化</b>-拉格朗日乘子法和对偶分解