どうも、ちょげです。
ディープラーニングでは、ニューラルネットワークが学習する際にミニバッチ学習という手法を使います。
ミニバッチ学習によって、学習にかかるコストを減らすことが出来ます。
では、ミニバッチ学習とはどのようなものなのでしょうか。
データを小分けにする

ミニバッチ学習とは、学習に使うデータを小分けにして学習させる方法です。
イメージとしては、大きな荷物を小分けの段ボールに詰めて運ぶような感じです。
具体的な例としては、100個のデータがあるとします。
そのデータを10個ずつのグループに分けて、10個単位で学習させていくのがミニバッチ学習です。
この時のグループを「バッチ」と言います。
ミニバッチ学習のメリット
では、何故わざわざ小分けにするのでしょうか。
その理由は、損失関数の計算量を減らせるという点にあります。
損失関数とは、ニューラルネットワークが学習する際に必要となる指標です。
ニューラルネットワークはデータを学習するたびに損失関数を求めます。
100個のデータを1つずつ学習していくなら、損失関数は100回計算されます。
100個ならまだいいのですが、膨大なデータ量になると計算量はとんでもないことになります。
ここでミニバッチ学習を使えば、損失関数をバッチごとに計算することが出来て、結果的に計算の回数を減らすことが出来るのです。
そして、計算の量が減れば学習にかかる時間も短くなります。
まとめ
今回はミニバッチ学習について解説しました。
ミニバッチ学習はデータを小分けにして学習する方法です。
ミニバッチ学習をすることによって、学習にかかるコストが減らせるわけです。
参考にした本
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 | 斎藤 康毅 |本 | 通販 | Amazon
Amazonで斎藤 康毅のゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装。アマゾンならポイント還元本が多数。斎藤 康毅作品ほか、お急ぎ便対象商品は当日お届けも可能。またゼロから作るDeep Lea...
コメント