バッチサイズ
Batch Size
ニューラルネット学習で、一度にまとめて処理するデータの件数。学習の速度・安定性・メモリ使用量に影響する。
バッチサイズとは
バッチサイズ(Batch Size)は、ニューラルネットの学習で、一度にまとめて処理するデータの件数です。10,000件のデータをバッチサイズ100で処理する場合、100件ずつ処理してパラメータを更新することを100回繰り返して1エポックとなります。
勾配降下法の文脈では、ミニバッチ勾配降下法の"ミニバッチ"の大きさに相当します。
大きさによる違い
- 大きいバッチ
- 学習が安定しやすい
- 1エポックあたりの処理は速い
- メモリ(GPU VRAM)を多く消費
- 小さいバッチ
- ノイズが入り、不安定になりやすいが局所解を抜けやすいメリットも
- メモリ消費が少ない
- 更新回数が多く、細かく調整される
学習率との関係
バッチサイズを大きくした場合、学習率も合わせて調整するのが一般的です。バッチが大きいほど勾配の推定が安定するため、学習率を少し大きくできる傾向があります。
実務での目安
- 32・64・128・256 あたりが実務でよく使われる
- GPUメモリの上限で事実上決まることが多い
- 大規模モデルでは勾配累積などで見かけ上のバッチサイズを上げる工夫もある
バッチサイズは学習の性能と計算コストのバランスを決める重要なハイパーパラメータです。
