adam优化_不是我们喜新厌旧,而是RAdam确实是好用,新的State of the Art优化器RAdam...

87aa1b88ededfe9c30b7048030e4dfa2.png
编辑:zero
关注 搜罗最好玩的计算机视觉论文和应用,AI算法与图像处理 微信公众号,获得第一手计算机视觉相关信息
本文转载自:公众号:AI公园

作者:Less Wright

编译:ronghuaiyang

导读

新的state of the art优化器:Rectified Adam(RAdam),相比adam,可以稳定提高准确率,关键是,真的有用。

Liu, Jian, He等人的一篇新论文介绍了RAdam,也叫作“Rectified Adam”。这是经典Adam优化器的一个新变种,在自动的、动态的调整自适应学习率的基础上,他们详细研究了训练期间的变化和动量的影响。与vanilla Adam相比,RAdam有希望即刻对每一个AI架构进行提升。

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

我已经在FastAI框架内测试了自己的RAdam,并很快获得了新的高精度记录,而在ImageNette上,只有两项难以击败FastAI排行榜得分。和我测试过的很多论文不一样,那些论文中的工作只适合他们特定的论文中使用的数据集,而并没有新数据集上做得很好,我试了一下RAdam,真的有提升。

f3113265e348ad6a724bb3364667e034.png
RAdam and XResNet50, 86% in 5 epochs

be636cf615fe6cf9eb5d496d265106d5.png
Imagenet排行榜,当前最高是84.6%

因此,我们需要深入研究下RAdam,了解它在内部做了什么,以及为什么它有希望为几乎所有AI应用提供了更好的收敛性、更好的训练稳定性(对选择的学习率不那么敏感)和更好的准确性和泛化能力。

97df3426066ac09870a7976e3839d058.png
不仅仅是CNNs,RAdam在对十亿个单词数据集的LSTM语言模型上也表现出色

所有人工智能研究员的目标:一个快速和稳定的优化算法…

作者指出,尽管每个人都在朝着拥有快速稳定的优化算法的目标努力,但自适应学习率优化器(包括Adam、RMSProp等)都面临着陷入糟糕的局部优化(如果没有实现warmup方法的话)的风险。因此,几乎每个人都使用某种形式的warmup(FastAI在Fit_One_Cycle中内置了warmup功能)……但是为什么需要warmup呢?

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

因此,当优化器只处理有限的训练数据时,warmup(初始训练阶段,学习速度要低得多)是自适应优化器抵消过多差异的必要条件。

下面是一个可视化的演示,展示了在没有warmup的情况下Adam最初的情况——在10次迭代中,梯度分布很快就被打乱了:

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

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

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

RAdam中的“整流器”:

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

34c82fe55d9dd0ac6f30e782a1f4d7e4.png
RAdam的核心部分,蓝色方框突出了整流器r(t)在步长上的最终应用。

RAdam at it’s core. The blue box highlights the final application of the rectifier r(t) to the step size.

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

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

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

519fb74eddc47ed6ce9cb76c65fad92f.png
RAdam自动提供方差衰减,在不同的warmup长度和不同的学习速度下,它的性能优于手动的warmups

总结:RAdam可以说是AI最新state of the art优化器

正如你所看到的,RAdam提供了一个动态启发式方法来提供自动化的方差衰减,从而消除了在训练期间warmup所涉及手动调优的需要。

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

简而言之,我强烈建议您将RAdam放到你的AI架构中,看看你有没有立即获得好处。我愿意提供退款保证,但因为它的成本是0.00美元…

PyTorch的官方github提供了RAdam的实现:https://github.com/LiyuanLucasLiu/RAdam。

FastAI用户可以很容易地使用RAdam如下:

1527bcc9924a93226043a1ab7c6ff2d9.png

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

494f2801a5bbce6e8d34f4e5ec03c1ce.png

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

更多的内容请阅读原始论文:https://arxiv.org/abs/1908.03265v1

e255df0241b94626cb02298e71defb73.png


翻译原文链接:
不是我们喜新厌旧,而是RAdam确实是好用,新的State of the Art优化器RAdam
英文原文链接:https://medium.com/@lessw/new-state-of-the-art-ai-optimizer-rectified-adam-radam-5d854730807b

e255df0241b94626cb02298e71defb73.png
翻译和整理不易,希望大家能用你们发财的小手,点个赞支持哈~


欢迎关注:辛苦翻译的小伙伴 AI公园 和辛勤的搬运工 AI算法与图像处理
关注 搜罗最好玩的计算机视觉论文和应用,AI算法与图像处理 微信公众号,获得第一手计算机视觉相关信息

447d33967ea07a52e0c31fa373fc1a86.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值