【读论文】 之 一种新的模型优化算法--AdaBound

论文地址:https://openreview.net/pdf?id=Bkg3g2R9FX

个人主页版:https://www.luolc.com/publications/adabound/

GitHub地址:https://github.com/Luolc/AdaBound

【读论文】 之 一种新的模型优化算法--AdaBound

这篇论文提出来一个神经网络优化算法--AdaBound。而且刷新很多AI新纪录,目前已经被 2019 AI 顶会 ICLR收录。

优化算法已经很多了,那么为什么这个优化算法比较突出?

简单来说:它训练速度与Adam(自适应矩阵估计)不相上下,收敛性能又可以媲美SGD(随机梯度下降)。

SGD:历史悠久,利用梯度下降与固定的学习率,能够一步一步慢慢的向模型的最小值方向更新。缺点就是比较慢,一步一步。其次模型可能会停留在局部最优解左右来回震荡,以至于停留在局部最优点上。

Adam:其自适应优化方法方法,能够让梯度在陡峭的地方下降的更快,平缓的地方下降的步伐小一些,以最快的速度让结果收敛。速度很快,但是缺点是可能不收敛、可能找不到最优解、因此泛化性能不太好。

其实Adam速度还是很棒的,就是泛化性能不太好,那么问题出现在哪里?

【读论文】 之 一种新的模型优化算法--AdaBound

如上图,作者根据之前的论文,最后推测不仅仅是极大值,极小值的学习率也有可能引起平平淡淡的泛化性能。然后后面就是作者的验证与改进。

【读论文】 之 一种新的模型优化算法--AdaBound

如上图,他的思路是对学习率进行一个动态的裁剪

因为:SGD 学习率的取值上限=下限;Adam 学习路的取值是 0 到 无穷大(难怪有极端值)

因此将学习率的取值让一个关于时间t的函数动态的变化,那么就会避免出现极大值,而且随着时间的推移,

学习率上限与下限会越来越紧,自然而然模型也会越来越稳定

 

实验结果:

【读论文】 之 一种新的模型优化算法--AdaBound

【读论文】 之 一种新的模型优化算法--AdaBound

曲线越平滑,则表明基本差不多完成收敛。而曲线的水平高低代表准确率高低,水平位置越高,准确率高,那收敛的结果意思就好。看图就知道了。

 

额外的惊喜:对超参数不敏感。(意味着更高的鲁棒性,以及可以减少调参的工作时间)

 

其次代码已经开源pytorch版本,pip安装,可以像其他优化算法一样直接调用。nice~

最后比起他的论文,我更喜欢他的个人主页签名。

A foll living in the amazing world...

【读论文】 之 一种新的模型优化算法--AdaBound

 

====================================附加=================================================

三月初看的论文,对作者刮目相看。

三月中旬在实际场景中检验的时候,有点难堪。