电脑基础 · 2023年4月3日

(Note)优化器Adam的学习率设置

记录一下知乎看到的问题:Adam的学习率设置

常用的神经网络优化器Adam的自适应学习率并不是真正意义上的自适应。

从统计的角度看,Adam的自适应原理也是根据统计对梯度进行修正,但依然离不开前面设置的学习率。如果学习率设置的过大,则会导致模型发散,造成收敛较慢或陷入局部最小值点,因为过大的学习率会在优化过程中跳过最优解或次优解。按照经验,一开始并不会设置过大的学习率,而是需要根据不同的任务进行选择。通常默认的学习率设置为1e-3。

同时神经网络的损失函数基本不是凸函数,而梯度下降法这些优化方法主要针对的是凸函数,所以在优化方面深度学习的学习率会设置的比传统机器学习小得多。如果学习率设置过高,Adam优化器只会矫正梯度,而不会影响设置的初始学习率,这时模型的Loss会出现较大的波动,这代表模型没有办法收敛。

  1. 相对于SGD来说,Adam的lr更加统一。

即不同的task可以用一个相同的lr去调节,通用性更强;

  1. learning rate decay很重要。

即使按照paper里面的原理,lr可自动学习已无需调整,但是下降一次之后效能依然有大幅提升;

  1. lr的decay影响远远不如SGD。

一般来说SGD在CV问题有两次lr下降,每一次的提升都较为可观,但是Adam在第一次的之后后续的影响微乎其微。这一点甚至在multi-scale的长周期训练中,Adam还不如SGD;

Reference:

https://www.zhihu.com/question/387050717