AI・機械学習
中級

Batch Normalization(バッチ正規化)(バッチセイキカ)

ミニバッチ内の同一特徴量(ニューロン)にわたって平均と分散を計算し、活性化値を正規化する手法。Ioffe & Szegedy(2015)が提案し、CNNの学習を劇的に高速化・安定化した。ただしTransformer/LLMでは可変長入力やバッチサイズ1の推論に不向きなため、LayerNormに置き換えられている。

0 回閲覧
0 いいね

Batch Normalization(バッチ正規化)とは

Batch Normalization(BatchNorm)は、ディープラーニングの学習を安定化させた画期的な正規化手法である。Ioffe & Szegedy(2015)が「Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift」で提案し、CNNの学習速度を10倍以上高速化したことで、深層学習の実用化を大きく前進させた。

BatchNormの計算式

ミニバッチ B = {x_1, x_2, ..., x_m} に対して、各特徴量チャンネルごとに:

ステップ計算説明
バッチ平均μ_B = (1/m) Σ x_im個のサンプルの平均
バッチ分散σ_B² = (1/m) Σ (x_i - μ_B)²m個のサンプルの分散
正規化x̂_i = (x_i - μ_B) / √(σ_B² + ε)平均0・分散1に正規化
アフィン変換y_i = γ × x̂_i + β学習可能パラメータで再スケール

Internal Covariate Shift問題

BatchNormが解決しようとした問題はInternal Covariate Shift(内部共変量シフト)である。深層ネットワークでは、前の層のパラメータ更新により後の層への入力分布が変化し続ける。これにより:

  1. 学習率を大きく設定できない(発散リスク)
  2. パラメータの初期値に敏感になる
  3. 活性化関数の飽和領域に入りやすい
  4. 学習の収束が遅くなる

BatchNormは各層の入力分布を安定化させることで、これらの問題を緩和する。

CNNでの成功と影響

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アーキテクチャに標準搭載されている。

Transformerで採用されない理由

BatchNormはCNNでは圧倒的に成功したが、Transformer/LLMでは以下の問題があり採用されていない。

問題詳細
可変長入力テキストの系列長はサンプルごとに異なる。パディング部分の統計量が正規化を歪める
バッチサイズ1の推論テキスト生成はバッチ=1で行われるため、バッチ統計量が計算できない
移動平均の不整合学習時のバッチ統計量と推論時の移動平均で分布が乖離する
系列内の位置依存性文頭と文末で活性化値の分布が異なるが、BatchNormは位置を区別しない

これらの理由から、TransformerではLayerNorm(またはRMSNorm)が標準的に使用される。

BatchNormの変種

BatchNormの限界を克服するため、複数の変種が提案されている。

変種提案年正規化の軸主な用途
Layer Norm2016特徴量方向Transformer/LLM
Instance Norm2016空間方向(1サンプル内)スタイル変換
Group Norm2018チャンネルグループ小バッチCNN
RMSNorm2019特徴量方向(簡略版)最新LLM

現在の位置づけ

BatchNormはCNNベースのコンピュータビジョンでは依然として標準だが、LLM/NLPではLayerNorm/RMSNormに完全に置き換えられている。Vision Transformer(ViT)の登場により、コンピュータビジョンでもLayerNormの採用が増加している。

FAQ

Q1: BatchNormの正則化効果とは?

各ミニバッチの統計量にはサンプリングノイズが含まれるため、学習時に微小な確率的摂動が加わる。これがDropoutと類似の正則化効果を生み、過学習を抑制する。BatchNorm導入によりDropoutが不要になったモデルも多い。

Q2: Group NormalizationとBatchNormの違いは?

Group Norm(Wu & He, 2018)はチャンネルをグループに分割し、グループ内で正規化する。バッチサイズに依存しないため、GPUメモリの制約で小バッチしか使えない物体検出・セグメンテーションで有用。

Q3: BatchNormが今後LLMで復活する可能性は?

現状では極めて低い。LLMの推論は本質的にバッチサイズ1の自己回帰生成であり、BatchNormの前提と構造的に相容れない。LayerNorm/RMSNormで十分な性能が得られているため、BatchNormへの回帰を目指す研究はほぼない。