上篇文章提到,自适应学习率优化算法 Adam 结合了以往经典算法的优势,可用于处理稀疏梯度、非平稳目标以及非凸优化问题等,然而像 Adam 这些自适应学习率的算法在收敛问题上也有些许局限,以下面这篇2019年的文章为例对 Adam 进行一个修正。
1、文章贡献
对于 RMSprop 和 Adam 等自适应随机优化算法,学习率预热启发式算法在稳定训练、加速收敛和提高泛化能力方面取得了显著的成功,文中证明了一个根源是:自适应学习率在训练早期因样本数量有限会有很大方差的问题,从而可能收敛到局部最优,并且提出了 Adam 的一个新变体 RAdam,通过修正自适应学习率的方差项来缓解收敛问题。
2、通用自适应学习率算法框架
下面是一个通用的自适应算法框架,可以通过对φ(.)和ψ(.)的不同选择来指定不同的优化算法。
3、自适应学习率方差分析
- 对照实验 IWSLT’14 German to English dataset
Adam-2k:有额外的2000个样本来迭代
Adam-eps:将epsilon从10的-8次增大到不可忽视的10的-4次
Adam with warmup:有热身的Adam
vanilla Adam:没有热身的Adam
① 在Adam-2k前2000次迭代中,只更新了自适应学习率ψ(.),而动量φ(.)和参数θ是固定的。此外,结果显示,在获得额外的2000个样本来估计自适应学习率之后,Adam-2k避免了vanilla Adam的收敛问题,图中足够大的样本可以防止梯度分布被扭曲,也验证了训练早期缺乏足够的样本是导致收敛问题的根源。
②通过增加epsilon值来减少方差,在图3中,与Adam-2k类似,它也能防止梯度被扭曲,但图1中与Adam-2k和Adam-warmup相比性能差得多,推测是因为epsilon过大导致自适应学习率存在较大偏差,减缓了优化过程。
- 定性分析
将指数移动平均的分布近似于简单平均的分布来简化分析,因为梯度近似服从正态分布,故梯度平方简单平均的倒数近似服从逆卡方分布,进而有指数移动平均平方的倒数也近似服从逆卡方分布,且其平方根的方差随自由度的增大而减小。
- 定量分析
- 方差估计和修正
加了修正项的 RAdam 算法,当方差是发散的时候使自适应学习率失活,因此避免早期的不稳定,并且不需要额外的超参数控制方差的减少,能根据不同的移动平均规则自动适应。
4、实验分析
文中基于自然语言处理和图像分类对没有热身的Adam、有热身的Adam和RAdam的表现进行了几组对比实验。
- 与没有热身的Adam相比
在性能上,虽然图4在前几个epoch中RAdam下降的比没有热身的Adam慢,但通过减小自适应学习率早期的方差后,后期RAdam有更快的收敛速度和更好地性能。
在学习率变化的稳健性上,对于不同的学习率变化,RAdam的性能是一致的,测试精度的曲线高度重叠,而Adam和SGD对学习率变化比较敏感。即RAdam通过修正了自适应学习率的方差,提高了模型的稳健性,从而适应更大范围的不同学习率。
- 与启发式热身相比
有热身的Adam对学习率选择较为敏感,而RAdam可以自动控制热身行为,例如在学习率是0.1时,热身100步的Adam表现不佳,准确率仅为90.13,而RAdam通过原始设置的移动平均计算获得了91.06的精度,推测是因为RAdam避免了方差发散的极端情况,并在其他情况下对方差进行校正,使其保持一致。
- 模拟验证
通过设置模拟实验对前文中将SMA平方根的方差近似于一阶以及EMA近似服从逆卡方分布的假设进行了验证,验证了两者的可靠性。
5、总结
- 自适应学习率算法在训练早期由于样本数量不足会有大的方差,导致收敛到局部最优,这是收敛问题的原因。
- 文中通过对自适应学习率的方差进行修正,提出了Adam的新变体RAdam,缓解了收敛问题,且在性能和学习率变化的稳健性上都有较好的表现。
- 文中的展望是将提出的RAdam方法应用于其他应用,以及可以根据不同参数的方差估计来调整衰减率β,即对方差较大的参数使用较大的β。