どうもー、ちょげです。
ディープラーニングでは、重みパラメータを最適な値にして、損失関数を出来るだけ小さくするのが目標となります。
その目標のための方法の1つとして用いられるのが、確率勾配降下法です。
では、確率勾配降下法とは何なのでしょうか。
勾配降下法
まず、勾配降下法について説明します。
勾配降下法とは、次の3つのステップからなる学習方法です。
- 勾配を調べる
- パラメータを更新する
- 1と2を繰り返す
まず、勾配を調べます。
勾配を用いることによって、パラメータを良くする為の方向性が分かります。
調べた勾配を元にパラメータを更新します。
勾配を調べて、パラメータを更新するというのを繰り返して、パラメータを最適にするのが勾配降下法です。
ミニバッチ学習を取り入れる
勾配降下法にミニバッチ学習を取り入れます。
ミニバッチ学習とは、使用するデータから無作為にバッチという単位でデータを取り出して、バッチごとに学習するというものです。
ミニバッチ学習では、ランダムに取り出されたバッチごとに最適な値を探します。
勾配降下法にミニバッチ学習を取り入れたのを、「確率勾配降下法」と呼びます。
英語表記の略から「SGD」とも呼ばれます。
確率勾配降下法には、勾配降下法の3ステップの最初にランダムにバッチを取り出すというのが加わります。
まとめ
確率勾配降下法について解説しました。
確率勾配降下法は、ミニバッチ学習と勾配降下法を組み合わせたものです。
少しでも参考になれば嬉しいです。
参考
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。 ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。 ハイパーパ...
コメント