バッチ正規化で深層学習のパフォーマンスを向上させましょう!この手法がAIモデルの学習速度、安定性、精度をどのように高めるかを学びます。
バッチ正規化(BatchNormと略されることが多い)は、深層学習(DL)における基礎的な技術である。 ディープラーニング(DL)の基礎技術である。 ディープ・ニューラル・ネットワーク ディープ・ニューラル・ネットワークの学習の安定性と速度を向上させるために考案された。セルゲイ・アイオフェ(Sergey Ioffe)による2015年の研究論文 Sergey IoffeとChristian Szegedyによる2015年の研究論文で紹介されたこの手法は、「内部共分散」という課題に対処する。 この手法は、「内部共変量シフト」という課題に対処する。 ネットワーク層への入力の分布が、先行する層のパラメータが更新されるにつれて連続的に変化する現象である。各層の入力を正規化することで バッチノルムは、ミニバッチ全体で各層の入力を正規化することで、モデルがより高い学習率を利用できるようにし 学習率を向上させ 初期パラメータ重みに対する感度を大幅に低減する。
典型的な 典型的な畳み込みニューラルネットワーク(CNN)では、バッチ正規化層は、畳み込み層または完全接続層の直後で、非線形活性化関数(ReLUやCNNのような)の前に挿入される。 非線形活性化関数(ReLUや SiLUなど)の前に挿入される。このプロセスには、次の2つの主要なステップが含まれる モデル学習フェーズで実行される2つの主要なステップがある:
推論中、バッチ統計量を利用することは非現実的である。 なぜなら,予測はしばしば1つの項目に対して行われるからである.その代わりに、モデルは訓練中に蓄積された平均と分散の移動平均 の移動平均を使用します。
バッチ・ノーマライゼーションをアーキテクチャ設計に組み込むことで、以下のような明確な利点が得られる。 現代のAIの標準となっている:
バッチ正規化は、コンピュータビジョン(CV)だけでなく、それ以外の分野でもユビキタスです。 コンピュータ・ビジョン(CV)やそれ以外の分野でも、バッチ正規化によって 最先端のモデルの性能を実現します。
バッチ正規化を類似の前処理やアーキテクチャ技術と区別することは重要である:
のような人気のあるフレームワーク。 PyTorch そして
TensorFlow 組み込みの実装を提供する(例.
torch.nn.BatchNorm2d など)は、 tf.keras.layers.BatchNormalization).次の例は
は、YOLO11 モデルを検査し、そのアーキテクチャに統合されたBatchNormレイヤーを観察する方法を示している。
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Display the model summary
# Look for 'BatchNorm2d' in the output to see where normalization is applied
model.info()
# Example output line from info():
# 0 -1 1 464 ultralytics.nn.modules.conv.Conv [3, 16, 3, 2]
# The Conv module in Ultralytics typically includes Conv2d + BatchNorm2d + SiLU


