ヨロビジョン深圳
深セン
今すぐ参加
用語集

バッチサイズ

深層学習におけるバッチサイズの影響をご覧ください。トレーニング速度、メモリ使用量、およびモデルのパフォーマンスを効率的に最適化します。

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

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

トレーニング中、ニューラルネットワーク(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)は、各ミニバッチの入力を標準化するために、ニューラルネットワークレイヤー内で使用される手法です。その有効性はバッチサイズの影響を受ける可能性がありますが(バッチサイズが大きいほどパフォーマンスが向上します)、トレーニングループのパラメータではなく、モデルアーキテクチャ内の個別のレイヤーです。PyTorchTensorFlowのような最新の深層学習フレームワークのほとんどは、堅牢な実装を提供しています。

Ultralyticsコミュニティに参加しませんか?

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加
クリップボードにコピーしました