用語集

バッチサイズ

バッチサイズがディープラーニングに与える影響を発見。学習速度、メモリ使用量、モデル性能を効率的に最適化します。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

機械学習、特にディープラーニングモデルの学習において、バッチサイズとは、1回の反復で利用する学習例の数を指す。データセット全体を一度に処理することは計算上不可能であることが多いが、その代わりに、データを管理しやすい小さなグループやバッチに分割する。モデルのパラメータは各バッチの処理後に更新されるため、特にコンピュータビジョンで一般的な大規模データセットでは、学習がより効率的になる。

バッチサイズの重要性

適切なバッチサイズを選択することは、モデルの学習ダイナミクス、リソースの使用率、および最終的な性能に大きく影響する重要なハイパーパラメータである。

  • トレーニング速度:バッチサイズが大きいと、GPUのようなハードウェアに見られる並列処理能力をより有効に活用できるため、一般的にトレーニングエポックの高速化につながる。計算サイクルあたりにより多くのデータが処理される。
  • メモリ使用量:バッチサイズが大きくなると、メモリ消費量が増加します。バッチサイズは利用可能なハードウェアメモリ(GPU VRAMなど)内に収まる必要があります。この制限を超えると、エラーが発生したり、トレーニングが極端に遅くなったりします。一部のプラットフォームでは、メモリ使用量の最適化に関するガイダンスを提供しています。
  • モデルの性能と汎化:バッチサイズが小さいほど、確率的勾配降下法(SGD)のような手法により、トレーニング中の勾配推定に多くのノイズが導入される。このノイズは正則化の一種として機能し、モデルが損失ランドスケープにおける急激な極小値を回避し、未知のデータに対してより良く汎化し、オーバーフィッティングのリスクを低減するのに役立つ可能性がある。しかし、非常に小さなバッチは学習を不安定にする可能性がある。より大きなバッチは、より正確な勾配推定を提供するが、最適な極小値に収束しない可能性があり、安定性のために学習率のウォームアップのような技術を必要とする。

適切なバッチサイズの選択

最適なバッチサイズを選択するためには、計算効率、メモリ制約、モデルの汎化の間のトレードオフのバランスを取る必要がある。特定のデータセット、モデルのアーキテクチャ、利用可能なハードウェアに依存することが多い。

バッチサイズとその他の関連用語

バッチサイズを関連概念と区別することは重要だ:

  • 反復:モデルの重みの1回の更新を表す。標準的なトレーニングループでは、1回の反復は1バッチのデータを処理し、バックプロパゲーションを実行することに相当する。
  • エポック学習データセット全体を1回完全に通過することを表す。データセットが1000サンプルでバッチサイズが100の場合、1エポックを完了するには10回の反復が必要です(1000 / 100 = 10)。

実世界での応用

物体検出

で実行されるような物体検出タスクでは Ultralytics YOLOモデルで実行されるような物体検出タスクでは、バッチサイズは、トレーニング中に同時に処理される画像の数に直接影響します。例えば YOLOv8のようなモデルをVisDroneのようなデータセットでトレーニングする場合、バッチサイズを大きくする(32または64など)ことで、性能の高いハードウェアでエポックあたりのトレーニング時間を大幅に短縮できます。ただし、GPU メモリの慎重な監視が必要です。トレーニングは、Ultralytics HUBのようなプラットフォームを使って効率的に管理・追跡することができます。

画像分類

画像分類モデルをImageNetデータセットで学習する場合、バッチサイズは学習プロセスの安定性と収束に影響する。研究者はバッチサイズを256から開始し、損失関数の挙動と検証精度を観察して調整する。複雑なアーキテクチャーを持つモデルや、Google Colab環境のような限られたハードウェアリソースを使用する場合には、より小さなバッチが必要になるかもしれない。

すべて読む