130种优化器,最早追溯到1964年
萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI
想要优化自己的神经网络,却不知道哪种优化器更适合自己?
又或者,想知道深度学习中梯度下降的算法到底都有哪些?
现在,最全面的优化算法分析来了。
它整理了自1964年以来,几乎所有的优化方法(约130种),将它们进行了分类。
此外,它还给出了几种基准测试方法,并用它分析了1344种可能的配置方案。
在运行了35000次测试后,它给出了非常全面的优化器算法分析介绍,并告诉你如何用这些基准测试,为自己的深度学习模型选择最好的优化方案。
优化方法具体都有哪几种?
从下图这份密密麻麻的图表来看,迄今为止,提出的优化算法已经有130种左右。
目前他们还看不出来区别,但在测试结果中可以发现,这些优化器明显能被分成两类,一种适用于VAE(变分自编码器),另一种则不适用于VAE。
而从这些优化器中的常用参数来看,α0表示初始学习率,αlo和αup代表上下界,∆t表示切换衰减样式的周期,k表示衰减因子。
可以看出,这些学习率的参数主要可以被分为常数、梯度下降、平滑下降、周期性、预热、超收敛等几种。
那么,130多种优化器,哪种才是最适用的?而对这些参数进行调整,到底能对优化器起到多大的作用?
用基准测试方法来测测,就知道了。
8种基准测试方法
如下图,作者提出了8种优化任务,在这些任务上面进行测试,以得到对比结果。
从图中看来,无论是数据集(MNIST、CIFAR-10等)、模型(VAE、CNN、RNN等),还是任务(分类、NLP等)和标准(损失率、精度)都不一样。
此外,batchsize也考虑在内(看来实验机器性能不错)。制作这些测试的目的在于,多角度考量出这些优化方法的合理性。
测试按照下图流程走,整体算下来,共有1344种配置,共运行接近35000次。
为了得知哪种优化方法更合适,这样做也是很拼了。
如何选择适合自己的优化方法?
那么,具体如何选择适合的优化方法呢?
下图是作者随机选取的14个优化器。
下图是这些优化器在上面8种基准测试下的表现结果。
其中,红色的I表示误差范围。可以看出,在一定误差范围内,某一类优化方法的性能几