Adamとは(アダム(最適化アルゴリズム))
Adamは、SGD(確率的勾配降下法)を土台に、Momentum(勾配の移動平均を使って更新方向を滑らかにする工夫)とRMSprop(パラメータごとに学習率を自動調整する工夫)という2つのアイデアを組み合わせた最適化アルゴリズムです。2015年に発表されて以降、深層学習のデフォルトの選択肢として広く使われています。
具体的には、各パラメータについて勾配の指数移動平均(1次モーメント、Momentumに相当)と、勾配の2乗の指数移動平均(2次モーメント、RMSpropに相当)の両方を保持し、これらを使って更新量を計算します。2次モーメントが大きい(勾配が乱高下しやすい)パラメータほど更新幅を抑え、小さいパラメータほど大きく更新することで、パラメータごとに適した学習率を自動的に実現しています。
多くの場面で安定して速く収束することから「基本的にはAdamを使っておけば間違いない」という通説がありますが、損失地形の形状によってはシンプルなMomentumの方が良い結果を出すこともあり、常にAdamが最善とは限りません。
