用語集

バッチサイズ

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

バッチサイズは機械学習における基本的なハイパーパラメータであり、モデルの内部パラメータが更新される前に処理される訓練サンプルの数を定義する。訓練データセット全体を一度に処理することは計算上不可能であるが、その代わりに、データはより小さなサブセットまたは "バッチ "に分割される。バッチサイズの選択は、モデルの学習ダイナミクス、学習速度、最終的な性能に直接影響する重要な決定である。これは計算効率とモデルの重みを更新するための勾配推定の精度とのトレードオフを意味する。

モデル学習におけるバッチサイズの役割

学習中、ニューラルネットワーク(NN)は、その誤差に基づいて重みを調整することで学習する。この調整は、勾配降下のような最適化アルゴリズムによって導かれる。バッチサイズは、モデルが勾配を計算し、重みの更新を実行する前に「見る」例数を決定する。

  • 確率的勾配降下(SGD):バッチサイズが1の場合、このプロセスは確率的勾配降下と呼ばれる。勾配は個々のサンプルごとに計算され、頻繁に更新されるがノイズが多い。
  • バッチ勾配降下:バッチサイズがトレーニングデータセットの総サンプル数に等しい場合、バッチ勾配降下と呼ばれる。これは非常に正確な勾配推定を行うが、計算コストが高く、メモリを消費する。
  • ミニバッチ勾配降下法:これは最も一般的なアプローチで、バッチサイズは1から全データセットサイズ(例えば32、64、128)の間の値に設定される。バッチ勾配降下の安定性と確率的勾配降下の効率性のバランスをとることができる。

バッチサイズの選択は学習プロセスに大きく影響する。バッチサイズを大きくすると、より正確な勾配の推定が可能になるが、各更新の計算コストが高くなる。逆に、バッチサイズを小さくすると、勾配の推定精度は低下するが、より高速な更新が可能になる。

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

最適なバッチサイズを見つけることは、ハイパーパラメータチューニングの重要な部分であり、データセット、モデルアーキテクチャ、利用可能なハードウェアに依存する。

  • 大きなバッチサイズ:一度に多くのデータを処理することで、GPUの並列処理能力をフルに活用し、エポックあたりのトレーニング時間を短縮することができます。しかし、非常に大きなバッチは、モデルが訓練データではうまく機能するが、未知のデータではうまく機能しないという「汎化ギャップ」につながる場合があることが研究で示されています。また、大規模なメモリを必要とするため、制限要因になることもある。
  • 小さなバッチサイズ:勾配更新に含まれるノイズがモデルのローカル・ミニマムからの脱出を助け、よりロバストな解を見つけることができるからだ。これはオーバーフィッティングの防止に役立つ。主な欠点は、重みの更新がより頻繁になり、並列処理されるデータが少なくなるため、トレーニングが遅くなることです。

多くのアプリケーションでは、2のべき乗(32、64、128、256など)のバッチサイズがGPUメモリ・アーキテクチャによく適合するため推奨されます。Ultralytics HUBのようなツールを使用すると、モデルをトレーニングする際に異なるバッチサイズを簡単に試すことができます。

トレーニングにおけるバッチサイズと推論におけるバッチサイズ

バッチサイズはトレーニングの中核概念であるが、推論にも適用される。推論の際、バッチ処理は複数の入力(画像や文章など)を同時に処理し、スループットを最大化するために用いられる。これはしばしばバッチ推論と呼ばれる。

自律走行車のリアルタイム推論など、すぐに結果が必要なアプリケーションでは、推論の待ち時間を最小化するためにバッチサイズ1を使用する。大規模な画像コレクションを一晩で処理するようなオフラインシナリオでは、バッチサイズを大きくして効率を向上させることができる。

実世界での応用

  1. 医療画像解析医療画像の腫瘍検出のためにYOLO11モデルをトレーニングする場合、画像は高解像度であることが多い。GPUのメモリ制約のため、通常、小さなバッチサイズ(例えば、4または8)が使用されます。これにより、利用可能なメモリを超えることなく、高詳細データに対してモデルを学習させることができ、安定した学習を保証します。
  2. 製造品質管理製造業におけるAIでは、組立ラインの欠陥を検出するためにモデルをトレーニングすることがある。何百万もの製品画像からなる大規模なデータセットでは、強力な分散型トレーニング・クラスターでより大きなバッチ・サイズ(例えば256や512)が使用されるかもしれない。これにより、学習プロセスが高速化され、モデルの反復と展開が高速化されます。

バッチサイズと関連用語

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

  • バッチサイズ対エポックと反復反復はモデルの重みの1回の更新である。エポック エポックはトレーニングデータセット全体に対する1回のフルパスである。エポック内の反復回数は、トレーニングサンプルの総数をバッチサイズで割ったものになります。
  • バッチサイズとバッチ正規化の比較:バッチ正規化(BatchNorm)は、各ミニバッチの入力を標準化するためにニューラルネットワークレイヤー内で使用されるテクニックです。その有効性はバッチサイズに影響される可能性がありますが(バッチサイズが大きい方がより良いパフォーマンスを発揮します)、これはモデルアーキテクチャ内の別個のレイヤであり、トレーニングループパラメータではありません。PyTorchや TensorFlowのような最新のディープラーニングフレームワークのほとんどは、ロバストな実装を提供している。

Ultralyticsコミュニティに参加する

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク