"); //-->
在一篇 NeurIPS 2020 Spotlight 论文中,来自耶鲁大学等机构的研究者提出了一种新型优化器,可以像 Adam 一样快速收敛,准确率媲美 SGD ,还能稳定训练 GAN 。
最常用的深度学习优化器大致可分为自适应方法(如Adam)和加速方案(如带有动量的随机梯度下降(SGD))。与 SGD 相比,许多模型(如卷积神经网络)采用自适应方法通常收敛速度更快,但泛化效果却较差。对于生成对抗网络(GAN)这类的复杂情况,通常默认使用自适应方法,因为其具有稳定性。
在 NeurIPS 2020 的一篇 Spotlight 论文中,来自耶鲁大学、伊利诺伊大学香槟分校等机构的研究者提出了一种名为「AdaBelief」的新型优化器,可以同时满足 3 个优点:自适应方法的快速收敛、SGD 的良好泛化性、训练稳定性。论文代码也已经放出。
论文链接:https://arxiv.org/pdf/2010.07468.pdf
论文页面:https://juntang-zhuang.github.io/adabelief/
代码链接:https://github.com/juntang-zhuang/Adabelief-Optimizer
AdaBelief 根据当前梯度方向上的「belief」来调整步长,将嘈杂梯度的指数移动平均(EMA)当作下一步的梯度预测。如果观察到的梯度大大偏离了预测,那么就不信任当前的观察,采取一个较小的步长;如果观察到的梯度接近预测值,那么就相信当前的观察,并采取一个较大的步长。
研究者用实验验证了 AdaBelief 的效果。在图像分类和语言建模方面, AdaBelief 收敛迅速,准确率高,性能优于其他方法。具体来说,在 ImageNet 上, AdaBelief 的准确率可与 SGD 媲美。
此外,在 Cifar10 上训练 GAN 期间,与经过调整的 Adam 优化器相比, AdaBelief 表现出了高度稳定性并提高了生成样本的质量。
算法
Adam和AdaBelief的算法如上图所示,不同之处已经用蓝色字体标注。从图中可以看出,AdaBelief没有引入额外的参数。为了简便,研究者省略了偏置矫正步骤。具体来说,在Adam中,更新方向是,其中,v_t是的指数移动平均值(EMA)。在AdaBelief中,更新方向是,其中,s_t是 (g_t−m_t)^2的EMA。直观来看,将m_t看作g_t的预测,当观察结果g_t与预测结果m_t接近时,AdaBelief步长较大;当g_t与m_t相差较大时,AdaBelief步长较小。
AdaBelief 好在哪儿?
AdaBelief考虑了损失函数的曲率
一个理想的优化器会考虑损失函数的曲率,而不是在梯度很大(或很小)的地方采取很大(或很小)的步长。上图中的区域③展示了AdaBelief在「梯度大,曲率小」的情况下相较于Adam的优势。
在这种情况下,|g_t|和v_t都很大,但|g_t−g_[t−1]|和s_t都很小。发生这种情况是因为学习率α很小。此时,理想的优化器应该增加步长。SGD采用了一个很大的步长(∼ α|g_t|);在Adam中,分母v_t很大,因此步长很小;而在AdaBelief中,分母s_t很小,因此步长和理想优化器一样大。
AdaBelief考虑分母中梯度的符号
在左图中,我们考虑一个损失函数 f(x,y)=|x|+|y|。蓝色的向量表示梯度,x表示最优点。优化器在y方向上震荡,在x方向上继续前进。右图是左图对应的优化过程。我们可以观察到,在Adam中,,因此,它在x方向和y方向上步长一样。但在AdaBelief 中,,因此它在x方向上步长较大,在y方向上步长较小。
在方差较小时,Adam中的更新方向接近于「符号下降」
我们假设:
1.g_t来自一个平稳分布,因此,在偏置矫正之后,
2.低噪声假设,假设,可以得到
3.低偏置假设,假设很小,那么作为估计值的m_t的偏置就很小。此时,
在这种情况下,Adam的表现很像「符号下降」。在2D 的例子中,更新是 ±45°,因此偏离了真正的梯度方向。符号更新效应可能导致自适应方法和SGD之间的泛化差距。但在AdaBelief中,当g_t的方差对于所有坐标都相同时,更新方向会与梯度方向匹配。当方差不均匀时,AdaBelief会在方差大(小)时采取小(大)步长。
以下是几个简单问题的验证结果:
实验
图像分类
研究者在Cifar10和Cifar100数据集上利用VGG11、ResNet34和DenseNet121进行了实验。如下图4所示,AdaBelief与自适应方法(如Adam)一样实现了快速收敛,同时比SGD和其他方法具有更高的准确率。
研究者还在ImageNet上训练了ResNet18,验证集上的准确率如表2所示。从结果可以看出,AdaBelief优于其他自适应方法,并达到了与SGD相当的准确率(70.08VS70.23),这缩小了自适应方法与SGD之间的泛化差距。
时间序列建模
研究者在Penn TreeBank数据集上利用LSTM进行了实验,测试集上的困惑度(perplexity)如图5所示(越低越好)。对2层和3层LSTM模型来说,AdaBelief都实现了最低的困惑度,验证了其具有自适应方法的快速收敛性和良好的准确率。对于1层模型而言,AdaBelief的性能接近于其他优化器。
GAN
研究者利用Wasserstein-GAN(WGAN)和WGAN-GP进行了实验。对于每个优化器,在其最佳超参数设置下,研究者进行了5轮实验,实验结果如图6和图7所示。AdaBelief明显由于其他优化器,并且其FID分值最低。
虽然效果看起来不错,但论文发布后也引发了一些质疑,比如:「在Cifar10和Cifar100的数据中,SGD的性能在150个epoch之后才开始下降。他们在150个epoch处进行了微调。在此之前,AdaBelief并没有其他优化器性能好。」
如果你也有类似疑问,可以向论文作者提出反馈(联系方式见论文介绍界面)。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。