- 作者:佚名
- 发表时间:2024-04-07 23:55
如题,此优化算法是否稳定?作者说因为缺乏计算资源没有尝试Imagenet,感觉有点奇怪。有理论见解,或者在其他数据集上尝试过的朋友欢迎留言评论。
又一个试图颠覆 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
reddit上有相关讨论,网友habanero_ass_fire用这个算法训练了imagenet,发现到后期就训练不动了,作者的实验是基于CIFAR10这种小数据集做的,对于imagenet需要调整gamma参数。
如果只是粗略地读一下论文,不理解gamma的含义,也不对gamma进行调参,直接用这个方法去训练imagenet,极大概率会获得一个较差的结果。
https://www.reddit.com/r/MachineLearning/comments/auvj3q/r_adabound_an_optimizer_that_trains_as_fast_as/总感觉这是媒体的捧杀,本来本科生写了一篇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
相关文章: