KLダイバージェンス(Kullback-Leibler Divergence, divergence 発散)は、2 つの確率分布の差異を計る尺度です。 分布 $p$ をモデル $q$ で近似したときに生じる情報量的な乖離を表します。

KLダイバージェンスは以下の式で定義されます。

\[D_{\text{KL}}(p \parallel q) = \sum_x p(x) \log_2 \frac{p(x)}{q(x)} \geq 0\]

交差エントロピー $H(p, q)$ を使用して以下のように分解することができます。

\[\begin{aligned} H(p, q) = H(p) + D_{\text{KL}}(p \parallel q) \\ D_{\text{KL}}(p \parallel q) = H(p,q) - H(p) \geq 0 \end{aligned}\]

Deep Learning の KLダイバージェンス

KLダイバージェンス $D_{\text{KL}}(p \parallel q)$ は、基準である真の分布 $p$ をモデルの分布 $q$ に置き換えことによりどれだけ情報量が失われるかを計算する指標です。

真の分布 $p$ が固定されている Deep Learning においては、交差エントロピーを最小化することは、KLダイバージェンスを最小化すること(予測分布を正解分布に近づけること)と同義になります

  • $p(x)$(真の分布):教師データ(正解ラベル)の分布
  • $q(x)$(モデルの分布):モデルが出力した予測(Softmax等を通した確率)の分布

$- \log q_t(k)$ の導出

交差エントロピー $H(p_t, q_t)$ は、情報理論において以下のように分解できます。

\[H(p_t, q_t) = H(p_t) + D_{\text{KL}}(p_t \parallel q_t)\]
  • $p_t$ : 教師データ(正解ラベル)の分布
  • $q_t$ : モデルが出力した予測(Softmax等)の分布
  • $H(p_t)$ : 教師データ自体が持つエントロピー(不確実性)
  • $D_{\text{KL}}(p_t \parallel q_t)$ : 2つの分布の差異を表す KLダイバージェンス

Deep Learning の目的は、予測分布 $q_t$ を正解分布 $p_t$ に近づける(=KLダイバージェンスを最小化する)ことです。

正解ラベルが one-hot ベクトルの場合、数式はシンプルになります。

1. 正解データのエントロピー $H(p_t)$ が 0 になる

正解が完全に固定されている(不確実性がゼロ)ため、教師データ自体のエントロピーは $0$ になります。
ここで分布の次元数は語彙数 $V$ とします。

\[\begin{aligned} i \neq k \Rightarrow p_t(i) = 0 \\ i = k \Rightarrow p_t(i) = 1 \\ H(p_t) = - \sum_{i=1}^{V} p_t(i) \log p_t(i) = - (1 \cdot \log 1) = 0 \end{aligned}\]

これを分解式に代入すると、以下の関係が成り立ちます。

\[H(p_t, q_t) = 0 + D_{\text{KL}}(p_t \parallel q_t) = D_{\text{KL}}(p_t \parallel q_t)\]

交差エントロピーを計算すること自体が、そのままKLダイバージェンスを計算することと同義になります。

2. 計算が正解トークンだけの一項に絞られる

交差エントロピーの定義式に one-hot ベクトル の性質を当てはめます。

\[L_t = - \sum_{i=1}^{V} p_t(i) \log q_t(i)\]

$i \neq k$ のときは $p_t(i) = 0$ となるため、正解インデックス $k$ 以外の項はすべて消滅します。

\[\begin{aligned} L_t &= - \Big( 0 \cdot \log q_t(1) + \dots + 1 \cdot \log q_t(k) + \dots + 0 \cdot \log q_t(V) \Big) \\ &= - \log q_t(k) \end{aligned}\]

KLダイバージェンスが直接必要になるケース

逆に、正解ラベルが one-hot ではない( 100% の正解が 1 つとは限らない)タスクでは、数式を省略できないため、KLダイバージェンスの式をそのまま使って分布ごとに近づける必要があります。

1. 知識蒸留(Knowledge Distillation)

  • 概要: 巨大なモデル(親)の持つ知識を、軽量なモデル(子)に継承させる技術。
  • 理由: 子モデルの正解データが 1 のone-hotではなく、親モデルが出力した [犬: 0.7, 猫: 0.2, 狐: 0.1] というなだらかな確率分布(ソフトターゲット)に近づくように学習します。正解(親の出力)が確率分布そのものであるため、KLダイバージェンスを直接計算する必要があります

