万泰新闻
您所在位置: 主页 > 万泰新闻 > 公司新闻
耶鲁大学团队提出AdaBelief优化器,成NeurIPS 2020热点
时间:2024-05-13 09:13点击量:


晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI

要挑战Adam地位的优化器又多了一个。

近日NeurIPS 2020收录论文提出的一个优化器,在深度学习社区成为焦点,引起广泛讨论。

这就是由耶鲁大学团队提出的AdaBelief。团队在论文中表示,该优化器兼具Adam的快速收敛特性和SGD的良好泛化性。



所谓AdaBelief,是指根据梯度方向上的“信念”(Belief)来调整训练的步长。它和Adam在算法上的差别并不大。

二者差别在下面的算法实现上可以轻易看出。



相比Adam,AdaBelief没有引入任何其他新参数,只是在最后一步更新时有差异,已在上图中用蓝色标出。

Adam的更新方向是 m_t/\\sqrt{v_t} ,而AdaBelief的更新方向是 m_t/\\sqrt{s_t}v_ts_t 的差别在于,后者是 (g_t - m_t)^2 的指数移动平均(EMA)。

m_t 可以看做是 g_t 的预测值,当实际值与预测值相差不大时,分母 (g_t - m_t)^2 较小,步长较大,权重放心大胆迈开步子更新。

而实际值与预测值相差很大时,AdaBelief倾向于“不相信”当前梯度,此时分母较大,更新步长较短。

只做在最后一步做了了一个小小的改变,未审核会产生如此之大的影响呢?

这主要是因为AdaBelief考虑了两点。

1、损失函数的曲率问题

理想的优化器应该考虑损失函数的曲线,而不是简单地在梯度较大的地方下采取较大的步长。



在“大梯度、小曲率”(图中区域3)情况下 \\vert g_t ? g_{t-1}\\vert \\vert s_t \\vert 很小,优化器应增加其步长。

2、分母中的梯度符号



在上图损失函数为 f(x,y)=\\vert x \\vert + \\vert y \\vert 的情况下,蓝色矢量代表梯度,十字叉代表最优解。

Adam优化器在y方向上振荡,并在x方向上保持前进。这是由于 \\sqrt{v_{t,x}}=\\sqrt{v_{t,y}}在低方差情况下,Adam中的更新方向接近“符号下降”。

而在AdaBelief中, \\sqrt{s_{t,x}}< \\sqrt{v_{t,y}} ,因此AdaBelief在x方向上走了一大步,在y方向上只会走一小步,防止振荡产生。

在简单的几种3维损失函数曲面上,AdamBelief展现出了优秀的性能。





图像分类

在CIFAR-10和CIFAR-100数据集上,用VGG11、ResNet34和DenseNet121三种网络进行训练,AdaBelief都显示出更好的收敛结果。

而且在ImageNet数据上,AdaBelief在Top-1准确率上仅次于SGD。



时间序列建模

在Penn TreeBank数据集上,用LSTM进行实验,AdaBelief都实现了最低的困惑度。



GAN

在WGAN和WGAN-GP上的实验表明,经AdaBelief训练的结果都得到了最低的FID。



虽然AdaBelief在多个任务上取得了不错的效果,但该方法还是遭到不少网友质疑。

因为这些年来号称取代Adam的优化器不计其数,但最终获得时间检验的却寥寥无几。

网友首先质疑的是实验baseline的选取问题。

有人认为,在CIFAR上,很难相信2020年SOTA模型的准确率低于96%,因此AdaBelief论文最终在选取baseline时有可能是选择了与不太好的结果进行比较。

在ImageNet测试的表2里,为什么要使用ResNet18代替更标准的ResNet50?而且AdaBelief不是最优结果,却用加粗方式标出,容易让人产生误解。绝妙的技巧是将提出的方法的得分加粗。

另外,还有人在作者未测试的NLP任务上进行实验,很快AdaBelief就“崩溃”了,而SGD能够很好地收敛。



AdaBelief不会是最后一个意图取代Adam的优化器,它的泛化能力究竟如何,还有待更多研究者进一步地检验。

项目地址:
juntang-zhuang.github.io

论文地址:
arxiv.org/abs/2010.0746

代码地址:
github.com/juntang-zhua

—完—

@量子位 · 追踪AI技术和产品新动态

深有感触的朋友,欢迎赞同、关注、分享三连?'?' ? ?

平台注册入口