Yolo 深圳
深セン
今すぐ参加
用語集

バッチ正規化

Explore how [batch normalization](https://www.ultralytics.com/glossary/batch-normalization) stabilizes training, prevents vanishing gradients, and boosts accuracy for models like [YOLO26](https://docs.ultralytics.com/models/yolo26/).

バッチ正規化(BatchNorm)は、深層学習(DL)において人工ニューラルネットワークの学習を安定化・高速化するために用いられる手法である。内部共変量シフトの問題——前層のパラメータ更新に伴い層への入力分布が継続的に変化する現象——を解決するために導入されたバッチ正規化は、各ミニバッチごとに層への入力を正規化する。 層への入力データを平均0・標準偏差1に正規化し、学習可能なパラメータを用いてスケーリングとシフトを行うことで、この手法はネットワークがより高い学習率を使用できるようにし、初期化への依存性を低減します。

バッチ正規化の仕組み

標準的な畳み込みニューラルネットワーク(CNN)では、データは各層で変換処理を行う層を通過します。正規化を行わない場合、出力値のスケールが大きく変動し、最適化アルゴリズムが最適な重みを発見することが困難になります。バッチ正規化は通常、活性化関数(ReLUやSiLUなど)の直前に適用されます。

トレーニング中のプロセスには、主に二つのステップが含まれます:

  1. 正規化:この層は現在のバッチサイズ内の活性化値の平均と分散を計算する。 その後、バッチ平均を差し引き、 バッチ標準偏差で除算する。
  2. スケーリングとシフト:ネットワークが複雑な関数を表現できるようにするため、2つの学習可能パラメータ(ガンマとベータ)を導入する。これにより、最適なデータ分布が標準正規分布でない場合、ネットワークは正規化を解除できる。

このメカニズムは正則化の一形態として機能し、学習中の活性化関数に微量のノイズを加えることで、 ドロップアウト層などの他の手法への依存度をやや低減します。

AIトレーニングの主な利点

バッチ正規化をResNetや最新の物体検出器などのアーキテクチャに統合することで、 いくつかの明確な利点が得られる:

実際のアプリケーション

バッチ正規化は、ほぼすべての現代的な コンピュータビジョン(CV)システムにおいて基本技術となっている。

  1. 自動運転:自動運転車システムでは、Ultralytics モデルが動画フレームを処理し、歩行者、車両、標識をdetect 。バッチ正規化(BatchNorm)により、照明強度や気象条件の変化にかかわらず、物体検出層の安定性が確保され、高い平均精度(mAP)が維持されます。
  2. 医療画像診断 腫瘍検出を行う際、MRIやCT装置によってスキャンデータが大きく異なる場合があります。バッチ正規化(BatchNorm)はこれらの特徴量を内部的に正規化し、AIが画素輝度の差異ではなく構造的異常点に集中できるようにします。これにより医療AIソリューションの診断精度が向上します。

バッチ正規化 vs. データ正規化

バッチ正規化と標準的なデータ正規化を区別することは有益である。

  • データ正規化は、トレーニング開始前に生の入力データセット(例:画像のサイズ変更やピクセル値を0-1にスケーリング)に適用される前処理ステップです。この段階ではAlbumentationsなどのツールがよく使用されます。
  • バッチ正規化は、学習プロセスそのものの中でニューラルネットワークの層内部で発生します。 データがネットワークを流れるにつれて、ネットワークの内部値を動的に調整します。

実施例

PyTorchのような深層学習フレームワーク PyTorch にはバッチ正規化の最適化された実装が含まれています。Ultralytics YOLO では、これらの層が畳み込みブロックに自動的に統合されています。

以下の通りである。 Python コードスニペットは、モデルを検査して どこに BatchNorm2d レイヤーはアーキテクチャ内に配置される。

from ultralytics import YOLO

# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")

# Print the model structure to view layers
# You will see 'BatchNorm2d' listed after 'Conv2d' layers
print(model.model)

これらのレイヤーの相互作用を理解することは、開発Ultralytics を使用してカスタムデータセット上でモデルを微調整する際に役立ち、データが限られている場合でもトレーニングが安定して継続されることを保証します。

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

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

今すぐ参加