機械学習ではパラメータの調整が大事ですよね。機械学習のパラメータ更新方法は大きく「バッチ学習」、「ミニバッチ学習」、「オンライン学習」に分類でき、この3手法はそれぞれパラメータを更新するタイミング、もしくは1度の更新に用いるデータ数が異なります。
本記事ではその3手法の違いをわかりやすく解説していきましょう。
バッチ学習、オンライン学習とは
ミニバッチ学習はバッチ学習とオンライン学習の中間の手法です。そのためバッチ学習とオンライン学習を理解するとよりミニバッチ学習に対する理解が深まるため、まずはバッチ学習とミニバッチ学習を先に解説していきましょう。
バッチ学習
バッチ学習とは学習に用いるデータ全てで勾配を計算した後にモデルのパラメータを更新します。バッチ学習は別名最急降下法とも呼ばれ、全てのデータで計算をした後に重みを更新するバッチ学習には、以下のような特徴があります。
- 全てのデータを利用するため、学習の進行が安定しやすい。
- 全データをまとめて計算するため、計算速度が比較的早い。
- 全データを利用するので使用するメモリ量が大きくなる。
オンライン学習
オンライン学習とは学習データ1つごとにモデルのパラメータを更新する手法です。オンライン学習は別名確率的勾配降下法とも呼ばれ、以下のような特徴があります。
- 1データごとにパラメータを更新するため、学習が安定しにくい。
- データをまとめて計算しないため、計算速度が上がりにくい。
- 1度に利用するデータ量が1つであるため、使用するメモリ量は少ない。
ミニバッチ学習
ミニバッチ学習は先ほど説明した「バッチ学習」と「オンライン学習」の中間のような手法です。
一度のパラメータを更新に用いるデータの数はバッチサイズと呼ばれる人手で設定するハイパーパラメータによって決定します。バッチサイズは1より大きく、全データ数より小さい値の中から決定されます。バッチサイズ分のデータで重みを更新するため、ミニバッチ学習には以下のような特徴があります。
- オンライン学習より学習が安定しやすく、バッチ学習より安定しにくい。
- オンライン学習よりも計算速度が早く、バッチ学習よりも遅い。
- オンライン学習よりもメモリ使用量が多く、バッチ学習よりも少ない。
まとめ
ミニバッチ学習について重要な点をまとめましょう。
- 機械学習のパラメータ更新手法のひとつ
- バッチ学習とオンライン学習の中間に位置する手法
- 深層学習では多くの場合ミニバッチ学習が利用される
以上、ご覧いただきありがとうございました。