正規化層の内部:Batch・Layer・RMSNorm の違い
正規化の違いは「どの軸で統計を取るか」一点に集約される。ここを押さえれば、画像がBatchNorm、TransformerがLayerNorm・RMSNormとPre-LNを選ぶ理由まで式で見通せる。
- 1.違いの本質は統計量を取る軸だけ。BatchNormはバッチ方向、LayerNorm/RMSNormは特徴次元方向に平均・分散を計算する。
- 2.RMSNormは平均引き(中心化)を省き二乗平均平方根だけで割る簡略版。再中心化を捨てても性能はほぼ落ちず、計算が軽いため大規模LLMで主流。
- 3.Pre-LNは残差の前に正規化を置く構成で、勾配が恒等経路を素通りでき深層でも安定する。だからウォームアップ不要で深いTransformerを学習できる。
なぜ正規化が要るのか:内部共変量シフト
深いネットワークでは、ある層の入力分布が、その前段の重み更新のたびに動きます。学習中に各層が「動く標的」へ適応し続けねばならないこの現象を 内部共変量シフト(internal covariate shift) と呼びます。分布の平均や分散が層ごと・ステップごとにばらつくと、活性が飽和域に入って勾配が消えたり、層ごとに最適な学習率が食い違ったりして収束が遅くなります。
正規化層の発想は単純です。各層の出力を 平均0・分散1に揃え直してから次へ渡す。そうすれば後続層は安定した入力分布を前提に学習でき、勾配の流れも整います。基礎のネットワーク構造は ニューラルネットワーク を、勾配がどう伝わるかは 誤差逆伝播法の数理 を前提とします。
BatchNorm が効く理由を内部共変量シフトだけで説明できるかは議論があります。後年の研究では「損失曲面を滑らかにし勾配を安定させる効果の方が本質的」との指摘もあります。歴史的動機として押さえつつ、実効的な効能は「分布の安定化と最適化の容易化」と捉えるのが安全です。
共通の骨格:標準化してからスケール・シフト
3手法はすべて同じ2段構えです。まず対象とする統計の軸で平均 μ と分散 σ² を取り、標準化してから、学習可能なゲイン γ とバイアス β で復元します。
標準化: x̂ = (x - μ) / √(σ² + ε) (ε は0割り防止、例: 1e-5)
復元: y = γ ⊙ x̂ + β (γ, β は学習対象。⊙ は要素ごとの積)
γ/β を置くのは、正規化で表現力を奪わないためです。仮に標準化が不要なら γ=√(σ²)、β=μ を学べば元へ戻せる——つまり正規化は表現の幅を狭めません。3手法の唯一の違いは μ と σ² をどの軸で計算するか に尽きます。
BatchNorm:バッチ方向に統計を取る
形状が (N, C)(N=バッチ、C=特徴/チャネル)の活性を考えます。BatchNorm は 各特徴チャネルについて、バッチ内のサンプルをまたいで 平均と分散を取ります。
チャネル c ごとに:
μ_c = mean over N (= (1/N) Σ_n x[n, c])
σ²_c = var over N
x̂[n, c] = (x[n, c] - μ_c) / √(σ²_c + ε)
統計が バッチ全体に依存 するのが最大の特徴で、これが長所と短所を生みます。学習時はミニバッチの統計を使い、同時に移動平均で μ/σ² を蓄えておき、推論時は1サンプルでも安定するようその移動平均(実行統計)を使います。
- 小バッチで不安定:統計をバッチで取るため、
Nが小さいと推定がノイジーになる。系列モデルやメモリ制約下ではNを大きく取りにくい。 - 可変長系列と相性が悪い:トークン位置ごとに有効な系列長が違うと、バッチ・系列方向の統計がパディングに汚染される。
- 学習・推論で挙動が変わる:実行統計に依存するため、分布がずれると推論時に崩れやすい。
これらは画像CNN(CNNとRNN)では問題になりにくい一方、Transformerでは致命的になりがちです。
LayerNorm:特徴次元方向に統計を取る
LayerNorm は軸を90度回します。1サンプル内で、特徴次元(C)をまたいで 平均と分散を取るのです。バッチには一切依存しません。
サンプル n ごとに:
μ_n = mean over C (= (1/C) Σ_c x[n, c])
σ²_n = var over C
x̂[n, c] = (x[n, c] - μ_n) / √(σ²_n + ε)
バッチ非依存ゆえに バッチサイズ1でも、可変長系列でも、学習と推論で完全に同じ計算 になります。Transformer はトークンごとに独立して各位置の特徴ベクトルを正規化できるため、LayerNorm が自然に噛み合います。これが Self-Attention(Self-Attention の計算)や Multi-Head Attention の内部 と組み合わさり、Transformer の標準部品になりました。
| 観点 | BatchNorm | LayerNorm | RMSNorm |
|---|---|---|---|
| 統計を取る軸 | バッチ方向(N) | 特徴次元方向(C) | 特徴次元方向(C) |
| 中心化(平均引き) | あり | あり | なし(省略) |
| バッチ依存 | あり(実行統計が必要) | なし | なし |
| 学習/推論の挙動 | 異なる(移動平均を使用) | 同一 | 同一 |
| 主な用途 | 画像CNN | Transformer初期〜 | 大規模LLM |
RMSNorm:中心化を捨てて二乗平均だけで割る
RMSNorm(Root Mean Square Normalization) は LayerNorm をさらに削ります。LayerNorm が行う「平均を引く(再中心化)」を 省略 し、二乗平均平方根(RMS)で割るだけにします。
サンプル n ごとに:
RMS = √( (1/C) Σ_c x[n, c]² + ε )
x̂[n, c] = x[n, c] / RMS
y[n, c] = γ_c ⊙ x̂[n, c] # バイアス β も省くのが一般的
LayerNorm との差分は μ を引かない 一点です。RMSNorm の主張は「正規化の効能の大半は 再スケーリング不変性(大きさを揃えること) から来ており、再中心化(平均を0にすること) の寄与は小さい」というもの。実際、平均を引かず RMS だけで割っても、多くの大規模モデルで性能はほぼ同等のまま、平均と分散を二度集計する代わりに二乗和(Σ x²)の一度の集計で済み計算が軽くなります。
標準化は「中心化(平均を引く)」と「スケーリング(大きさで割る)」の合成です。RMSNorm はこのうちスケーリングだけを残します。γ(と後段の線形層)が分布のシフトを吸収できるため、正規化層自身が平均を引かなくても表現上は補える、というのが直感的な説明です。集計が Σ x² の一回で済むぶん、巨大な隠れ次元を持つLLMでは無視できない高速化になります。
Post-LN と Pre-LN:正規化を残差のどこに置くか
ここからが Transformer 設計の核心です。各サブ層(Attention や FFN)は残差接続 x + Sublayer(x) を持ちます。LayerNorm をこの残差の どこに挟むか で挙動が大きく変わります。
Post-LN(原論文): x_out = LN( x + Sublayer(x) )
Pre-LN(現主流): x_out = x + Sublayer( LN(x) )
Post-LN は残差の和を取った 後 に正規化します。原典の Transformer はこの形でしたが、層を深くすると 学習初期に勾配が不安定 になり、入念な学習率ウォームアップと小さな初期学習率なしには発散しがちでした。理由は、正規化が恒等経路(残差のショートカット)の上に乗ってしまい、逆伝播の勾配がそのまま素通りできないためです。
Pre-LN はサブ層の 入力側 に正規化を置き、残差の加算経路には何も挟みません。すると逆伝播で 勾配が残差の恒等経路を減衰なく流れ、深い層まで届きます。結果として ウォームアップへの依存が薄れ、深く・安定して学習 できます。この安定性ゆえに、現在の大規模 Transformer はほぼ Pre-LN を採用しています。全体構成は Transformer アーキテクチャ全体の構造 も参照してください。
- 3手法の違いを一言で:統計を取る軸。BatchNormはバッチ方向、LayerNorm/RMSNormは特徴次元方向。RMSNormは加えて中心化を省く。
- なぜTransformerはLayerNorm?:バッチ非依存で、小バッチ・可変長系列でも学習と推論が同一の計算になるから。
- Pre-LN が主流の理由:残差の恒等経路に正規化を挟まないため勾配がそのまま流れ、深層でも安定しウォームアップ依存が減る。
- RMSNorm が軽い理由:平均と分散の二度の集計を、二乗和の一度に削れるから。再中心化の寄与が小さいという経験則に基づく。
まとめ:軸を一つ決めるだけで全部つながる
正規化層の系譜は「どの軸で平均・分散を取るか」という一つの選択に集約されます。バッチ方向に取れば BatchNorm で画像CNN向き、特徴次元方向に取ればバッチ非依存の LayerNorm で Transformer 向き、そこから 中心化を捨てて軽量化 したのが RMSNorm です。そして正規化を 残差のどこに置くか が Post-LN と Pre-LN を分け、恒等経路を塞がない Pre-LN が深層安定性ゆえ主流になりました。
実務では、Transformer 系を一から組むなら Pre-LN + RMSNorm(または LayerNorm) が堅実な既定値です。この正規化の選択は最適化器の挙動とも絡むため、最適化アルゴリズムの系統 と合わせて、学習安定化の全体像として押さえておくと設定で迷いません。
AI/機械学習 Article
正規化層の内部:Batch・Layer・RMSNorm の違いを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
正規化
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5
導入後に効く点
RMSNormは平均引き(中心化)を省き二乗平均平方根だけで割る簡略版。再中心化を捨てても性能はほぼ落ちず、計算が軽いため大規模LLMで主流。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 5
判断チェックリスト
- 自社の用途が「正規化 / LayerNorm」に近いか確認する。
- 強みである「違いの本質は統計量を取る軸だけ。BatchNormはバッチ方向、LayerNorm/RMSNormは特徴次元方向に平均・分散を計算する。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。