ディープラーニング機械学習

バッチサイズ

ばっちさいず · batch size
4 views

バッチサイズとは、ディープラーニングなどの機械学習において、モデルのパラメータを1回更新するために使用する訓練データのサンプル数のことです。データセット全体を一度に処理するのではなく、小さなグループに分割して学習を進めることで、メモリの消費量を抑えつつ、効率的かつ安定した学習を実現する重要なハイパーパラメータです。

バッチサイズとは

バッチサイズとは、機械学習の訓練において、1回のパラメータ更新(ステップ)の計算に用いるデータの件数のことです。

詳しく解説

ニューラルネットワークの学習では、勾配降下法を用いてモデルの重み(パラメータ)を更新します。全ての訓練データを一度に処理する「バッチ学習」は計算コストが高く、メモリ不足を引き起こします。一方、1データごとに更新する「確率的勾配降下法」は計算が不安定になります。そこで、データをいくつかの塊に分割して処理するミニバッチ学習が広く採用されています。この分割された1グループあたりのデータ数がバッチサイズです。バッチサイズは学習の速度、メモリ消費量、そして最終的なモデルの予測精度に直接影響を与えるため、適切な値を設定することが極めて重要です。

具体例・使われ方

例えば、10,000枚の画像データからなるデータセットを用いて画像認識モデルを訓練する場合を考えます。バッチサイズを32に設定すると、モデルは32枚の画像を1つのグループとして処理し、その損失から勾配を計算してパラメータを1回更新します。この処理を約312回繰り返すことで、データセット全体を1周(1エポック)学習したことになります。バッチサイズは一般的に、コンピュータのメモリ効率やGPUの仕様を考慮して、32、64、128、256などの2の累乗数に設定されます。

似た用語との違い

混同されやすい概念にエポック数イテレーション数があります。エポック数は、訓練データ全体を何回繰り返し学習に用いるかを表す単位です。イテレーション数は、バッチサイズごとにデータを処理してパラメータを更新した総回数を指します。例えば、1,000個のデータに対してバッチサイズを100とした場合、1エポックあたりのイテレーション数は10回となります。これらは互いに関連していますが、示す意味が異なります。

注意点

バッチサイズを大きくしすぎると、1回の計算に必要なメモリ(特にGPUメモリ)が増大し、メモリ不足エラーを引き起こします。また、極端に大きなバッチサイズは、モデルが訓練データに過剰に適合し、未知のデータに対する性能である汎化性能が低下する「汎化ギャップ」を招くことが知られています。逆にバッチサイズが小さすぎると、計算のノイズが大きくなり学習が不安定になるほか、GPUの並列処理能力を十分に活かせず、学習時間が長期化する原因になります。

更新日時: 2026年8月28日 19:21