4-4 最適化手法
みかん
今回はG検定の第4章「ディープラーニングの概要」の4節「最適化手法」を解説します
1. 勾配降下法
みかん
モデルの学習とは誤差関数の最小化を目指すことでした。実際のモデルの学習では解析的に解を求めるのではなく、アルゴリズムを用いて最適解を探索します。これを勾配降下法と呼びます。
勾配降下法
勾配降下法 = 勾配(接線の傾き)に沿って降りていくことで誤差関数の最小値を探索する手法。微分値を用いる。
みかん
勾配降下法の更新式を何回繰り返し計算したかをイテレーションと呼びます。一度だけ式を計算すれば良いわけではなく、最適解に行き着くまで何度も計算を繰り返します。
みかん
更新式に含まれるαは学習率と呼ばれるハイパーパラメータで、「勾配に沿って一度にどれだけ降りていくか」を決めるものです。
あいで
坂道を下っていくイメージですね。学習率が大きいと大股で、小さいと小股で下っていく感じですか。
2. バッチ勾配降下法
みかん
全データの予測誤差の総和を用いて更新式を計算する方法をバッチ勾配降下法と言います。バッチとはデータの固まりのことで、バッチ学習や最急降下法とも呼ばれます。
バッチ勾配降下法
バッチ勾配降下法 = 全訓練データの誤差の総和を用いて更新式を計算。バッチ学習・最急降下法とも呼ばれる。
3. 確率的勾配降下法
みかん
バッチ勾配降下法ではデータ数が大きいとメモリが足りなくなる問題があります。そこで、データをランダムに1つ抽出し、そのデータの予測誤差だけで更新式を計算するのが確率的勾配降下法です。オンライン学習とも呼びます。
確率的勾配降下法
確率的勾配降下法(SGD) = データを1つずつランダムに抽出して更新式を計算。オンライン学習とも呼ばれる。
みかん
全データを用いる回数をエポックと呼び、イテレーションと区別します。オンライン学習では1エポック=データ数分のイテレーションになります。
4. ミニバッチ勾配降下法
みかん
バッチ勾配降下法と確率的勾配降下法の中間をとったのがミニバッチ勾配降下法です。全データをいくつかの小さいデータセット(ミニバッチ)に分割し、各ミニバッチごとに更新計算を行います。
ミニバッチ勾配降下法
ミニバッチ勾配降下法 = データをミニバッチ(小さなデータセット)に分割して更新。実用上最もよく使われる手法。ミニバッチ学習とも呼ぶ。
みかん
各データセット内のデータ数のことをバッチサイズと言います。バッチサイズやエポックはハイパーパラメータになります。
あいで
3つの勾配降下法を整理すると、バッチは全データ、確率的は1個ずつ、ミニバッチはその中間ということですね。
5. 勾配降下法の問題と改善
5.1 学習率の調整
みかん
勾配降下法には「局所最適解」に陥る問題があります。見せかけの最適解で、本当の最適解(大域最適解)を見抜くことができません。
局所最適解と大域最適解
局所最適解 = 見せかけの最適解。大域最適解 = 本当の最適解。勾配降下法は局所最適解に陥る可能性が高い。
みかん
また、鞍点という問題もあります。ある次元から見れば極小、別の次元から見ると極大になっている点で、停留状態(プラトー)に陥りやすいです。
みかん
学習率を大きくすれば局所最適解を乗り越えられる可能性がありますが、大きすぎると最適解を飛び越えてしまいます。適切なタイミングで学習率の値を小さくしていく必要があります。
5.2 モメンタムと改善手法
みかん
モメンタムは、物理でいう慣性の考え方を適用した手法です。最適化の進行方向に学習を加速させることで、学習の停滞を防ぎます。
みかん
モメンタムをベースに、さらに効率的な手法が次々と提案されました。Adagrad、Adadelta、RMSprop、Adam、AdaBound、AMSBoundなどがあります。
5.3 早期終了(early stopping)
みかん
早期終了は、学習を早めに打ち切る手法です。テストデータに対する誤差関数の値が上がり始めたら過学習の始まりと考え、学習を止めます。
早期終了
早期終了(early stopping) = テストデータの誤差が上がり始めたタイミングで学習を打ち切る。シンプルだが効果的な手法。
みかん
ちなみにearly stoppingについて、ジェフリー・ヒントンは「Beautiful FREE LUNCH」と表現しています。これはノーフリーランチ定理(あらゆる問題で性能の良い汎用最適化戦略は理論上不可能)を意識した言葉です。
みかん
ただし最近の研究では、一度テストデータの誤差が増えた後に再度減少するという二重降下現象も確認されており、早期終了のタイミングは慎重に検討する必要があります。
6. ハイパーパラメータの探索
みかん
ハイパーパラメータは自分で設定しなければなりません。その探索手法の代表例としてグリッドサーチとランダムサーチがあります。
みかん
他にもベイズ最適化や遺伝的アルゴリズムを用いた手法もありますが、探索に時間がかかるという課題があります。
あいで
ハイパーパラメータの設定にも色々なアプローチがあるんですね。実務ではグリッドサーチやランダムサーチがよく使われるんですか。
まとめ
みかん
1つ目、勾配降下法は勾配に沿って降りて最適解を探索。学習率とイテレーションが重要。
みかん
2つ目、バッチ・確率的・ミニバッチの3種類の勾配降下法があり、ミニバッチが実用上最もよく使われる。
みかん
3つ目、局所最適解・鞍点・プラトーの問題に対し、モメンタムやAdam等の改善手法が提案されている。
みかん
4つ目、早期終了はテスト誤差が上がり始めたら学習を止める手法。ハイパーパラメータ探索にはグリッドサーチやランダムサーチ。
みかん
ということで今回は最適化手法について解説しました
あいで
このチャンネルでは情報に関することを発信しています。
あいで
よければチャンネル登録、高評価よろしくお願い致します。