如何评价优化算法 AdaBound?
总感觉这是媒体的捧杀,本来本科生写了一篇paper,很正常啊,而且还是很优秀的本科生才能在ICLR这样的会议上发文章,本来是一件很不错的事情,结果媒体来了一个拳打SGD,脚踢Adam的标题。。。。。。。。。。希望那几位作者能够继续踏实做科研,早日提出真正的拳打SGD,脚踢Adam的算法 总感觉这是媒体的捧杀,本来本科生写了一篇paper,很正常啊,而且还是很优秀的本科生才能在ICLR这样的会议上发文章,本来是一件很不错的事情,结果媒体来了一个拳打SGD,脚踢Adam的标题。。。。。。。。。。希望那几位作者能够继续踏实做科研,早日提出真正的拳打SGD,脚踢Adam的算法 如何评价,当然是跑了实验再评价啊,不跑怎么知道到底好不好,这毕竟是门实验科学(手动狗头)在imagenet上尝试了,亲测比SGDM+nestrov收敛速度快好多,但是差距会逐渐缩小,到最后几个epoch的accuracy最终被SGDM超过,整体训完AdaBound会差0.3个点左右
关于参数问题,gamma没调,只是单纯的把lr对应SGD的数值整体缩小了100,final lr没调。可以说是随便一调就跑出了这个结果,感觉再调一调说不定就持平了?
结论:图省事的话,该用SGD还是用SGD吧,至于用ADAM的或许可以考虑直接换一下Adabound,但不要指望涨点,fastai的ADAMW有时候能涨是真的23333 又一个试图颠覆 Adam 的水文 摊手 5.10更新
我们的论文被IJCAI录取了,分数和review都很不错,感谢大家的关心!
-----------------------------------------------
以下原答案:
媒体的确很容易引导大家的关注点。
其实在去年的那篇On the Convergence of Adam and Beyond成为了IClR best paper之后,就重新掀起了一股研究Adam的浪潮。当然,每篇文章都声称可以颠覆Adam。比较有意思的有PAdam(ICLR没中), AdaShift (ICLR2019), AdaBound(ICLR2019), NosAdam(IJCAI2019)。可能茫茫paper海中还有更多没冒出头的。
但其实可以看出那篇best paper的确是更有启发性,后面的文章无一不在这篇文章的框架下或启发下。我个人认为几乎每篇文章的想法都是比较intuitive的,无非是从AMSGrad的证明中得到了启发( NosAdam),或是从AMSGrad构造的反例中得到了启发(AdaShift, AdaBound)。
从对learning rate的效果上看,简单来说AdaShift提出的是把用g_{t-n}^2来代替g_t^2,所以其实跟AMSGrad会比较像(因为取了max,AMSGrad也可以看作某种g_t^2的shift,不过是根据那个max操作,data-dependent)。事实上,AdaShift的motivation和理论分析都是在针对AMSGrad里那个repeated function的例子,个人感觉非常artificial。
而NosAdam则和AdaBound非常像了。两个算法都用某种方法逐渐估计出了一个fixed learning rate,所以可以解读成“先Adam后SGD”,尽管这个想法早就有人实现过了(SWATS)。两篇文章都有理论证明,NosAdam里还有基于landscape的分析,对几种Adam类的算法比较都有讨论。而AdaBound则实验做得更好一点。
最后说说实际效果,从我个人的经验来看,这些Adam类算法的变体是大同小异的,他们的表现一般情况下也跟Adam差不多,尤其是是否能优化成功,以及generalization performance。有一篇ICML2018的文章(Dissecting Adam)把Adam类算法的问题归于它的sign-based direction,有理论证明和实验验证。我觉得能说明一定问题。根据贵公司在复杂人脸识别问题上的经验看,目前还是没有什么可以代替momentum的,Adam类算法根本train不动。
总结:作为research角度,这肯定是一篇有insight的文章,但实际效果和未来应用都有待观察,其他几篇Adam类文章也一样。
最后,如果感兴趣,请移步NosAdam:https://arxiv.org/abs/1805.07557。欢迎讨论(求引用啊!作为作者,个人比较推荐Why Nostalgic一节,可能是相对来说会有一些些insight。
顺便再蹭热度为贵司打波广告:旷视研究院常年招算法实习生,希望编程能力强/数学好/有志于算法落地/需要大量计算资源做科研的同学,都可以拿简历来砸我!旷视的人和科研环境不会让你失望。email: huanghaiwen at megvii.com 一篇跟AdaBound 有关的很新的 arxiv paper : "On the Convergence of AdaBound and its Connection to SGD".
https://arxiv.org/abs/1908.04457 首先是实验结果复现,的确得出了和论文一样的结果。使用ResNet34,数据集为CIFAR-10
左边是调整SGD动量,可以看出,对于CIFAR-10这个数据集来说,不带动量和动量设置为0.5测试精度差不多。
中间的是adabound和sgd带动量的对比,动量0.5在测试集上相差无几。
右边的是sgd不带动量和adabound对比,可以看出训练的时候几乎没差别。
最后看一下上边的朋友提到的网站,作者用shufflenet V2在imagenet上的实验,adabound和sgdm差别就比较大大了,前者67.734%,后者63.931%。但作者也不确定是不是自己的超参数设置有问题。
显然,论文得到的实验结果是在默认设置下,前期和adam一样快,后期和得到和sgd一样的精度。通过调整动量,可以在小数据集(CIFAR-10)得到和adabound一样的速度,测试精度甚至还略高。
imagenet这样大的数据集没有试,从reddit上看,似乎效果一般。 review只有467还能中,明显是AC因为某些原因捞回来的paper。reviewer写成什么样大家自己去openreview看看吧。
之前有个回答,说是方法论差值,真的一点没说错。需要设置上下bound,还谈什么adaptive,真是个joke!
说做imagenet没资源就更是搞笑了,我不信以usc和滴滴的资源,帮你们弄块1080ti都做不到!ICLR12月份出结果,到现在都两个多月了,就算是中了之后再补时间都戳戳有余了! 我觉得,在真正理解了网络的loss landscape之前,说什么方法好,拿几个有限的实验验证都不能根本解决问题。 实际上收敛性能就是看loss lanscape的整体分布和局部特征,特别是泛化性能,一定和整体结构有关而不是仅仅是一个初始点附近的空间的特性。现在一些从二阶统计量谱的角度来考察的方法,我觉得是正途。了解了loss landscape的特征,选用何种优化更好就是一目了然的事了。 试了下github上的keras版本,拿它取代adam,其他参数基本没变,做分类任务根本跑不动。
小天才们是不会错的,也许是我写的不对,或者是我们小公司资源有限吧。