[ディープラーニング]ミニバッチ学習とは

どうも、ちょげです。

ディープラーニングでは、ニューラルネットワークが学習する際にミニバッチ学習という手法を使います。

ミニバッチ学習によって、学習にかかるコストを減らすことが出来ます。

では、ミニバッチ学習とはどのようなものなのでしょうか。

スポンサーリンク

データを小分けにする

ミニバッチ学習とは、学習に使うデータを小分けにして学習させる方法です。

イメージとしては、大きな荷物を小分けの段ボールに詰めて運ぶような感じです。

具体的な例としては、100個のデータがあるとします。

そのデータを10個ずつのグループに分けて、10個単位で学習させていくのがミニバッチ学習です。

この時のグループを「バッチ」と言います。

ミニバッチ学習のメリット

では、何故わざわざ小分けにするのでしょうか。

その理由は、損失関数の計算量を減らせるという点にあります。

損失関数とは、ニューラルネットワークが学習する際に必要となる指標です。

ニューラルネットワークはデータを学習するたびに損失関数を求めます。

100個のデータを1つずつ学習していくなら、損失関数は100回計算されます。

100個ならまだいいのですが、膨大なデータ量になると計算量はとんでもないことになります。

ここでミニバッチ学習を使えば、損失関数をバッチごとに計算することが出来て、結果的に計算の回数を減らすことが出来るのです。

そして、計算の量が減れば学習にかかる時間も短くなります。

まとめ

今回はミニバッチ学習について解説しました。

ミニバッチ学習はデータを小分けにして学習する方法です。

ミニバッチ学習をすることによって、学習にかかるコストが減らせるわけです。

参考にした本

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 | 斎藤 康毅 |本 | 通販 | Amazon
Amazonで斎藤 康毅のゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装。アマゾンならポイント還元本が多数。斎藤 康毅作品ほか、お急ぎ便対象商品は当日お届けも可能。またゼロから作るDeep Lea...

コメント

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