KLダイバージェンス(Kullback-Leibler Divergence)!基礎から実際の計算まで



1. KLダイバージェンスとは
KLダイバージェンス(Kullback-Leibler Divergence)は、情報理論や統計学、機械学習などの分野で広く使われる概念です。KLダイバージェンスは、ある確率分布 \( P \) から別の確率分布 \( Q \) への情報の逸脱量を測定するために用いられます。具体的には、ある基準となる分布 \( P \) に対して、別の分布 \( Q \) がどれだけ異なるかを定量化します。
1.1. KLダイバージェンスの様々な呼び名

KLダイバージェンス(Kullback-Leibler Divergence)は分野によってさまざまな名称があります。
- 情報ダイバージェンス
- 情報利得
- 相対エントロピー
- カルバック・ライブラー距離
1.2. 定義
\[ D_{\text{KL}}(P \| Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)} \]
連続型の確率分布の場合は、積分を用いて次のように定義されます。
\[ D_{\text{KL}}(P \| Q) = \int_{-\infty}^{\infty} p(x) \log \frac{p(x)}{q(x)} \, dx \]
ここで\( P \) と \( Q \) はそれぞれの確率質量関数または確率密度関数、そして \( P(i) \) と \( Q(i) \) はそれぞれの値の確率を表します。
2. 性質



KLダイバージェンスの性質である非対称性と非負性について確認する。
2.1. 非対称性
\( P \) と \( Q \) の順序が入れ替わると結果が異なります。
KLダイバージェンスの定義は次の通りです。
\[ D_{\text{KL}}(P \| Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)} \]
これに対して、\( Q \) と \( P \) を入れ替えた場合のKLダイバージェンスは次のようになります。
\[ D_{\text{KL}}(Q \| P) = \sum_{i} Q(i) \log \frac{Q(i)}{P(i)} \]
これら二つが等しいためには次の条件が必要です:
\[ \sum_{i} P(i) \log \frac{P(i)}{Q(i)} = \sum_{i} Q(i) \log \frac{Q(i)}{P(i)} \]
しかし、一般にこれは成立しません。具体例として、\( P \) と \( Q \) が異なる確率分布である場合を考えます。
例えば、\( P \) が 0.5, 0.5 であり、\( Q \) が 0.4, 0.6 である場合。
\[ D_{\text{KL}}(P \| Q) = 0.5 \log \frac{0.5}{0.4} + 0.5 \log \frac{0.5}{0.6} = 0.02041\]
\[ D_{\text{KL}}(Q \| P) = 0.4 \log \frac{0.4}{0.5} + 0.6 \log \frac{0.6}{0.5} = 0.02013 \]
これらの値は一般に異なります。よって、KLダイバージェンスは非対称であることが確認できます。
2.2. 非負性の証明
$$ D_{\text{KL}}(P \| Q) \geq 0 $$
\( P = Q \) のときに限り0になります。



2.2.1. Jensenの不等式とは
凸関数 \( f \) に対するJensenの不等式は次のように表現されます。
確率変数 \( X \) があり、 \( f \) が凸関数であるとき、
\[ f(\mathbb{E}[X]) \leq \mathbb{E}[f(X)] \]
が成立します。ここで、 \( \mathbb{E}[X] \) は \( X \) の期待値を表し、 \( \mathbb{E}[f(X)] \) は \( f(X) \) の期待値を表します。
また、確率変数 \( X \) が取り得る値を \( x_1, x_2, \ldots, x_n \)、対応する確率を \( p_1, p_2, \ldots, p_n \) とすると、
\[ \mathbb{E}[X] = \sum_{i=1}^n p_i x_i \]
\[ \mathbb{E}[f(X)] = \sum_{i=1}^n p_i f(x_i) \]
\[ f\left(\sum_{i=1}^n p_i x_i\right) \leq \sum_{i=1}^n p_i f(x_i) \]
2.2.2. KLダイバージェンスの非負性
Jensenの不等式によると、凸関数 \( \phi \) に対して次のように成り立ちます。
\[ \phi\left( \sum_{i} P(i) \frac{Q(i)}{P(i)}\right) \leq \sum_{i} P(i) \phi\left(\frac{Q(i)}{P(i)}\right) \]
ここで、x>0として、凸関数 \( \phi(x) = -\log x \) を適用します。
\[- \log \left( \sum_{i} P(i) \frac{Q(i)}{P(i)} \right) \leq -\sum_{i} P(i) \log\left(\frac{Q(i)}{P(i)} \right) \]
\[ -\log \left( \sum_{i} Q(i) \right) \leq \sum_{i} P(i) \log \left( \frac{P(i)}{Q(i)} \right) \]
右辺の \( \sum_{i} Q(i) = 1 \) であることから、次のようになります。
\[ -\log 1 \leq \sum_{i} P(i) \log \left( \frac{P(i)}{Q(i)} \right) \]
つまり、
\[ 0 \leq \sum_{i} P(i) \log \left( \frac{P(i)}{Q(i)} \right) \]
よって、\( D_{\text{KL}}(P \| Q) \geq 0 \) が示されます。
さらに、\( P = Q \) の場合には、すべての \( i \) について \( P(i) = Q(i) \) となり、
\[ D_{\text{KL}}(P \| Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)} = \sum_{i} P(i) \log 1 = 0 \]
従って、\( P = Q \) のときに限り、KLダイバージェンスは0になります。
