バッチ正規化がディープラーニングモデルをどのように安定させるかを探ります。Ultralytics YOLO26がBatchNormを使用して学習を加速し、AI精度を向上させる方法を学びましょう。
バッチ正規化は、BatchNormと頻繁に呼ばれ、深層学習(DL)において人工ニューラルネットワークの訓練を安定させ、加速するために使用される手法です。これは、前の層のパラメータが更新されるにつれて層への入力の分布が連続的に変化する「内部共変量シフト」の問題を解決するために導入されました。BatchNormは、各ミニバッチに対して層への入力を標準化します。層の入力を平均ゼロ、標準偏差1に正規化し、その後学習可能なパラメータでスケーリングおよびシフトすることにより、この方法はネットワークがより高い学習率を使用し、初期化に対する感度を低減することを可能にします。
標準的な畳み込みニューラルネットワーク(CNN)では、データは各層が変換を実行する層を流れます。正規化なしでは、出力値のスケールが大きく変動し、最適化アルゴリズムが最適な重みを見つけるのが困難になります。バッチ正規化は通常、活性化関数(ReLUやSiLUなど)の直前に適用されます。
トレーニング中、このプロセスには2つの主要なステップが含まれます。
このメカニズムは正則化の一形態として機能し、トレーニング中に活性化に少量のノイズを追加することで、ドロップアウト層のような他の手法への必要性をわずかに減らします。
ResNetや最新の物体検出器のようなアーキテクチャにバッチ正規化を統合することは、いくつかの明確な利点をもたらします。
バッチ正規化は、現代のほぼすべてのコンピュータービジョン(CV)システムにおいて不可欠な要素です。
バッチ正規化を標準的なデータ正規化と区別することは、その理解を深める上で役立ちます。
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 Platformを使用してカスタムデータセットでモデルをファインチューニングする際に役立ち、限られたデータでもトレーニングが安定することを保証します。

未来の機械学習で、新たな一歩を踏み出しましょう。