adam优化_立即尝鲜!碾压Adam,最好的AI优化器RAdam来了

v2-11bbbcebbffa9954b47bb83ef033f795_1440w.jpg?source=172ae18b

今日宜:放弃旧爱Adam,拥抱新欢RAdam。

最近的一篇新论文介绍了RAdam,或称“Rectified Adam”。它是经典Adam优化器的一种新变体,它基于对训练期间方差和动量的影响的详细研究,为自适应学习率提供自动、动态的调整。

它有望为几乎所有AI应用提供更好的收敛,更好的训练稳定性(对选择的学习率不那么敏感)以及准确性和泛化性。

与 Adam相比,可立即提高AI准确度:

v2-11bcb7528fd83abb4e68e3ef9571860d_b.jpg

RAdam对不同的学习速度具有鲁棒性,同时仍能快速收敛并获得更高的精度(CIFAR数据集)

相关人员已经在FastAI框架内测试了RAdam,并很快获得了新的高精度记录。

v2-ec46b29a4803d10004f0640f3ee3633b_b.jpg

v2-39c86374f6c7e177d0c8c5e17b1f5edb_b.jpg

RAdam和XResNet50,5个 epochs的86%

v2-eaf028c3e12436265c30af9920ca77fe_b.jpg

Imagenette排行榜——当前精度= 84.6%

v2-787495bb298e323fa7f6c41e2dd2b9c5_b.jpg

不仅仅是CNNs: RAdam在对Billion Word数据集的LSTM语言建模方面表现出色

所有AI研究人员的目标 - 快速稳定的优化算法

作者指出,虽然每个人都在努力实现快速稳定的优化算法,但包括Adam,RMSProp等在内的自适应学习速率优化器都存在收敛到较差的局部最优的风险 (如果不用warmup方法实现的话。)因此,几乎所有人都使用某种形式的warmup(FastAI在其Fit_One_Cycle中有内置热身)......但为什么需要warmup?

由于目前对AI社区warmup启发式的潜在原因甚至最佳实践的理解有限,作者试图揭示这个问题的基础。他们发现,根本问题在于自适应学习率优化器的方差太大,特别是在训练的早期阶段,并且基于有限的训练数据进行过度跳跃......因此可以适应较差的局部最优。

因此,当优化器仅使用有限的训练数据时,warmup(具有低得多的学习速率的训练的初始阶段)是自适应优化器抵消过多方差的必要条件。

这是一个视觉效果,展示了在没有warmup的情况下Adam最初的情况 - 在10次迭代中,梯度分布很快被扰乱乱:

v2-6f42f9d71b7b79683fe7cd510c326a2a_b.jpg

注意,在没有warmup的情况下,初始正态分布是如何迅速扭曲的

简而言之,vanilla Adam和其他自适应学习率优化器在早期的训练中,基于太少的数据做出错误的决策。因此,如果没有某种形式的warmup,他们很可能一开始就陷入糟糕的局部最优状态,因为糟糕的开始使得训练曲线更长、更困难。

然后,作者测试了在没有warmup的情况下运行Adam,但是在前2000次迭代(Adam -2k)中避免使用任何动量。他们发现,实现了与Adam加热相似的结果,从而验证了warmup功能在最初的训练中起到了一种“方差减少”的作用,并避免了Adam在一开始没有足够的数据可用时陷入糟糕的优化状态。

RAdam中的“整流器”

考虑到warmup是一种方差减速器,但所需的warmup程度是未知的,而且数据集之间也是不同的,因此,作者决定了一种数学算法来作为一种动态方差减速器。因此,他们建立了一个整流器(rectifier)项,这将允许自适应动量缓慢但稳定地得到充分表达作为一个基础方差的函数。他们的完整模型是这样的:

v2-666f4995e24192ea3590afd3688787da_b.jpg

v2-bf694b73cf421b1fa8f1df2c500d3f33_b.jpg

RAdam是它的核心。蓝色方框突出了整流器r(t)在步长上的最终应用。

作者指出,在某些情况下,由于衰减率和基本方差,RAdam可以在动量等效的情况下退化为SGD。

总结,虽然是RAdam根据方差的散度动态地打开或关闭自适应学习速率。实际上,它提供了动态warmup,不需要可调参数。

作者证实,RAdam的性能优于传统的手动warmup调优,其中需要warmup或猜测warmup步骤的数量:

v2-8a36f2d596bdfcaa6db9b7bfa86d83ff_b.jpg

RAdam自动提供方差缩减,在不同的warmup长度和不同的学习速度下,它的性能优于手动的warmup。

总结:RAdam可以说是AI最先进的优化器

如您所见,RAdam提供了一种动态启发式算法,可以提供自动化的方差减少,从而消除了训练期间warmup所需的手动调整。

此外,RAdam对学习速率变化(最重要的超参数)具有更强的鲁棒性,并且可以在各种数据集和各种AI架构中提供更好的训练准确性和泛化。

简而言之,强烈建议您将RAdam放入您的AI架构!:)

RAdam适用于 PyTorch ,GitHub:

https://github.com/LiyuanLucasLiu/RAdam

FastAI用户可以轻松插入RAdam,如下所示:

v2-818920ff53fa887dbf3fe3cb7dfc45ce_b.jpg

导入RAdam,声明为一个局部函数(根据需要添加参数)

v2-c6f60385cc0f6d3d59f1109f68248329_b.jpg

通过前面声明的部分用RAdam覆盖默认的AdamW优化器。

完整的论文链接如下

“On the Variance of the Adaptive Learning Rate and Beyond”

https://arxiv.org/abs/1908.03265v1

建议跳过这篇论文,直接来测试RAdam,因为RAdam会立即改进您的模型的几率非常高!

参考链接:https://medium.com/@lessw/new-state-of-the-art-ai-optimizer-rectified-adam-radam-5d854730807b

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值