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

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

3天内不再提示

几种流行的优化器的介绍以及优缺点分析

深度学习自然语言处理 来源:深度学习自然语言处理 作者:Philipp Wirth 2020-10-10 10:16 次阅读

导读

几种流行的优化器的介绍以及优缺点分析,并给出了选择优化器的几点指南。

本文概述了计算机视觉、自然语言处理和机器学习中常用的优化器。此外,你会找到一个基于三个问题的指导方针,以帮助你的下一个机器学习项目选择正确的优化器。

找一份相关的研究论文,开始使用相同的优化器。

参考表1并将数据集的属性与不同优化器的优缺点进行比较。

根据可用的资源调整你的选择。

介绍

为你的机器学习项目选择一个好的优化器是非常困难的。热门的深度学习库,如PyTorch或TensorFlow,提供了广泛的优化器的选择,不同的优化器,每个都有自己的优缺点。然而,选择错误的优化器可能会对你的机器学习模型的性能产生重大的负面影响,这使得优化器在构建、测试和部署机器学习模型的过程中成为一个关键的设计选择。

根据优化器的不同,模型的性能可能会有很大的不同。

选择优化器的问题在于,由于no-free-lunch定理,没有一个单一的优化器可以在所有场景中超越其他的。事实上,优化器的性能高度依赖于设置。所以,中心问题是:

哪个优化器最适合我的项目的特点?

下面的内容给出了回答上述问题的一个指南。它由两个主要段落组成:在第一部分,我将向你快速介绍最常用的优化器。在第二部分中,我将为你提供一个三步计划来为你的项目选择最好的优化器。

一些最常用的优化器

在深度学习中,几乎所有流行的优化器都基于梯度下降。这意味着他们反复估计给定的损失函数L的斜率,并将参数向相反的方向移动(因此向下爬升到一个假设的全局最小值)。这种优化器最简单的例子可能是随机梯度下降(或SGD),自20世纪50年代以来一直使用。在2010年代,自适应梯度的使用,如AdaGrad或Adam已经变得越来越流行了。然而,最近的趋势表明,部分研究界重新使用SGD而不是自适应梯度方法。此外,当前深度学习的挑战带来了新的SGD变体,如LARS或LAMB。例如,谷歌研究在其最新论文中使用LARS训练了一个强大的自监督模型。

下面的部分将介绍最流行的优化器。如果你已经熟悉了这些概念,请转到“如何选择正确的优化器”部分。

我们将使用以下符号:用w表示参数,用g表示模型的梯度,α为每个优化器的全局学习率,t为时间步长。

Stochastic Gradient Descent (SGD)

Stochastic Gradient Descent (SGD)的更新规则

在SGD中,优化器基于一个小batch估计最陡下降的方向,并在这个方向前进一步。由于步长是固定的,SGD会很快陷入平坦区或陷入局部极小值。

SGD with Momentum

带动量的SGD的更新规则

其中β < 1,使用了动量,SGD可以在持续的方向上进行加速(这就是为什么也被叫做“重球方法”)。这个加速可以帮助模型摆脱平坦区,使它更不容易陷入局部最小值。

AdaGrad

AdaGrad的更新规则

AdaGrad是首个成功的利用自适应学习率的方法之一(因此得名)。AdaGrad根据梯度的平方和的倒数的平方根来衡量每个参数的学习速率。这个过程将稀疏梯度方向上的梯度放大,从而允许在这些方向上执行更大的步骤。其结果是:AdaGrad在具有稀疏特征的场景中收敛速度更快。

RMSprop

RMSprop的更新规则

RMSprop是一个未发布的优化器,在过去几年中被过度使用。这个想法与AdaGrad相似,但是梯度的重新缩放不那么激进:梯度的平方的总和被梯度平方的移动平均值所取代。RMSprop通常与动量一起使用,可以理解为Rprop对mini-batch设置的适应。

Adam

Adam的更新规则

Adam将AdaGrad,RMSprop和动量法结合在一起。步长方向由梯度的移动平均值决定,步长约为全局步长的上界。此外,梯度的每个维度都被重新缩放,类似于RMSprop。Adam和RMSprop(或AdaGrad)之间的一个关键区别是,矩估计m和v被纠正为偏向于零。Adam以通过少量的超参数调优就能获得良好性能而闻名。

LARS

LARS的更新规则

LARS是使用动量的SGD的一种扩展,具有适应每层学习率的能力。它最近引起了研究界的注意。原因是由于可用数据量的稳步增长,机器学习模型的分布式训练已经流行起来。其结果是批大小开始增长。然而,这导致了训练中的不稳定。Yang等人认为,这些不稳定性源于某些层的梯度范数和权重范数之间的不平衡。因此,他们提出了一个优化器,该优化器基于一个“trust”参数η < 1和该层的梯度的范数的倒数,对每一层的学习率进行缩放。

