正規化(Normalization)| 確率・統計
正規化は、ある量の合計(または積分)を 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 関数はニューラルネットワークの出力(ロジット)を確率分布に変換します。
\[\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
深層学習の層の出力(活性化値)を、ミニバッチ単位または層単位で平均 0・分散 1 に近づける手法。学習の安定化・高速化に寄与します。
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 )に揃えるために、定数で割る(またはスケールし直す)ことです。