Adam Optimizor

  1. section 3的最末一段,没怎么明白,主要是 a small value of (eta_2) ,看起来与default setting相悖,并且其所说的sparse casesection 5AdaGrad的描述((eta_2 ightarrow 1))也不一致
  2. 个人理解是在梯度在0附近时,使用更小的幅值($|x_1 + x_2|^2/(sqrt{x_1^2+x_2^2})<1,x_1x_2<0 $), 后面可以试试用一些函数进行尝试验证。

A DAM : A M ETHOD FOR S TOCHASTIC O PTIMIZATION

以上 2017-05-24


本想后面找时间把前文扩展后再写全面些,但现在没有太多的必要了,明天要外出消失一段时间,正好现在心情悠扬,就把这结一下。

后面见到不少人说Adam的种种神效,鼓吹sgd是大神御用。之后有几次短暂的debug时用了adam,然后就没有理会了。 前几天刚好和大师兄说到这件事,没想到大师兄也认为sgd更为恰当。问题在于adam的收敛带有不同寻常的味道。下面一些图是早前做的一些实验。
adam-convergence
左上角是(f(x)=x^3-5x^2-50x)函数概览,右边是(x)随迭代次数的变化,下边是(f(x))随迭代次数(t)的变化。参数遵照paper默认设置。
初始值为(x(0)=80),然而没有冲过大致在(-6.08)(2.05)间的障碍,从图中可以看到,这段区间比起从(80)下来这段,应该是非常微弱的起伏。
我记得当时把初始至增大到了比较大的级别,刚才找到另一台机器上跑了一下(julia越改越糟糕,现在连Pkg都失败了)换到了(x(0)=500):

x(0)=500
很明显,依然在上次附近的地方停住了。不过可以观察到的是,初值升高后,收敛值还是有些变化的。

从稳定的角度来说(这也是大部分算法看起来在追求的东西),adam是很不错的,不仅能快速俯冲,还能快速凝固。是不是Bengio曾说过局部优解并无妨碍,如是,那么sgdadam并没有什么可以用来评论优劣。但从这些实验来看adam的高凝固性无疑会造成其局部优解集大小的丢失。而在这一点上sgd听起来能做得更好,另外,有动量辅助的sgd稳定性还是能够保障的,并不是什么大神才能用得起的。

另记

如果能加些sgd的对比实验应该更perfect,后面找机会吧。

原文地址:https://www.cnblogs.com/chenyliang/p/6900333.html