Optimizerはどれが優れているか(ON EMPIRICAL COMPARISONS OF OPTIMIZERS FOR DEEP LEARNINGの紹介)

Akihiro FUJII
7 min readOct 25, 2019

--

この記事の概要

この記事は2019/10/11にDami Choi等がArxivに投稿した”ON EMPIRICAL COMPARISONS OF OPTIMIZERS FOR DEEP LEARNING ”という論文の紹介/解説記事です。この論文の要旨をまとめると下記のようになります。

  • SGD, Momentum,RMSProp, Adam,NAdam等の中から、どの最適化手法(Optimizer)が優れているかを画像分類と言語モデルにおいて比較した研究
  • 各Optimizerは以下の包含関係にあり、より汎用的なAdam, NAdam, RMSPropは、各Optimizerの特殊な場合であるSGDやMomentumに負けない
  • 実際に実験すると(メタパラメータをチューニングすれば)NAdam, Adam等が良かった。よって計算資源があれば、実務上はNAdam, Adam等で全メタパラメータをチューニングするのが良い。
  • 無視されがちなAdamのepsが割と大きな影響を及ぼすのでチューニング対象にした方がよい(最適epsはタスクによる)

最適手法はどれを使えば良いのか?問題

どの最適化手法を選択すれば良いのか、というのは研究においても実務においても重要な課題です。しかし、どの最適化手法がベストかというのは2019年10月時点では定まっていないように思えます。実際、色々な論文を見ていても、使っている最適化手法が論文によって異なっているというのが現状です。

今回紹介する”ON EMPIRICAL COMPARISONS OF OPTIMIZERS FOR DEEP LEARNING”という研究は、色々なOptimizerの性能比較した研究です。

SGDはMomentumやAdam、RMSPropの特別な場合と考えることができる

この論文では、最適化アルゴリズムは下記のような包含関係にあり、それが性能と関係していると主張しています。簡単に言うと『Adamの特別な場合がSGDなので、より汎用的なアルゴリズムであるAdamはSGDより劣らない』という主張です。

この章では、この概念を簡単に解説します。

各アルゴリズムの概要

本論文の実験で使われるOptimizerのアルゴリズムは下記の通りです。

SGDは一番基本的なOptimizerで、ロスの勾配にηかけた分だけモデルのパラメータθを更新するというアルゴリズムです。MomentumはSGDを少し改善し、累計損失を考慮できるようにした手法です。RMSPropはパラメータρによって直近の勾配を考慮できるような仕組みになっています。

Adam, NAdamはAdaptive gradient methodと呼ばれる手法です。主な特徴は、ステップ数tが小さい時のm,vの初期値の影響をβの導入で緩和している点です。

最適化アルゴリズムの包含関係

この論文で主張している包含関係のいくつかを説明します。

まず、SGDとMomentumの関係ですが、SGDはMomentumのγが0の場合であるので、Momentumの特別な場合がSGDであると言えます。

AdamとMomentumの包含関係は少々複雑ですが、下図のようにεが非常に大きい場合のAdam≒Momentumと考えることができ、Adamの特別な場合がMomentumだと考えることができます。

その他の包含関係は原論文[1]のAppendix2を参照してください。

実験

実験設定は下記の通りです。画像分類と言語モデルにおいて、様々なネットワークを使ってOptimizerの性能を確かめています。

実験結果1:[性能は包含関係と一貫している]

まず、パラメータチューニング完了後の各Optimizerの性能を確認します。Fashion MNISTやCIFAR10はあまり差が見られません。しかし、ImageNet, LM1Bにおける精度(Figure1)では明らかにNAdam, Adamが優れており、”Adam⊃Momentum⊃SGD”等の包含関係と一貫した結果になっています。

目標精度に達するステップ数(Figure2)においても、同じことが言えます。

実験結果2:メタパラメータが多いAdam, RMSPropはパタメータ探索をしないとSGDに負ける

しかし、AdamやRMSPropは、それらの特殊な場合であるSGDやMomentumに比べると調整すべきメタパラメータが多いという問題があります。それらの調整を怠ると、SGDやMomentumより性能が劣った結果になってしまいます。

ここで重要なのが、Adamは学習率を調整しただけでは最高性能を出せず、普段無視されがちなεやβ等の調整が大きな影響を及ぼしている点です。下表はImageNetをResNet-50で学習させた場合のAdam, NAdamのパラメータ探索範囲です。特にεは広い探索範囲で調整しないと最高性能を出せなかったことが伺えます。

まとめ

今回の記事では、”ON EMPIRICAL COMPARISONS OF OPTIMIZERS FOR DEEP LEARNING”の内容を紹介しました。『包含関係にあるから、より汎用的なOptimizer』が良いという理屈は納得できるものですが、実際に多数のパラメータを最適化するのは簡単なのだろうか、というのが個人的な感想です。

最近はパラメータチューニングツールが多く出ているので、それを使ってNAdamのパラメータをチューニングさせて1日待つというのが良いのかもしれません。

Reference

  1. Dami Choi et al. ON EMPIRICAL COMPARISONS OF OPTIMIZERS FOR DEEP LEARNING. arXiv:1910.05446, 2019

--

--

No responses yet