読み方 : ミニバッチがくしゅう
ミニバッチ学習【mini-batch learning】
概要

機械学習では、モデルによる予測と正解の隔たりである誤差関数が小さくなるように、訓練データから求めた値に基づいてモデル内部のパラメータ更新を行う。ミニバッチ学習では、用意されたデータセットを複数の「ミニバッチ」という単位に分割し、この単位ごとに誤差関数の勾配(修正すべき方向を示す値)を求め、パラメータの更新を行う。
一度にすべてのデータを用いる手法を「バッチ学習」、ランダムに一つを選んで用いる手法を「オンライン学習」というが、ミニバッチ学習は両者の中間的な手法である。毎回の更新に少数のミニバッチを用いるため、データセットが大きい場合でもバッチ学習のように巨大な計算資源が不要で高速に計算を行うことができる。一方、複数のデータを用いて計算を行うため、オンライン学習のようにデータごとのばらつきの影響を受けにくく、学習を安定させやすい。
機械学習では、データセット全体を一回通して学習すること(およびその回数)を「エポック」(epoch)と呼び、エポックの中でパラメータ更新を行う回数を「イテレーション」(iteration)という。1024個のデータセットを用いる場合、バッチ学習では1エポック1イテレーション、オンライン学習では1エポック1024イテレーションだが、ミニバッチ学習ではバッチサイズによってイテレーション数が異なる。16個ずつ更新するなら1エポック64イテレーション、32個ずつなら32イテレーションとなる。バッチサイズは任意に指定できるが、GPUなどの計算効率から2の冪乗(2,4,8,16,32…)が選ばれることが多い。
(2025.12.3更新)