2. ラベルスムージング(Label Smoothing)

  • 概要: 過学習を防ぐために、正解を 1.0 ではなく 0.9 に落とし、残りの 0.1 を他のクラスに均等に配る(例: [0.9, 0.05, 0.05]正則化テクニック
  • 理由: この場合も正解分布 $P_t$ に 0 以外の値が含まれるため、単純な一項だけの省略ができず、分布全体の近さを制御する土台としてKLダイバージェンスの概念が必要となります

要約

  • 通常の one-hot 学習: 分布の差異の最小化だが、数式では正解トークンの確率を最大化する( $q_{t}(k) = 1$ に最大化すると $- \log q_t(k)$ は最小化)と同じになる
  • 正解が確率分布の学習: 省略ができないため、KLダイバージェンスの数式をそのまま適用して、分布の「形」そのものを近づける

JSダイバージェンス(Jensen-Shannon Divergence)

KLダイバージェンスの弱点:非対称性

これまで見てきたKLダイバージェンス $D_{\text{KL}}(p\parallel q)$ には、以下の不便な性質があります。

\[D_{\text{KL}}(p\parallel q) \neq D_{\text{KL}}(q\parallel p) \quad (\text{一般に})\]

「$p$ を基準に $q$ を評価する」場合と「$q$ を基準に $p$ を評価する」場合とで値が異なるため、KLダイバージェンス距離(distance)とは呼べません(距離であれば $d(p,q)=d(q,p)$ という対称性が必要です)。また、$q(x)=0$ となる点で $p(x)>0$ だと $\log\frac{p(x)}{q(x)}\to\infty$ となり、発散してしまう問題もあります。

JSダイバージェンスの定義

この非対称性を解消するために考案されたのがJSダイバージェンスです。$p$ と $q$ の「中間分布」

\[m(x) = \frac{1}{2}\bigl(p(x)+q(x)\bigr)\]

を経由し、$p$ と $m$、$q$ と $m$ のKLダイバージェンス平均として定義します。

\[D_{\text{JS}}(p \parallel q) = \frac{1}{2} D_{\text{KL}}(p \parallel m) + \frac{1}{2} D_{\text{KL}}(q \parallel m)\]

KLダイバージェンスに対する利点

性質 KLダイバージェンス JSダイバージェンス
対称性 $D_{\text{KL}}(p\parallel q)\neq D_{\text{KL}}(q\parallel p)$ $D_{\text{JS}}(p\parallel q) = D_{\text{JS}}(q\parallel p)$(定義から明らか)
値の範囲 $[0,\infty)$(発散しうる) $[0,\log 2]$($\log_2$ を使えば $[0,1]$)に有界
$q(x)=0,\ p(x)>0$ での挙動 発散する $m(x)=\frac{1}{2}p(x)>0$ となるため発散しない

さらに $\sqrt{D_{\text{JS}}(p\parallel q)}$ は距離の公理(三角不等式を含む)を満たすことが知られており、これをJensen-Shannon距離と呼びます。KLダイバージェンスが「距離もどき」に留まるのに対し、JSダイバージェンスの平方根は数学的に正式な距離になる、という違いがあります。

機械学習での利用例:GAN

敵対的生成ネットワーク(GAN)の元論文では、生成器 $G$ と識別器 $D$ を最適に学習させたときの目的関数が、本質的に「本物のデータ分布 $p_{\text{data}}$」と「生成分布 $p_g$」の間のJSダイバージェンスを最小化する問題と等価になることが示されています。

\[\min_G \max_D V(D,G) \;\Longleftrightarrow\; \text{(最適な $D$ のもとで)}\; 2\,D_{\text{JS}}(p_{\text{data}} \parallel p_g) - \log 4 \text{ を最小化}\]

生成器の学習が進み $p_g \to p_{\text{data}}$ となるほど $D_{\text{JS}}\to0$ に近づく、という形で、「2つの分布の近さ」を測る尺度としてJSダイバージェンスが理論的な支柱になっています。

まとめ(KL・JSダイバージェンス)

  KLダイバージェンス JSダイバージェンス
対称性 なし あり
値域 $[0,\infty)$ $[0,\log2]$(有界)
主な用途 交差エントロピー誤差(分類の損失関数)、知識蒸留、ラベルスムージング GANの理論的な目的関数、2分布間の対称な近さの評価