勾配降下法とは?分かりやすく図解で解説

スポンサーリンク
勾配降下法とはディープラーニング
この記事を読んで分かること
  • 勾配降下法とはなにか?
  • バッチ勾配降下法(最急降下法)、SGD(確率的勾配降下法)、ミニバッチ勾配降下法の違い

勾配降下法とは?

勾配降下法とは、

関数の傾きを元に最小値を探す手法
です。
下の図のように、今いる点のグラフの傾きを見て、下っている方向を探索する手法になります。
勾配降下法
グラフを見ればどこが最小値かなんてひと目で分かると思ってしまいますが、データの量が多いと全体を把握できません。
一部のデータだけで最小値を見つけるように考えられた方法となります。
例えば、ディープラーニングでは、誤差が最小値となる重み(パラメータ)を探すために使われています。

勾配降下法の種類

勾配降下法は、利用するデータの量によって3種類に分けられます。

  • バッチ勾配降下法(最急降下法)
  • SGD(確率的勾配降下法)
  • ミニバッチ勾配降下法

バッチ勾配降下法(最急降下法)

バッチ勾配降下法では、全データを使って関数の最小値を探索します。

つまり全てのデータの平均のデータに対して勾配降下法を使うイメージになります。

バッチ勾配降下法

そのため、すべてのデータの勾配を計算して覚えておく必要があるので、計算時間もメモリの消費も大きくなる手法です。

メリットは以下のことが考えられます。

  • 全てのデータを使うので、結果が安定する
  • 解への到達が早いことが多い

デメリットとしては以下のことが考えられます。

  • 計算量が多くなる(計算に時間がかかる)
  • メモリの消費量が多い
  • 局所解にハマりやすい

 

SGD(確率的勾配降下法)

SGD(確率的勾配降下法)では、ランダムに抽出した1つのデータを使って関数の最小値を探索します。

確率的勾配降下法

 

メリットは以下のことが考えられます。

  • メモリの使用量が少ない
  • オンライン学習が可能
    (途中でデータを追加できる)
  • 選ぶデータによって局所解を回避できる可能性がある

デメリットとしては以下のことが考えられます。

  • 解への到達が遅いことがある
  • 外れ値の影響を大きく受ける

ミニバッチ勾配降下法

ミニバッチ勾配降下法は、SGDとバッチ勾配降下法の間をとった方法になります。

データの一部を利用して、関数の最小値を探索します。

ミニバッチ勾配降下法

特徴としては、SGDとバッチ勾配降下法のハイブリッドであるので、それぞれの良い点と悪い点の両方を持っています。

そのため、バランスの良い手法と言えます。

特徴のまとめ

手法利用データ計算時間メリットデメリット
バッチ勾配降下法
(最急降下法)
全てのデータを利用・解への到達が早いことが多い
・結果が安定する
・メモリの使用量が多い
・局所解にハマりやすい
SGD
(確率的勾配降下法)
1つのデータを利用・メモリの使用量が少ない
・オンライン学習が可能
・局所解を回避できる可能性がある
・解への到達が遅いことがある
・外れ値の影響を大きく受ける
ミニバッチ勾配降下法一部のデータを利用バッチ勾配降下法とSGDのそれぞれのメリットがある。バッチ勾配降下法とSGDのそれぞれのデメリットがある。

まとめ

勾配降下法とは、関数の傾きを元に最小値を探す手法ということを説明しました。

ディープラーニングでもパラメータの調整で必ず利用する手法となります。

使うデータによって3つの手法がありますが、それぞれの特徴を踏まえて、データに合った手法を使っていきましょう。

参考文献

youtube 【深層学習】損失関数/勾配降下法|交差エントロピー誤差、ミニバッチ勾配降下法

コメント

  1. […] https://nisshingeppo.com/ai/gradient-descent/, 機械学習ナビ, […]

  2. […] 勾配法については、下記の記事がわかりやすいので、ぜひ見てください。【参考】勾配降下法とは?分かりやすく図解で解説(外部リンク) […]

  3. […] 勾配降下法とは?分かりやすく図解で解説 | 機械学習ナビ […]

  4. […] 勾配降下法とは?分かりやすく図解で解説 […]

タイトルとURLをコピーしました