张倩、小舟作者

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

在一篇 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并没有其他优化器性能好。」


如果你也有类似疑问,可以向论文作者提出反馈(联系方式见论文介绍界面)。

理论NeurIPS 2020GANSGDAdam优化器
2
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

动量技术

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

WGAN技术

就其本质而言,任何生成模型的目标都是让模型(习得地)的分布与真实数据之间的差异达到最小。然而,传统 GAN 中的判别器 D 并不会当模型与真实的分布重叠度不够时去提供足够的信息来估计这个差异度——这导致生成器得不到一个强有力的反馈信息(特别是在训练之初),此外生成器的稳定性也普遍不足。 Wasserstein GAN 在原来的基础之上添加了一些新的方法,让判别器 D 去拟合模型与真实分布之间的 Wasserstein 距离。Wassersterin 距离会大致估计出「调整一个分布去匹配另一个分布还需要多少工作」。此外,其定义的方式十分值得注意,它甚至可以适用于非重叠的分布。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

生成对抗技术

生成对抗是训练生成对抗网络时,两个神经网络相互博弈的过程。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。

推荐文章
暂无评论
暂无评论~