学习总结,神经网络模型中的优化器入门,以及了解如何选择更合适的优化器

初步开始学习神经网络模型参数的调整,真感觉训练起来费时费力费脑子,有股子‘玄学’的意味在里面,但又始终摸不清里面的门路,难以抓到这些个AI模型的入门门槛,但兴趣又莫名其妙的大!!! 感觉有股子为理想上头的感觉,但又还好吧,能够做着相关的事就可以获得简单的满足了。哈哈哈

优化器相关学习记录总结。

一,对优化器进行选择使用的原因

优化器做为模型优化的‘器件’,是深度学习领域的重要组成模块之一,在执行深度学习任务时采用不同的优化器会产生截然不同的的结果。

为机器学习项目选择合适的优化器非常重要也很有难度。各个优化器都有自己的优缺点,有自己适应的应用场景,选择不同的优化器对机器学习模型有很大的影响。合适的优化器能够产生很大的正面效果,而不合适的,则会产生很大的负面影响。

所以,本篇记录,如何选择更适合自己项目模型的优化器?

二,各类优化器

基本原理:深度学习中大部分流行的优化器都是基于梯度下降,即反复估计给定的损失函数的斜率,并沿着相反的方向移动参数(由此向下移动至假定的全局最小值)。

常见的优化算法包括梯度下降(随机梯度下降SGD、变体BGD、MBGD)、Adagrad、Adam、Momentum等各种优化器。

自20世纪50年代以来一直使用的随机梯度下降(SGD);21世纪前10年,自适应梯度法(如AdaGrad和Adam)越来越流行。
但最近的趋势表明,部分研究转而使用以前的SGD,而不是自适应梯度法。此外,当前深度学习中的挑战带来了新的SGD变体,例如LATS、LAMB。
由此可见,并不是旧的优化算法就一定效果差,新的优化算法就一定效果好;就目前来看,是哪个优化算法更合适。

1,随机梯度下降(SGD)算法

在随机梯度下降算法(SGD)中,优化器基于小批量估计梯度下降最快的方向,并朝该方向迈出一步。由于步长固定,因此SGD可能很快停滞在平稳区或者局部最小值上。(可以想象,当有一段‘谷底’或者一段较长的直线,其就难以跳出,从而陷入局部最优)

2,带动量的SGD

常数β<1.当带有动量时,SGD会在连续下降的方向上加速(这就是该方法被成为【重球法】的原因)。这种加速有助于模型跳脱平稳区,使其不易陷入局部极小值。(可以想象,随着梯度下降的进行,‘跨越’的步伐加大,一定概率上、程度上可以跳过谷底或平稳直线)

3,AdaGrad

AdaGrad是首批成功利用自适应学习率的方法之一。AdaGrad基于平方梯度之和的倒数的平方根来缩放每个参数的学习率。该过程将稀疏梯度方向放大,以允许在这些方向上进行较大调整。结果表明,在具有稀疏特征的场景中,AdaGrad能够更快地收敛。(猜想:随机性过大,所以才效果不稳定,有限制)

4,RMSprop

RMSprop是一个未发布的优化器,在最近几年被经常使用。其理念类似AdaGrad,但是梯度的重新缩放不太积极:其用平方梯度的移动均值替代平方梯度的总和。RMSprop通常与动量一起使用,可以理解为RMSprop对小批量设置的适应。

5,Adam

Adam将AdaGrad、RMSprop和动量方法结合到了一起。下一步的方向由梯度的移动平均值决定,步长大小由全局步长大小设置上限。此外,类似于RMSprop,Adam对梯度的每个维度进行重新缩放。Adam和RMSprop(AdaGrad)之间的一个主要区别是对瞬时估计m和v的零偏差进行了矫正。Adam以少量超参数微调就能获得良好的性能著称。

在这里插入图片描述

6,AdamW

Loshchilov和Hutter在自适应梯度方法中确定了L2正则化和权重下降的不等式,并假设这种不等式限制了Adam的性能。由此,他们提出将权重衰减与学习率解耦。实验结果表明AdamW比Adam(利用动量缩小SGD的差距)有更好的泛化性能,并且对于AdamW而言,最优超参数的范围更广。

7,LARS

LARS是SGD的有动量扩展,可以适应每层的学习率。LARS最近在研究界引起了关注。这是由于可用数据的稳定增长,机器学习的分布式训练的流行。这使得批处理大小开始增长,从而导致训练变得不稳定。有研究者(Yang et al)认为这些不稳定性源于某些层的梯度标准和权重标准之间不平衡。由此,他们提出了一种优化器,该优化器基于‘信任’参数η<1和该层梯度的反范数来重新调整每层的学习率。

三,选择合适的优化器的方法

合适的优化器的选择是非常困难的,且没有万能的解决方案。我们只能根据自己的特定问题去选择出更贴合此任务、问题的优化器。

  1. 查找并阅读相关的研究论文,看看类似的数据集和任务 的SOTA结果是什么;使用这些优化器的原因;一开始时与它使用相同的优化器
    ,观测在自己任务上的应用效果。
  2. 总结自己数据集、的特性,看是否有与其相匹配的优化器,即是否存在可以发挥某些优化器优势的特性。
  3. 考虑该项目有哪些可用资源,计算限制或内存限制以及项目时间范围等也都会影响优化器的选择范围。

例:当我们进行一个项目,想在家用计算机的图像数据集上训练一个自监督的模型(如 SimCLR)。对于 SimCLR 之类的模型,性能会随着批处理大小的增加而提高。因此,想尽可能多地节省内存,以便进行大批量的训练。选择没有动量的简单随机梯度下降作为优化器,因为与其他优化器相比,它需要最少的额外内存来存储状态。

仅用作学习记录和学术分析,侵权请联系删除。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值