一文定義
ミニバッチ単位で各層の入力を正規化してニューラルネットワークの学習を安定・高速化する手法。Transformerではレイヤー正規化が主流。
詳細解説
バッチ正規化(Batch Normalization、BatchNorm)とは、ニューラルネットワークの各層において、ミニバッチ内のサンプルに対して平均0・分散1に正規化し、学習可能なスケール(γ)とシフト(β)パラメータで再スケールする手法です。IoffeとSzegedyが2015年に提案し、深層CNNの学習を大幅に安定化・高速化する効果をもたらしました。
バッチ正規化の主な効果として、(1)学習の高速化:勾配消失・爆発が抑制され大きな学習率を使えるようになる、(2)重み初期化への依存低減:正規化により初期値の影響が小さくなる、(3)正則化効果:バッチ内の統計によるノイズが正則化として機能しDropoutへの依存を減らせる、(4)深いネットワークの安定学習があります。
推論時の挙動として、学習時はバッチ統計(平均・分散)を使いますが、推論時はバッチが存在しないため学習中に蓄積した移動平均統計を使用します。これが学習・推論の挙動の違いの原因となるため、PyTorchでは推論時に「model.eval()」を呼び出してBatchNormを評価モードに切り替える必要があります。
Transformerとの関係として、Transformerは可変長シーケンスを扱い、バッチサイズが小さいケースや分散学習環境でのバッチ統計の不安定さからバッチ正規化に適しておらず、代わりにレイヤー正規化(Layer Normalization)が採用されています。現在の大規模LLMでバッチ正規化が使われることはほとんどありません。
参考情報・出典
- ▸Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift— arXiv / Ioffe & Szegedy (2015)(参照日: 2026-02-26)
- ▸Batch normalization – Wikipedia— Wikipedia(参照日: 2026-02-26)