確率的勾配法あれこれまとめ
Kerasで選択できる最適化アルゴリズムそれぞれの違いと使い所がいまいちわからんかったので調べてみた。
Incorporating Nesterov Momentum into Adamがアルゴリズムを整理してくれているので理解しやすかった。
とりあえずざっくりと俯瞰した感じだと、いかに効率良く傾斜を降下していくかという課題を解決するっていう大枠からはみ出るものはない。そんで、構築しているモデルの種類やサイズによってベストなアルゴリズムは変わってくるので、突き詰めるのであれば要実験。ただ、上記論文は、NadamかRSMProp使っときゃいいんじゃないっすか、みたいなこと言ってる。なんにしろ2000年代後半以降で進化が進んでいる分野であり、今後もアップデートがあるだろうから追っていきたい。
SGD
まずはオーソドックスな勾配法。
後述するMomentum法や、NAGもKerasの中ではSGDメソッドの中でサポートされている。
Mpomentum
勾配に加えてMomentumベクトルを加えてパラメータを更新する。
Nesterov's accelerated gradient(NAG)
Momuentum法に対して、勾配計算の段階ですでにMomentumを考慮することで、現在のパラメータではなく、次のパラメーターの推定値について計算することで効率よく予測するアルゴリズム。
AdaGrad
それぞれ個別のパラメータに対して異なる学習率を適用するアルゴリズム。
学習率の補正にそれまでのパラメータ[\theta_i]の勾配の二乗和を用いるのでL2ノルムベースのアルゴリズムと分類される。
ここではさきのそれぞれのパラメータの勾配の二乗和のタイムステップまでのベクトル
RSMProp
これもL2ノルムベース。前述の[n]に対して、勾配の二乗の減衰平均_t]を用いる。AdaGradで大きくなりすぎる[n]ことが問題だったがこれで解消。
Adam
Momentum法とRMSPropを組み合わせたもの。
勾配の1乗と勾配の2乗、両方使えばいいじゃん的な。
AdaMax
AdamのL2ノルムを拡張し無限にするとよりシンプルなアルゴリズムとなる、らしい。
Nadam
Adamと違ってNAGとRMSPropを組み合わせたもの。
参考
- 作者: 海野裕也,岡野原大輔,得居誠也,徳永拓之
- 出版社/メーカー: 講談社
- 発売日: 2015/04/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
勾配降下法の最適化アルゴリズム