对不同深度学习优化器的基准测试.
- paper:Descending through a Crowded Valley - Benchmarking Deep Learning Optimizers
- arXiv:link
1. 研究背景
选择优化器(optimizer)是训练深度学习模型的重要决策之一,目前已经有大量优化器被提出,如下表所示。在缺乏理论指导的情况下,优化器的选择很大程度上依赖于经验。
本文通过对$14$种广泛使用的优化器进行标准化基准测试,进行了约$35,000$次实验,通过实验总结以下结论:
- 不同的优化器在各个任务之间的性能差异很大;
- 从多个默认参数优化器中进行评估选择的效果与调优单个优化器超参数的效果大致相同;
- 提出了一个具有较少特定优化器和参数选择的子集,只需要在这个子集中搜索也通常会在任务中获得满意的结果。
2. 测试过程
测试过程如上图所示。首先选定$8$个差异较大的特定任务数据集,为每个数据集选择一个基准模型(值得一提的是,这些模型尺寸较小,这是因为大模型的训练成本太高);选择$14$个常用的优化器;使用优化器时预先设定$3$种微调策略;再应用$4$种不同的学习率策略,最终得到评估结果。
(1) Problem
作者选择了$4$种较小的任务($P1$-$P4$)和$4$种较大的任务($P5$-$P8$).这些任务的细节如下:
(2) Optimizer
作者统计了在ArXiv文章的标题和摘要中出现过的优化器次数,并选择出现频率最高的$14$个优化器作为选定优化器,这些优化器的使用频率如下:
(3) Tuning
作者设置了$3$种微调策略,分别是:
- one-shot:使用优化器的默认超参数配置
- small budget:在超参数空间中进行$25$次随机搜索,选择最优配置
- large budget:在超参数空间中进行$50$次随机搜索,选择最优配置
各优化器的默认超参数配置和随机搜索空间如下图所示。其中$\mathcal{U}$表示均匀分布,$\mathcal{LU}$表示对数均匀分布:
(4) Schedule
作者又预设了四种学习率策略,分别是:
- 学习率为常数;
- 学习率余弦衰减;
- 带热启动的学习率余弦衰减;
- 学习率梯形策略.
3. 实验分析
下表表示将使用one-shot策略的未经过微调的优化器($y$轴)换成使用small budget策略的经过微调的优化器($x$轴)在不同任务上的表现提升结果。实验表明,对于某些优化器(如Adadelta),使用任意微调后的优化器均能得到性能的提升,这表明这些优化器的默认设置并不是很合适;对于另外一些优化器(如Adam),替换后性能的提升并不明显,这表明这些优化器已经足够好用。
下表表示所有$14$个优化器在$8$个任务上经过不同微调后的性能相对提升平均值。橙色线表示平均趋势,浅黄色区域表示$25$至$75$分区间。实验表明,通过超参数搜索(即budget结果)能够明显提高优化器性能;学习率策略也能够提高表现。
下表表示所有$14$个优化器在$8$个任务上经过large budget策略的性能。实验表明,不同的优化器在不同的任务上具有显著差异的表现;其中有一些优化器在所有任务上都具有不错的表现。