如何选择正确的优化器?

如上所述,为你的机器学习问题选择正确的优化器是困难的。更具体地说,没有一劳永逸的解决方案,必须根据手头的特定问题仔细选择优化器。在下一节中,我将提出在决定使用某个优化器之前应该问自己的三个问题。

与你的数据集和任务类似的state-of-the-art的结果是什么?使用过了哪些优化器,为什么?

如果你正在使用新的机器学习方法,可能会有一篇或多篇涵盖类似问题或处理类似数据的可靠论文。通常,论文的作者已经做了广泛的交叉验证,并且只报告了最成功的配置。试着理解他们选择优化器的原因。

举例:假设你想训练生成对抗性网络(GAN)来对一组图像执行超分辨率。在一些研究之后,你偶然发现了一篇论文:”Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network,” ,其中研究人员使用Adam优化器来解决完全相同的问题。Wilson等人认为,训练GANs并不等于解决最优化问题,Adam可能非常适合这样的场景。因此,在这种情况下,Adam是优化器的一个很好的选择。

你的数据集是否具有某些优化器的优势?如果有,是哪些,如何利用这些优势?

表1显示了不同优化器及其优缺点的概述。尝试找到与数据集的特征、训练设置和目标相匹配的优化器。

某些优化器在具有稀疏特征的数据上表现得非常好,而另一些优化器在将模型应用于之前未见过的数据时可能表现得更好。一些优化器在大batch中工作得很好,而另一些优化器可以收敛到很陡峭的极小值但是泛化效果不好。

表1:流行的优化器的总结,突出它们的优点和缺点。state memory列表示优化器所需的字节数 —— 除了梯度所需的内存之外。其中,n为机器学习模型的参数个数。例如,没有动量的SGD只需要内存来存储梯度,而有动量的SGD也需要存储梯度的移动平均值。

例子:对于你当前工作的项目,你必须将用户反馈分为积极反馈和消极反馈。你考虑使用bag-of-words作为机器学习模型的输入特征。由于这些特征可能非常稀疏,你决定使用自适应梯度的方法。但是你想用哪一种呢?考虑表1,你看到看到AdaGrad具有自适应梯度方法中最少的可调参数。看到你的项目有限的时间表,你选择了AdaGrad作为优化器。

你的项目所具有资源是什么?

项目中可用的资源也会影响选择哪个优化器。计算限制或内存约束,以及项目的时间表可以缩小可行选择的范围。再次查看表1,你可以看到不同的内存需求和每个优化器的可调参数数量。此信息可以帮助你评估你的设置是否支持优化器所需的资源。

例子:你在做一个项目,在该项目中,你想在家用计算机上的图像数据集上训练一个自监督模型(例如SimCLR)。对于SimCLR这样的模型,性能随着batch size大小的增加而增加。因此,你希望尽可能地节省内存,以便能够进行大batch的训练。你选择一个简单的不带动量的随机梯度下降作为你的优化器,因为与其他优化器相比,它需要最少的额外内存来存储状态。

总结

尝试所有可能的优化器来为自己的项目找到最好的那一个并不总是可能的。在这篇博客文章中,我概述了最流行的优化器的更新规则、优缺点和需求。此外,我列出了三个问题来指导你做出明智的决定,即机器学习项目应该使用哪个优化器。

作为一个经验法则:如果你有资源找到一个好的学习率策略,带动量的SGD是一个可靠的选择。如果你需要快速的结果而不需要大量的超参数调优,请使用自适应梯度方法。

责任编辑:lq

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

    关注

    3

    文章

    3859

    浏览量

    61296
  • 机器学习
    +关注

    关注

    66

    文章

    8095

    浏览量

    130514
  • 数据集
    +关注

    关注

    4

    文章

    1176

    浏览量

    24340

