深層学習の最適化
勾配に基づく最適化を、 深層学習という条件のもとで見たもの。
条件#
| 条件 | 影響 |
|---|---|
| パラメータ | ヘッセ行列が持てない。二階手法が不可 |
| 非凸 | 局所解・鞍点が多数 |
| 確率的 | ミニバッチによるノイズ |
| 勾配が安価 | 逆伝播で全勾配が一度に得られる |
最後の条件が決定的で、 勾配が安いなら一階法を大量に回すのが最適という結論になる。
鞍点が主敵#
高次元では、停留点のほとんどが鞍点になる。 個の固有値がすべて同符号になる確率は 程度。
局所解より鞍点が学習を止めるというのが Dauphin らの主張で、SGD のノイズが 鞍点脱出に効くと考えられている。
使われる手法#
| 手法 | 位置づけ |
|---|---|
| SGD + モメンタム | 画像系で今も強い。汎化が良いという報告 |
| Adam / AdamW | Transformer 系の標準 |
| LAMB、Adafactor | 大規模バッチ、メモリ節約 |
Adam が常に良いわけではない。 画像分類では SGD + モメンタムの方が 最終的な汎化性能が良いという報告が複数ある。
バッチサイズ#
大きくすると
- GPU の並列性を活かせる(速い)
- 勾配のノイズが減る → 汎化が悪化する傾向
線形スケーリング則(バッチを 倍したら学習率も 倍)と ウォームアップの併用が実務的な対処。
参考文献#
- Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning. MIT Press, 2016.(全文公開) https://www.deeplearningbook.org/
- Yann N. Dauphin et al. Identifying and attacking the saddle point problem in high-dimensional non-convex optimization. NeurIPS, 2014. https://arxiv.org/abs/1406.2572
- Priya Goyal et al. Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour. 2017. https://arxiv.org/abs/1706.02677