知行编程网知行编程网  2022-07-09 17:00 知行编程网 隐藏边栏 |   抢沙发  11 
文章评分 0 次,平均分 0.0

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款

来自 | 机器之心

在一篇 NeurIPS 2020 Spotlight 论文中,来自耶鲁大学等机构的研究者提出了一种新型优化器,可以像 Adam 一样快速收敛,准确率媲美 SGD ,还能稳定训练 GAN 。


速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


最常用的深度学习优化器大致可分为自适应方法(如Adam)和加速方案(如带有动量的随机梯度下降(SGD))。与 SGD 相比,许多模型(如卷积神经网络)采用自适应方法通常收敛速度更快,但泛化效果却较差。对于生成对抗网络(GAN)这类的复杂情况,通常默认使用自适应方法,因为其具有稳定性。

在 NeurIPS 2020 的一篇 Spotlight 论文中,来自耶鲁大学、伊利诺伊大学香槟分校等机构的研究者提出了一种名为「AdaBelief」的新型优化器,可以同时满足 3 个优点:自适应方法的快速收敛、SGD 的良好泛化性、训练稳定性。论文代码也已经放出。

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款

论文链接: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,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


Adam和AdaBelief的算法如上图所示,不同之处已经用蓝色字体标注。从图中可以看出,AdaBelief没有引入额外的参数。为了简便,研究者省略了偏置矫正步骤。具体来说,在Adam中,更新方向是速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款其中,v_t是速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款的指数移动平均值(EMA)。在AdaBelief中,更新方向是速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款,其中,s_t是 (g_t−m_t)^2的EMA。直观来看,将m_t看作g_t的预测,当观察结果g_t与预测结果m_t接近时,AdaBelief步长较大;当g_t与m_t相差较大时,AdaBelief步长较小。

AdaBelief 好在哪儿?

AdaBelief考虑了损失函数的曲率

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


一个理想的优化器会考虑损失函数的曲率,而不是在梯度很大(或很小)的地方采取很大(或很小)的步长。上图中的区域③展示了AdaBelief在「梯度大,曲率小」的情况下相较于Adam的优势。

在这种情况下,|g_t|和v_t都很大,但|g_t−g_[t−1]|和s_t都很小。发生这种情况是因为学习率α很小。此时,理想的优化器应该增加步长。SGD采用了一个很大的步长(∼ α|g_t|);在Adam中,分母v_t很大,因此步长很小;而在AdaBelief中,分母s_t很小,因此步长和理想优化器一样大。

AdaBelief考虑分母中梯度的符号

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


在左图中,我们考虑一个损失函数 f(x,y)=|x|+|y|。蓝色的向量表示梯度,x表示最优点。优化器在y方向上震荡,在x方向上继续前进。右图是左图对应的优化过程。我们可以观察到,在Adam中,速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款因此,它在x方向和y方向上步长一样。但在AdaBelief 中,速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款,因此它在x方向上步长较大,在y方向上步长较小。

在方差较小时,Adam中的更新方向接近于「符号下降」

我们假设:

1.g_t来自一个平稳分布,因此,在偏置矫正之后,速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


2.低噪声假设,假设速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款可以得到速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


3.低偏置假设,假设速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款很小,那么作为速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款估计值的m_t的偏置速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款就很小。此时,

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


在这种情况下,Adam的表现很像「符号下降」。在2D 的例子中,更新是 ±45°,因此偏离了真正的梯度方向。符号更新效应可能导致自适应方法和SGD之间的泛化差距。但在AdaBelief中,当g_t的方差对于所有坐标都相同时,更新方向会与梯度方向匹配。当方差不均匀时,AdaBelief会在方差大(小)时采取小(大)步长。

以下是几个简单问题的验证结果:

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


实验

图像分类

研究者在Cifar10和Cifar100数据集上利用VGG11、ResNet34和DenseNet121进行了实验。如下图4所示,AdaBelief与自适应方法(如Adam)一样实现了快速收敛,同时比SGD和其他方法具有更高的准确率。

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


研究者还在ImageNet上训练了ResNet18,验证集上的准确率如表2所示。从结果可以看出,AdaBelief优于其他自适应方法,并达到了与SGD相当的准确率(70.08VS70.23),这缩小了自适应方法与SGD之间的泛化差距。

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


时间序列建模

研究者在Penn TreeBank数据集上利用LSTM进行了实验,测试集上的困惑度(perplexity)如图5所示(越低越好)。对2层和3层LSTM模型来说,AdaBelief都实现了最低的困惑度,验证了其具有自适应方法的快速收敛性和良好的准确率。对于1层模型而言,AdaBelief的性能接近于其他优化器。

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


GAN

研究者利用Wasserstein-GAN(WGAN)和WGAN-GP进行了实验。对于每个优化器,在其最佳超参数设置下,研究者进行了5轮实验,实验结果如图6和图7所示。AdaBelief明显由于其他优化器,并且其FID分值最低。

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款

虽然效果看起来不错,但论文发布后也引发了一些质疑,比如:「在Cifar10和Cifar100的数据中,SGD的性能在150个epoch之后才开始下降。他们在150个epoch处进行了微调。在此之前,AdaBelief并没有其他优化器性能好。」

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款


<section data-brushtype="text" style="padding-right: 0em;padding-left: 0em;white-space: normal;max-width: 100%;letter-spacing: 0.544px;color: rgb(62, 62, 62);font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;widows: 1;word-spacing: 2px;caret-color: rgb(255, 0, 0);text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong>完<strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong></span></strong></span></strong></section><pre style="padding-right: 0em;padding-left: 0em;max-width: 100%;letter-spacing: 0.544px;color: rgb(62, 62, 62);widows: 1;word-spacing: 2px;caret-color: rgb(255, 0, 0);text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">一文了解深度推荐算法的演进</section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">干货 | 算法工程师超实用技术路线图</section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">13个算法工程师必须掌握的PyTorch Tricks</span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">吴恩达上新:生成对抗网络(GAN)专项课程</span><br  /></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">拿到2021灰飞烟灭算法岗offer的大佬们是啥样的<span style="font-size: 14px;">?</span></section></section></section></section></section></section></section></section></section>

速度堪比Adam,准确率媲美SGD,还能稳定训练GAN:全新优化器成为NeurIPS爆款

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享