原文标题:在机器学习项目中该如何选择优化器

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    日本大带宽服务器优缺点分析

    日本大带宽服务器是很多用户的选择,那么日本大带宽服务器优缺点都是什么?Rak部落小编为您整理发布日本大带宽服务器优缺点分析
    的头像 发表于 03-22 10:08 119次阅读

    滤波电容不同补偿方式优缺点对比

    滤波电容不同补偿方式优缺点对比  滤波电容是电子电路中常用的元件,用于对信号进行滤波处理。不同的补偿方式可以帮助提高滤波电容的性能和稳定性。本文将详细介绍几种常见的滤波电容补偿方式的优缺点
    的头像 发表于 01-04 16:00 282次阅读

    开关型防雷器件放电管有几种类型?优缺点是什么?

    其结构和工作原理的不同,开关型防雷器件放电管可以分为多种类型。下面我将详细介绍其中的主要几种类型及其优缺点。 1. 层压型放电管:层压型放电管采用了层状结构,在不同层之间设置了放电电极。当超过设定的电压时,各层
    的头像 发表于 01-04 14:13 227次阅读

    双绞线和同轴电缆的特征以及优缺点

    双绞线和同轴电缆的特征以及优缺点  双绞线和同轴电缆都是用于传输信号和数据的常见电缆类型。它们在不同的应用场景中具有不同的特征和优缺点。下面将详细介绍双绞线和同轴电缆的特征
    的头像 发表于 12-26 16:23 1084次阅读

    分流器的作用、原理以及优缺点

    于光纤通信、电信网络以及家庭娱乐设备等。本文将详细介绍分流器的作用、原理以及优缺点。 分流器的作用可以分为两个方面:信号分配和信号保护。首先,分流器可以将一个输入信号分割成多个相同或不
    的头像 发表于 12-09 17:18 1961次阅读

    单电源的优缺点 为什么我们在实际设计中会选择单电源系统呢?

    景和设计要求来决定。在本文中,将详细介绍单电源和双电源的优缺点以及为什么我们在实际设计中会选择单电源系统。 单电源的优缺点 单电源是一种电源系统,它只有一个电源源。单电源的主要优点包括
    的头像 发表于 10-29 14:21 1018次阅读

    共源共栅Cascode以及级联Cascade的优缺点是什么?

    共源共栅Cascode以及级联Cascade的优缺点是什么? 共源共栅Cascode以及级联Cascade是常用的放大电路架构,它们在不同应用场合中具有不同的优缺点。在本文中,我们将就
    的头像 发表于 09-18 15:08 5048次阅读

    igbt的优缺点介绍

    igbt的优缺点介绍 IGBT的优缺点介绍 IGBT是一种晶体管,是MOSFET和BJT集成而成的开关,具有高速开关能力和较低的导通电阻,用于高效率的功率调节。IGBT具有一些优点和
    的头像 发表于 08-25 15:03 4706次阅读

    石墨烯电池的优缺点是什么?

    。本文将深入分析石墨烯电池的优缺点。 一、石墨烯电池的优点 1. 高能量密度 石墨烯电池的能量密度远高于普通电池,可以提供更长的使用时间。石墨烯电池的能量密度达到了普通锂离子电池的两倍以上,这意味着它们能够为移动设备等
    的头像 发表于 08-22 17:06 3.2w次阅读

    数字电源和开关电源的优缺点

    数字电源和开关电源的优缺点 数字电源和开关电源是现代电子设备中最常用的两种电源。这两种电源在设计和工作原理上有很大的不同,因此也有不同的优缺点。本文将详细介绍数字电源和开关电源的优缺点
    的头像 发表于 08-18 15:01 1452次阅读

    基于磁贴的GPU架构优缺点

    本指南介绍了基于磁贴的GPU架构的优缺点。它还将ARM马里基于瓷砖的GPU架构设计与台式PC或控制台中常见的更传统的即时模式GPU进行了比较。 马里GPU使用基于平铺的渲染体系结构。这意味着GPU
    发表于 08-02 12:54

    双电芯电池的优缺点

    双电芯电池是一种由两个电池单元组成的电池。这种电池通常由两个相同的电池单元并联而成,以提供更高的电压和/或更长的使用时间。与单电池相比,双电芯电池具有许多优点和一些缺点。本文将介绍双电芯电池的优缺点
    的头像 发表于 06-20 17:29 8083次阅读

    航空用电源系统优缺点对比

    目前,航空用电源系统的种类很多。此次,吉事励电源厂家详细介绍了这几种飞机电源系统的基本概况和发展历史,并结合代表机型分析了各自的特点,探讨和比较了各自的优缺点
    的头像 发表于 05-06 17:14 1385次阅读
    航空用电源系统<b class='flag-5'>优缺点</b>对比

    MRC、MPU、MMU在用途或特性上的区别?以及优缺点

    资源域控制模块(XRDC)中有一个MRC, 我想知道MRC、MPU、MMU在用途或特性上的区别?以及优缺点
    发表于 05-06 07:51

    《现代CPU性能分析优化》--读书心得笔记

    介绍性能测试和对比结果的最佳实践。 第3、4章介绍 CPU 微架构的基本知识和性能分析相关术语 第5章探讨几种流行的性能
    发表于 04-24 15:31