ミニバッチ内の同一特徴量(ニューロン)にわたって平均と分散を計算し、活性化値を正規化する手法。Ioffe & Szegedy(2015)が提案し、CNNの学習を劇的に高速化・安定化した。ただしTransformer/LLMでは可変長入力やバッチサイズ1の推論に不向きなため、LayerNormに置き換えられている。
Batch Normalization(BatchNorm)は、ディープラーニングの学習を安定化させた画期的な正規化手法である。Ioffe & Szegedy(2015)が「Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift」で提案し、CNNの学習速度を10倍以上高速化したことで、深層学習の実用化を大きく前進させた。
ミニバッチ B = {x_1, x_2, ..., x_m} に対して、各特徴量チャンネルごとに:
| ステップ | 計算 | 説明 |
|---|---|---|
| バッチ平均 | μ_B = (1/m) Σ x_i | m個のサンプルの平均 |
| バッチ分散 | σ_B² = (1/m) Σ (x_i - μ_B)² | m個のサンプルの分散 |
| 正規化 | x̂_i = (x_i - μ_B) / √(σ_B² + ε) | 平均0・分散1に正規化 |
| アフィン変換 | y_i = γ × x̂_i + β | 学習可能パラメータで再スケール |
BatchNormが解決しようとした問題は**Internal Covariate Shift(内部共変量シフト)**である。深層ネットワークでは、前の層のパラメータ更新により後の層への入力分布が変化し続ける。これにより:
BatchNormは各層の入力分布を安定化させることで、これらの問題を緩和する。
BatchNormの導入前後で、CNNの学習は劇的に変化した。
| 項目 | BatchNorm以前 | BatchNorm以後 |
|---|---|---|
| 学習率 | 0.001-0.01(慎重に設定) | 0.1(10倍高い設定が可能) |
| 収束速度 | 数日〜数週間 | 数時間〜数日 |
| Dropout | 必須 | 不要(正則化効果あり) |
| 初期値の影響 | 大きい | 軽微 |
| ImageNetトップ5精度 | 92.8%(GoogLeNet) | 95.1%(BN-Inception) |
BatchNormは ResNet、DenseNet、EfficientNet など、2015年以降のほぼ全てのCNNアーキテクチャに標準搭載されている。
BatchNormはCNNでは圧倒的に成功したが、Transformer/LLMでは以下の問題があり採用されていない。
| 問題 | 詳細 |
|---|---|
| 可変長入力 | テキストの系列長はサンプルごとに異なる。パディング部分の統計量が正規化を歪める |
| バッチサイズ1の推論 | テキスト生成はバッチ=1で行われるため、バッチ統計量が計算できない |
| 移動平均の不整合 | 学習時のバッチ統計量と推論時の移動平均で分布が乖離する |
| 系列内の位置依存性 | 文頭と文末で活性化値の分布が異なるが、BatchNormは位置を区別しない |
これらの理由から、TransformerではLayerNorm(またはRMSNorm)が標準的に使用される。
BatchNormの限界を克服するため、複数の変種が提案されている。
| 変種 | 提案年 | 正規化の軸 | 主な用途 |
|---|---|---|---|
| Layer Norm | 2016 | 特徴量方向 | Transformer/LLM |
| Instance Norm | 2016 | 空間方向(1サンプル内) | スタイル変換 |
| Group Norm | 2018 | チャンネルグループ | 小バッチCNN |
| RMSNorm | 2019 | 特徴量方向(簡略版) | 最新LLM |
BatchNormはCNNベースのコンピュータビジョンでは依然として標準だが、LLM/NLPではLayerNorm/RMSNormに完全に置き換えられている。Vision Transformer(ViT)の登場により、コンピュータビジョンでもLayerNormの採用が増加している。
各ミニバッチの統計量にはサンプリングノイズが含まれるため、学習時に微小な確率的摂動が加わる。これがDropoutと類似の正則化効果を生み、過学習を抑制する。BatchNorm導入によりDropoutが不要になったモデルも多い。
Group Norm(Wu & He, 2018)はチャンネルをグループに分割し、グループ内で正規化する。バッチサイズに依存しないため、GPUメモリの制約で小バッチしか使えない物体検出・セグメンテーションで有用。
現状では極めて低い。LLMの推論は本質的にバッチサイズ1の自己回帰生成であり、BatchNormの前提と構造的に相容れない。LayerNorm/RMSNormで十分な性能が得られているため、BatchNormへの回帰を目指す研究はほぼない。