深層学習の最適化

深層学習の最適化

執筆済 AI深層学習最適化

勾配に基づく最適化を、 深層学習という条件のもとで見たもの。

条件#

条件 影響
パラメータ 1061012 ヘッセ行列が持てない。二階手法が不可
非凸 局所解・鞍点が多数
確率的 ミニバッチによるノイズ
勾配が安価 逆伝播で全勾配が一度に得られる

最後の条件が決定的で、 勾配が安いなら一階法を大量に回すのが最適という結論になる。

鞍点が主敵#

高次元では、停留点のほとんどが鞍点になる。 n 個の固有値がすべて同符号になる確率は 2n 程度。

局所解より鞍点が学習を止めるというのが Dauphin らの主張で、SGD のノイズが 鞍点脱出に効くと考えられている。

使われる手法#

手法 位置づけ
SGD + モメンタム 画像系で今も強い。汎化が良いという報告
Adam / AdamW Transformer 系の標準
LAMB、Adafactor 大規模バッチ、メモリ節約

Adam が常に良いわけではない。 画像分類では SGD + モメンタムの方が 最終的な汎化性能が良いという報告が複数ある。

バッチサイズ#

大きくすると

  • GPU の並列性を活かせる(速い)
  • 勾配のノイズが減る → 汎化が悪化する傾向

線形スケーリング則(バッチを k 倍したら学習率も k 倍)と ウォームアップの併用が実務的な対処。

参考文献#

ノート一覧を閉じる