1行定義
Adamとは、モーメンタムとRMSpropの考え方を組み合わせ、パラメータごとに更新の大きさを自動で調整する勾配降下法の一種のことです。
くわしく
Adamは、ディープラーニングで広く使われている最適化手法です。名前はadaptive moment estimation(適応的モーメント推定)に由来し、2014年にKingmaとBaが発表しました。
何を改善したのか
基本の確率的勾配降下法(SGD)は、すべてのパラメータに同じ学習率を使い、その時点の勾配だけを見て重みを動かします。そのため、細長い谷のような地形ではジグザグに進みがちです。
2つの移動平均
Adamは、勾配について2種類の移動平均を記録します。
- 勾配の移動平均(1次モーメント):これまでの進む向きを覚えておき、向きのぶれを抑えます。モーメンタムと同じ考え方です。
- 勾配の2乗の移動平均(2次モーメント):パラメータごとに、勾配が大きかったものほど歩幅を小さくします。RMSpropと同じ考え方です。
更新式はθ ← θ − α・m̂ / (√v̂ + ε)です。m̂が1次、v̂が2次の移動平均です。どちらも初期値が0なので学習の初めは0の側に偏り、これをバイアス補正で打ち消します。論文ではα = 0.001、β1 = 0.9、β2 = 0.999が既定値として示されています。
ほかの手法との関係
AdaGradは過去の勾配の2乗を足し続けるため、学習が進むと歩幅が小さくなりすぎます。RMSpropやAdaDeltaは、古い勾配の影響を徐々に薄める移動平均でこれを和らげました。Adamは、この考え方にモーメンタムを組み合わせた手法です。
Adamは学習の序盤で誤差が速く下がりやすい一方、汎化性能ではSGDに及ばない場合があると指摘されています。そこで2019年に、学習率に上限と下限を設けて徐々にSGDへ近づけるAdaBoundと、同じ考え方をAMSGradに適用したAMSBoundが提案されました。
覚え方
「Adam=モーメンタム(向き)+RMSprop(歩幅)」と覚えます。
G検定での出題
出題のされ方
モーメンタム・AdaGrad・RMSpropとの関係を問う形や、最適化手法の名前と特徴を対応させる形で出題されます。改良版のAdaBound・AMSBoundとの区別も問われます。
混同しやすい用語
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
Adamでは、勾配の2乗の移動平均が大きいパラメータほど、実質的な学習率(歩幅)が小さくなる。
答えを見る
答え ◯ 正しい
更新量は、勾配の移動平均を勾配の2乗の移動平均の平方根で割って求めます。勾配が大きく揺れるパラメータほど、慎重に小さく動かします。
-
Adamを使えば、学習率などのハイパーパラメータを設定する必要はなくなる。
答えを見る
答え × 誤り
Adamにも学習率αや減衰率β1・β2などのハイパーパラメータがあります。既定値のままでも動きやすいだけで、設定が不要になるわけではありません。
-
Adamがバイアス補正を行うのは、移動平均の初期値を0にしているため、学習の初めの推定値が0の側に偏るからである。
答えを見る
答え ◯ 正しい
序盤の移動平均は0から少ししか動いておらず、本来の値より小さく見積もられます。補正でこの偏りを打ち消し、序盤から適切な大きさで更新します。