どうも、ちょげです。
ディープラーニングでは、ニューラルネットワークが学習する際にミニバッチ学習という手法を使います。
ミニバッチ学習によって、学習にかかるコストを減らすことが出来ます。
では、ミニバッチ学習とはどのようなものなのでしょうか。
データを小分けにする
ミニバッチ学習とは、学習に使うデータを小分けにして学習させる方法です。
イメージとしては、大きな荷物を小分けの段ボールに詰めて運ぶような感じです。
具体的な例としては、100個のデータがあるとします。
そのデータを10個ずつのグループに分けて、10個単位で学習させていくのがミニバッチ学習です。
この時のグループを「バッチ」と言います。
ミニバッチ学習のメリット
では、何故わざわざ小分けにするのでしょうか。
その理由は、損失関数の計算量を減らせるという点にあります。
損失関数とは、ニューラルネットワークが学習する際に必要となる指標です。
ニューラルネットワークはデータを学習するたびに損失関数を求めます。
100個のデータを1つずつ学習していくなら、損失関数は100回計算されます。
100個ならまだいいのですが、膨大なデータ量になると計算量はとんでもないことになります。
ここでミニバッチ学習を使えば、損失関数をバッチごとに計算することが出来て、結果的に計算の回数を減らすことが出来るのです。
そして、計算の量が減れば学習にかかる時間も短くなります。
まとめ
今回はミニバッチ学習について解説しました。
ミニバッチ学習はデータを小分けにして学習する方法です。
ミニバッチ学習をすることによって、学習にかかるコストが減らせるわけです。
参考にした本

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播...
コメント