要挑战Adam地位的优化器又多了一个。
近日NeurIPS 2020收录论文提出的一个优化器,在深度学习社区成为焦点,引起广泛讨论。
这就是由耶鲁大学团队提出的AdaBelief。团队在论文中表示,该优化器兼具Adam的快速收敛特性和SGD的良好泛化性。
所谓AdaBelief,是指根据梯度方向上的“信念”(Belief)来调整训练的步长。它和Adam在算法上的差别并不大。
二者差别在下面的算法实现上可以轻易看出。
相比Adam,AdaBelief没有引入任何其他新参数,只是在最后一步更新时有差异,已在上图中用蓝色标出。
Adam的更新方向是
而AdaBelief的更新方向是
vt和st的差别在于,后者是
的指数移动平均(EMA)。
mt可以看做是gt的预测值,当实际值与预测值相差不大时,分母
较小,步长较大,权重放心大胆迈开步子更新。
而实际值与预测值相差很大时,AdaBelief倾向于“不相信”当前梯度,此时分母较大,更新步长较短。
为什么AdaBelief更好
只做在最后一步做了了一个小小的改变,未审核会产生如此之大的影响呢?
这主要是因为AdaBelief考虑了两点。
1、损失函数的曲率问题
理想的优化器应该考虑损失函数的曲线,而不是简单地在梯度较大的地方下采取较大的步长。
在“大梯度、小曲率”(图中区域3)情况下|gt-gt-1|和|st|很小,优化器应增加其步长。
2、分母中的梯度符号
在上图损失函数为
的情况下,蓝色矢量代表梯度,十字叉代表最优解。
Adam优化器在y方向上振荡,并在x方向上保持前进。这是由于
在低方差情况下,Adam中的更新方向接近“符号下降”。
而在AdaBelief中,
因此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的优化器,它的泛化能力究竟如何,还有待更多研究者进一步地检验。
项目地址:
https://juntang-zhuang.github.io/adabelief/
论文地址:
https://arxiv.org/abs/2010.07468
代码地址:
https://github.com/juntang-zhuang/Adabelief-Optimizer
“