正規化は、ある量の合計(または積分)を 1 になるように、あるいは一定の基準に揃うように、定数で割ったりスケールを調整したりする操作のことです。

1. 条件付き確率における正規化

確率変数 $X, Y$ に対して、条件付き確率は次のように定義されます。

\[P(X \mid Y) = \frac{P(X, Y)}{P(Y)}\]

意味

$Y = y$ を固定したとき、同時分布 $P(X, Y=y)$ を $X$ の関数として見ると、

\[\sum_x P(X=x, Y=y) = P(Y=y)\]

となり、一般に 1 ではありません。$P(X, Y=y)$ は $X$ についての確率分布の条件(合計が1)を満たしていません。

$P(Y=y)$ で割ることで合計が 1 になるように調整されます。

\[\sum_x \frac{P(X=x, Y=y)}{P(Y=y)} = \frac{P(Y=y)}{P(Y=y)} = 1\]

ref. 条件付き確率

2. 機械学習における正規化の例

2.1 データの正規化(Min-Max Normalization)

特徴量の値を一定の範囲(多くは $[0, 1]$)に収める操作。

\[x' = \frac{x - x_{\min}}{x_{\max} - x_{\min}}\]

スケールの異なる特徴量(例:年齢と年収)を揃え、勾配降下法の収束を安定させたり、距離ベースのアルゴリズム(k近傍法など)の性能を上げたりします。

2.2 標準化(Standardization / Z-score normalization)

\[X' = \frac{X - \mu}{\sigma}\]

平均($\mu$)0・分散($\sigma^2$)に揃える操作です(標準化した統計量が正規分布に従うわけではありません)。
多くの機械学習アルゴリズムの前処理として使わります。

2.3 Softmax 関数

Softmax 関数はニューラルネットワークの出力(ロジット Logit)を確率分布に変換します。

\[\text{softmax}(z_i) = \frac{e^{z_i}}{\sum_j e^{z_j}}\]

分母 $\sum_j e^{z_j}$ が正規化定数であり、出力の合計を 1 にしています。条件付き確率の正規化と構造的に同じです。

2.4 Batch Normalization / Layer Normalization / Instance Normalization / Group Normalization

深層学習の層の出力(活性化値)を、平均 0・分散 1 に近づけることで学習を安定化・高速化する手法群です。どの範囲(軸)で平均と分散を計算するかによって、4 種類に分かれます。

入力データの形状を( N:バッチ, C:チャネル, H:高さ, W:幅 )とすると、それぞれ次の軸に沿って正規化します。

  • Batch Normalization(BN ):同じチャネル $C$ について、バッチ $N$ と空間方向( $H, W$ )をまとめて正規化する。バッチ内のサンプルどうしを使って統計量(平均・分散)を計算する
  • Layer Normalization(LN ):同じサンプル(バッチの 1 件)について、チャネル $C$ と空間方向( $H, W$ )をまとめて正規化する。バッチサイズに依存せず、サンプル単体で計算できる
  • Instance Normalization(IN ):同じサンプルの同じチャネルについて、空間方向( $H, W$ )だけをまとめて正規化する。チャネルごと・サンプルごとに独立して計算する
  • Group Normalization(GN ):同じサンプルについて、チャネルをいくつかのグループに分け、グループ内のチャネルと空間方向( $H, W$ )をまとめて正規化する。BN と LN の中間的な位置づけ
手法 正規化する軸 バッチサイズへの依存 主な用途
Batch Normalization バッチ + 空間方向(チャネルごと) 依存する(バッチサイズが小さいと不安定) 画像分類などの CNN
Layer Normalization チャネル + 空間方向(サンプルごと) 依存しない Transformer、系列データ
Instance Normalization 空間方向のみ(サンプル・チャネルごと) 依存しない 画風変換(style transfer)などの生成タスク
Group Normalization チャネルのグループ + 空間方向(サンプルごと) 依存しない 物体検出などバッチサイズを大きく取れないタスク

Batch Normalization はバッチサイズが小さいと、平均・分散の推定が不安定になり性能が落ちやすいという弱点があります。Layer Normalization、Instance Normalization、Group Normalization は、いずれもバッチ方向を使わずにサンプル単体で統計量を計算するため、この弱点を回避できます。

2.5 ベクトルの正規化(L1 / L2 正規化)

ベクトルの大きさ(ノルム)を 1 に揃えます。

\[\vec{x}' = \frac{\vec{x}}{\|\vec{x}\|}\]

コサイン類似度の計算や、埋め込みベクトル( Embedding )の比較で使われます。

2.6 確率分布の正規化(正規化定数 / 分配関数)

ベイズ推定で分母 $P(Y) = \sum_x P(Y \mid X=x) P(X=x)$ が正規化定数(エビデンス)として使用されます。

\[P(X \mid Y) = \frac{P(Y \mid X) P(X)}{P(Y)}\]

まとめ

正規化は対象となる量の合計・大きさをある基準(多くは 1 )に揃えるために、定数で割る(またはスケールし直す)ことです。