
2018年12月21日,ICLR2019论文接收结果揭晓。据统计,ICLR2019共收到1591篇论文投稿,相比去年的996篇增长了60%。ICLR2019共接收论文500篇,其中oral论文24篇、......
2018年12月21日,ICLR2019论文接收结果揭晓。据统计,ICLR2019共收到1591篇论文投稿,相比去年的996篇增长了60%。ICLR2019共接收论文500篇,其中oral论文24篇、poster论文476篇。
今天,我们发现了一篇有趣的论文,该研究提出了一种新型优化方法AdaBound,「和Adam一样快、和SGD一样好」。据了解,四位作者LiangchenLuo、YuanhaoXiong、YanLiu、XuSun均来自国内。共同一作骆梁宸和YuanhaoXiong分别来自北京大学和浙江大学,YanLiu来自南加州大学,XuSun来自北京大学。而且一作骆梁宸是北京大学的本科生……(长江后浪推前浪嘤:)
作者在reddit网站发帖介绍了这项研究,并提供了PyTorch实现。他们目前在MNIST和CIFAR-10数据集做了测试,但由于计算资源有限而无法选择ImageNet等大数据集。此外,作者还表示AdaBound可以直接通过pip安装,不过使用AdaBound不意味着不用调参,只不过AdaBound可以帮助大家减少所需要的时间。
项目地址:
为什么这篇论文很重要?
正如作者所言,AdaBound最重要的属性是「和Adam一样快、和SGD一样好」。其中「快」表示收敛快,深度学习模型只需要更少的算力就能收敛到最优解;而「好」表示收敛的结果好,收敛后的模型要有更高的准确率的更好的泛化性。
如下所示这张训练图展示了AdaBound的主要优势,其中测试准确率曲线越平滑表示最优化算法越稳定,模型的训练会少走「弯路」。而若给定Epoch,垂直线上的高度表示收敛的快慢,测试准确率越高则收敛得越快。AdaGrad收敛快是众所周知的,但AdaBound也能这么快就非常令人吃惊了。
此外,最右边近乎水平的曲线则表明各最优化算法已经完成收敛,曲线的水平高低则表明了收敛的好坏,当然测试准确率越高则表明收敛的最优解越好。我们可以看到,AdaBound和AMSbound确实是收敛得最好,而SGDM甚至都比Adam收敛得好。
在去年ICLR2018的最佳论文《OntheconvergenceofAdamandBeyond》中,作者首次分析了为什么Adam等新提出的方法会收敛得不好,该论文提出的AMSGrad尝试解决这个问题。但是在这篇新论文中,北大骆梁宸等研究者表明AMSGrad实际上也没有解决问题,因此他们提出了新的解决方案:AdaBound。
为什么Adam不行?
目前Adam可以说是最常用的最优化器,它和传统的随机梯度下降有很多不同。SGD保持单一的学习率来更新所有权重,学习率在训练过程中并不会改变,Adam则通过计算梯度的一阶矩估计和二阶矩估计,为不同的参数设计独立的自适应性学习率。
听起来Adam好像高级了很多,但在Reddi等人的ICLR2018最佳论文中,他们表示Adam等算法在经验上常会收敛得比带动量的SGD方法差,他们证明了导致该问题的一个原因是这些算法使用了指数滑动平均(exponentialmovingaverage)操作。这也是去年的研究重点,很多研究者尝试改良Adam以解决收敛差这个问题。
在AdaBound这篇论文中,北大等研究者表明当用Adam训练的模型接近收敛时,学习率基本上由小于0.01的学习率和大于1000的学习率组成,这就表明训练的最后阶段确实存在学习率太小或太大的问题。在作者对这个现象进行深入研究后,他们表示极端学习率确实存在潜在不良影响。算法在不解决这个问题的情况下不可能获得很好的泛化性能,因此我们需要以某种方法限制Adam在训练后期的学习率。
鉴于这个观察Adam也就能改良成AdaBound了。
这篇论文干了什么?
AdaBound这篇论文首先对ADAM进行了实证研究,并说明在训练结束时,学习率存在极大和极小两种情况。该结果与Wilson等人(2017)提出的观点一致,后者认为自适应方法的泛化性能较差要归因于不稳定和极端的学习率。实际上,AMSGRAD中的关键思想——引入非递增学习率,可能有助于减轻极大学习率造成的不良影响,虽然它忽略了较小学习率的可能影响。AdaBound论文的作者进一步提供了简单凸优化问题的示例,以阐明自适应方法的极小学习率如何导致无法收敛。在这种情况下,可证明RMSPROP和ADAM无法收敛到最优解,且不管初始步长α有多大,ADAM都无法与scale-downterm对抗。
基于以上分析,作者提出了ADAM和AMSGRAD的新变体,分别是ADABOUND和AMSBOUND,新变体不会受到极端学习率的消极影响。作者对这些自适应方法中的学习率应用了动态边界,其中上下界被初始化为0和无穷大,而且它们都能平滑收敛至恒定的最终步长。新变体在训练初期可视为自适应方法,然后逐渐随着步长的增加转化为SGD(或带动量的SGD)。使用该框架中可以获得快速的初始训练进程和良好的最终泛化能力。
论文:AdaptiveGradientMethodswithDynamicBoundofLearningRate
论文地址:
摘要:自适应优化方法(如AdaGrad、RMSprop、Adam)旨在通过调整学习率上的元素级缩放项来获取快速的训练过程。尽管这些方法很普遍,但它们与SGD相比泛化性能较差,甚至会由于不稳定和极端的学习率导致无法收敛。近期研究提出了一些新算法(如AMSGrad)来解决这个问题,但这些算法相比现有算法并没有太大改进。这篇论文展示了极端学习率会导致性能不好。此外,该论文还提供了Adam和AMSGrad的新变体——AdaBound和AMSBound,它们对学习率使用动态边界,以实现从自适应方法到SGD的逐步平滑过渡,为收敛提供理论依据。作者在多个流行任务和模型上进行了实验,而这在之前的研究中是匮乏的。实验结果表明这些新变体能够弥合自适应方法和SGD之间的泛化差距,同时在训练早期保持更高的学习速度。此外,这些新变体相比原版有巨大改进,尤其是对于复杂深度网络。
极端学习率导致的无法收敛
在这部分中,研究者通过初步的实验和严格的证明阐述了当前自适应方法的主要缺陷。如上所述,根据观察结果ADAM这样的自适应方法表现比SGD要差。Reddi等人(2018)提出了AMSGRAD来解决这个问题,但最近的研究指出AMSGRAD并没有明显的改进。Reddi等人表示与ADAM相比,AMSGRAD的学习率更小,但他们仅认为较大的学习率是造成ADAM表现糟糕的原因。然而,较小的学习率可能也是陷阱。因此,本研究的作者认为极大和极小学习率都是导致ADAM泛化能力平平的原因。
动态边界的自适应矩估计
这部分介绍了该研究开发的新优化方法,并提供了收敛性分析。该研究旨在设计一个最优化策略,它能够结合自适应优化方法的优势(即快速的初始化进度)和SGD良好的泛化性能。直观地说,研究者希望构建一种算法,能够在训练早期表现得像自适应方法,在训练后期表现得像SGD。
受梯度裁剪(一种实践中常用的技术,用于裁剪大于阈值的梯度以避免梯度爆炸)的启发,本文研究者对ADAM中的学习率进行了裁剪,提出了ADABOUND,如算法2所示。考虑在ADAM中应用以下操作:
通过逐元素地裁剪学习率,它使得输出限制在[η_l,η_u]内。由此可见,α=α*的SGD(M)可视为η_l=η_u=α*。至于ADAM,它的范围则相当于η_l=0以及η_u=∞。现在我们可以通过以下步骤提供新的策略。我们将η_l和η_u作为t的函数,而不是常数的上下界,其中η_l(t)是非递减函数,在t=0时它从0开始,渐近收敛至α*;η_u(t)是非递增函数,在t=0时它从∞开始,也渐近收敛至α∗。在这种设定下,ADABOUND在开始表现得像ADAM,因为上下界对学习率的影响非常小,而后面逐渐表现得像SGD(M),因为边界变得越来越受限。研究者证明了ADABOUND的以下关键结果:
不难看出ADABOUND的后悔值(regret)上限是O(sqrt(T))。与Reddi等人(2018)的做法类似,研究者可以使用更谨慎的动量衰减率β_1t=(β_1)/t,仍确保O(sqrt(T))的后悔值。值得一提的是,我们还可以在AMSGRAD中加入动态边界。由此产生的算法AMSBOUND也保持了O(sqrt(T))的后悔值,而收敛的证明基本与理论4一样(详见附录F)。在下一部分中,我们会看到在一些已知的任务上,AMSBOUND具有与ADABOUND相似的性能。
实验
在此部分,研究者对不同的模型进行实证研究,将新方法与常用优化方法进行对比,包括SGD(M)、ADAGRAD、ADAM和AMSGRAD。实验着重于三个任务:MNIST图像分类任务、CIFAR-10图像分类任务、在PTB上的语言建模任务。
表2:本文实验所用模型概述
图2展示了每个优化方法在训练和测试集上的学习曲线。研究者发现在训练上,所有的算法都能达到近100%的准确率。而在测试上,SGD比ADAM和AMSGAD自适应方法表现略好。
图2:前馈神经网络在MNIST上的训练(左)与测试(右)准确率。
图3中,ADABOUND和AMSBOUND甚至超越了SGDM1%。尽管自适应方法的泛化能力相对较差,但该研究提出的方法通过为自适应学习率分配边界克服了这一缺陷,使得DenseNet和ResNet在CIFAR-10测试集上几乎取得了最佳准确率。
图3:DenseNet-121和ResNet-34在CIFAR-10上的训练与测试准确率。
然后作者在PTB数据集上训练一些LSTM,固定预算下运行200个epoch。他们使用困惑度作为性能评估的标准,结果如图4。
图4:在PTB上使用不同层的LSTM对比SGD、ADAM、ADABOUND和AMSBOUND困惑度曲线。
匿名评审结果
这篇论文已被ICLR2019接收,评审得分为:7,4,6。
匿名评审2给出了7分,Ta认为作者在多个常用机器学习测试集中验证了所提出ADAM和AMSGrad新变体的效果,同时对凸优化问题提供了详细的证明,也因此ADAM后悔值(regret)不能收敛为零。
但Ta同时认为这篇论文中的证明仍然不够有说服力。性能差的情况确实存在,但这无法说明算法的平均性能,而这在实践中很关键。此外,这篇论文的验证数据集较少,数据集规模也不够大,该评审建议作者在较大的数据集上进行实验,以使结果更具说服力。
作者对此回应道,他们在CIFAR-100等较大数据集和其它任务上也进行了实验,结果都很不错。之后会把相关结果添加到论文中。
匿名评审3打出了4分(rejection)。Ta对论文的技术细节提出了几点质疑,主要涉及η_u和η_l的公式及结果、研究结果在其它算法上是否有同样的效果、学习率的选择和变化图等方面。
匿名评审1给出了6分,Ta认为这篇论文提出了一个简单的方法来避免标准自适应方法中的学习率极端行为,但理论不足,无法说明该方法相比标准自适应方法的优势。
reddit讨论
这篇论文在reddit上也引起了大量讨论。
很多人对该研究表示赞赏,还有一些人询问该研究是否针对GAN、迁移学习进行了实验,以及是否有TensorFlow实现。作者表示暂未针对GAN和迁移学习进行实验,且由于对TensorFlow不太了解,因此暂时没有TensorFlow实现。
reddit用户Berecursive就实验结果的持续性(consistent)提问:如果我将同样的实验运行100次,那么我会得到比较合理的训练和测试误差的方差分布。通常误差图的形状是一致的,但是如果你要绘制方差图,则其范围会因任务而变得非常宽泛。对于优化方法而言,结果的一致性也是一个重要的度量标准。
作者对此的回应是:我在特定超参数设置下运行了3-5次,发现在相同设置下AdaBound的学习曲线很接近。之前我并不知道如何绘制方差图,稍后会进行尝试。此外,我在附录G中就AdaBound的一致性问题进行了一些额外实验研究,使用的是不同的超参数设置。此外,我们还提供了Jupyternotebook,可以帮助可视化和复现。
此外,与匿名评审2类似,reddit用户alper111也对实验用数据集CIFAR-10提出了质疑:使用CIFAR-10来测试泛化误差有些奇怪吧?这个数据集中的样本与训练数据集中的样本有很大的重复性。
论文作者对此的回应是:CIFAR-10是一个完备的基准数据集,完全可以使用,近似重复问题并不能改变这个事实。此外,使用CIFAR-10数据集方便与其它基于该数据集的结果进行对比。