12. 最適化アルゴリズム¶
ここまで本書を順に読み進めてきたなら、深層学習モデルを訓練するために、すでにいくつかの最適化アルゴリズムを使ってきたはずである。 それらは、モデルパラメータを継続的に更新し、訓練データセット上で評価した損失関数の値を最小化することを可能にしてくれた道具である。実際、最適化を単純な設定で目的関数を最小化するためのブラックボックス装置として扱うことに満足する人なら、「SGD」や「Adam」といった名前を持つ、そのような手続きの呪文のような一群が存在することを知っていれば十分だと思うかもしれない。
しかし、うまくやるには、もう少し深い知識が必要である。 最適化アルゴリズムは深層学習において重要である。 一方では、複雑な深層学習モデルの訓練には数時間、数日、あるいは数週間かかることがある。 最適化アルゴリズムの性能は、モデルの訓練効率に直接影響する。 他方では、さまざまな最適化アルゴリズムの原理と、それらのハイパーパラメータの役割を理解することで、 ハイパーパラメータを目的に応じて調整し、深層学習モデルの性能を改善できるようになる。
この章では、深層学習でよく使われる最適化アルゴリズムを詳しく見ていく。 深層学習で生じる最適化問題のほとんどは 非凸 である。 それでも、凸 問題の文脈でのアルゴリズムの設計と解析は、非常に示唆に富むことが分かっている。 そのため、この章では凸最適化の入門と、凸目的関数に対する非常に単純な確率的勾配降下法の証明も扱う。