Adam

Adam

執筆済 最適化勾配法Adam

成分ごとに学習率を自動調整する確率的最適化。 Kingma と Ba が 2014 年に提案し、深層学習の既定手法として広く使われている。

更新式#

一次モーメント(勾配の平均)と二次モーメント(勾配の二乗平均)を それぞれ指数移動平均で持つ。

mk=β1mk1+(1β1)gk,vk=β2vk1+(1β2)gk2 mˆk=mk1β1k,vˆk=vk1β2k xk+1=xkηmˆkvˆk+ϵ

既定値は β1=0.9β2=0.999ϵ=108

3 つの工夫#

  1. mモメンタム — 方向を安定させる
  2. v で割る — 勾配が大きい成分は小さく、小さい成分は大きく動かす。 成分ごとのスケール差を吸収する
  3. バイアス補正m0=v0=0 から始めるため初期は 0 に偏る。 1βk で割って補正する

弱点#

Reddi らは、Adam が収束しない凸問題の反例を構成した。 二次モーメントの指数移動平均が、大きいが稀な勾配を忘れてしまうのが原因。 AMSGrad はこれを vˆ の最大値を保つことで修正する。

また、重み減衰を勾配に足す実装では v で割られてしまい 本来の L2 正則化にならない。これを分離したのが AdamW で、 現在は多くの実装でこちらが既定になっている。

参考文献#

ノート一覧を閉じる