ネットワーク内部の活性を平均0・分散1に整える正規化層は、深いモデルの学習を安定・高速化する基本部品です。Batch・Layer・Instance・Groupの4種類は「どの軸で統計量を計算するか」の違いで整理できます。

📖 概要

深層ニューラルネットワークでは、学習が進むにつれて各層への入力の分布が変動し、学習が不安定になったり収束が遅くなったりする問題があります。正規化層は、層の中間出力(活性)から平均と分散を計算し、平均0・分散1に標準化したうえで、学習可能なスケール係数γとシフト係数βで再変換することで、この問題を緩和します。学習の安定化・高速化に加え、正則化的な効果を持つことも知られています。

代表的な4手法(Batch Normalization、Layer Normalization、Instance Normalization、Group Normalization)は、数式の形はほぼ同じで、「平均・分散をどの軸(バッチ、チャネル、空間)にわたって計算するか」だけが異なります。画像の特徴マップを(バッチN、チャネルC、高さH、幅W)の4次元テンソルと考え、各手法がどの範囲で統計量をとるかをイメージできれば、違いは一気に整理できます。

🔍 キーワード解説

Batch Normalization

Batch Normalization(バッチ正規化)は、ミニバッチ内の同じチャネルに属する全要素(N×H×W)で平均と分散を計算して正規化する手法です。内部共変量シフト(層への入力分布の変動)の抑制を動機として提案され、学習率を大きくできる・初期値への依存を減らせる・正則化効果があるなど、CNNの学習を大きく安定化させました。

注意点として、統計量がミニバッチに依存するため、バッチサイズが小さいと推定が不安定になり性能が落ちやすいこと、また推論時にはバッチ統計の代わりに訓練中に蓄積した移動平均の平均・分散を使うため、訓練時と推論時で挙動が異なることが挙げられます。この2点は試験でも問われやすい重要ポイントです。

Layer Normalization

Layer Normalization(層正規化)は、1つのサンプルごとに、その層の全チャネル・全位置(C×H×W)で平均と分散を計算して正規化する手法です。バッチ方向の統計を使わないため、バッチサイズが1でも動作し、訓練時と推論時の挙動も一致します。サンプルごとに系列長が異なるRNNや、Transformer(BERT・GPTなど)で標準的に使われている正規化です。

Instance Normalization

Instance Normalization(インスタンス正規化)は、1つのサンプルの1つのチャネルごと(H×Wのみ)に平均と分散を計算して正規化する手法です。チャネル単位で画像ごとのコントラストや強度の情報を除去する働きがあり、画風変換(スタイル変換)の分野で特に効果を発揮したことで知られます。統計量の範囲が最も狭い正規化と覚えるとよいでしょう。

Group Normalization

Group Normalization(グループ正規化)は、1つのサンプル内でチャネルをいくつかのグループに分け、グループごと(グループ内チャネル×H×W)に平均と分散を計算する手法です。全チャネルを1グループにすればLayer Normalization、1チャネルずつのグループにすればInstance Normalizationと一致する、両者の中間的・一般形にあたる手法です。バッチ統計を使わないため、物体検出やセグメンテーションのようにメモリ制約でバッチサイズを小さくせざるを得ないタスクで、Batch Normalizationの代替として有効とされます。

📝 試験でのポイント

💡 ポイント
  • 4手法の違いは「統計量を計算する軸」で問われる。(N, C, H, W)のうちどこで平均・分散をとるか(Batch=N×H×W/Layer=C×H×W/Instance=H×W/Group=グループ内C×H×W)を図でイメージできるようにする
  • Batch Normalizationの推論時の挙動(移動平均した統計量を使用)と、バッチサイズが小さいときに不安定になる欠点は頻出
  • 「バッチサイズに依存しない正規化はどれか」(Layer・Instance・Group)という切り口の出題に注意
  • Transformer/RNNで使われるのはLayer Normalization、小バッチのCNNタスクにはGroup Normalizationという使い分けの傾向を押さえる
  • 正規化後に学習可能なスケールγ・シフトβで再変換する点(表現力を保つため)も選択肢に登場しやすい

📚 まとめ

正規化層は活性を標準化して学習を安定・高速化する仕組みで、4手法は統計量をとる軸だけが違います。Batchはバッチ方向を含み小バッチに弱く推論時は移動平均を使用、Layerはサンプル単位でTransformerの標準、Instanceはチャネル単位でスタイル変換に有効、GroupはLayerとInstanceの中間で小バッチCNNに適します。