adaBelief 调整训练的步长

2020-11-09 11:04:49

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

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

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

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

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

相比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的优化器,它的泛化能力究竟如何,还有待更多研究者进一步地检验。

关闭