---
title: KL発散と交差エントロピー
url: https://doc.liz6.com/ja/theory/01-information-theory/02-kl-divergence-and-cross-entropy
locale: ja
area: theory
tags:
- theory
- information-theory
date: 2026-07-18
modified: 2026-07-29
description: KL発散は「誤った分布で符号化した場合、平均して何ビット余分にかかるか」、交差エントロピーは「真のエントロピー＋このペナルティ」です。交差エントロピー損失の最小化は最尤推定と同等であり、これが情報論を深層学習の損失関数に直接結びつける線です。目標分布が多峰性を持ち近似モデルの表現力が制限されている場合、forward/reverse KLはそれぞれ「モードをカバーする」と「モードにロックされる」という異なる傾向を示すことがよくあります。
---

# KL発散と交差エントロピー

> KL発散は「誤った分布で符号化した場合、平均して何ビット余分にかかるか」、交差エントロピーは「真のエントロピー＋このペナルティ」です。交差エントロピー損失の最小化は最尤推定と同等であり、これが情報論を深層学習の損失関数に直接結びつける線です。目標分布が多峰性を持ち近似モデルの表現力が制限されている場合、forward/reverse KLはそれぞれ「モードをカバーする」と「モードにロックされる」という異なる傾向を示すことがよくあります。

## 導入：間違った符号表

前章では、データが分布 $p$ から生成される場合、エントロピー $H(p)$ が平均符号長の理論的下界であり、$p$ に最適化されたブロック符号によって漸近的にこれに近づけることができることを説明しました。

しかし現実には、真の $p$ を入手できないことが往々にしてあります。手元にあるのは近似 $q$ だけです——モデルが推定したもの、あるいは仮定されたものです。そのため、真に $p$ から生成されたデータを圧縮するために、「$q$ のために最適化された符号表」を使うしかありません。

符号表を間違えるとどうなるでしょうか？メッセージごとに**平均して少し多くのビット**がかかります。この余分にかかる部分が、本章の主人公です。

## KL発散：誤った分布を使う代償

**相対エントロピー / KL発散（Kullback-Leibler divergence）** は、この「余分にかかるビット」を正確に計測します。

$$D_{KL}(p \parallel q) = \sum_x p(x) \log_2 \frac{p(x)}{q(x)}$$

前章の言葉で分解して見れば、その意味は明らかです。$p$ の最適符号による平均符号長は $H(p)$ です。一方、$q$ のために最適化された符号に切り替えると、平均符号長は交差エントロピー $H(p,q)$ になります。この差こそがKL発散です。

$$D_{KL}(p \parallel q) = H(p,q) - H(p)$$

この差額は純粋な無駄です——データも情報量も変わっていません。符号表を間違えただけで、余分に支払わなければなりません。

重要な性質として、$D_{KL}(p \parallel q) \geq 0$（ギブスの不等式）が成り立ち、等号成立は $p=q$ のみです。これは「距離」のように見えますが、2つの分布がどれほど異なるかを測るものです。しかし、**真の距離ではありません**——次の節で説明する非対称性がその理由です。

## 非対称性：$D_{KL}(p \parallel q) \neq D_{KL}(q \parallel p)$

これはKL発散で最も見落とされがちですが、影響が大きい性質です。$p$ と $q$ を入れ替えると、数値も振る舞いも変化します。

その根底にあるのは、和の重みです。$D_{KL}(p \parallel q) = \sum_x p(x) \log \frac{p(x)}{q(x)}$ において、各項の重みは $p(x)$ です。一方、$D_{KL}(q \parallel p)$ の重みは $q(x)$ です。どちらが重みになるかによって、ペナルティがどこに課されるかが決まります。

- **$D_{KL}(p \parallel q)$ は「$p$ にはあるが $q$ にはない」部分をペナルティ化します。** $p(x)>0$ だが $q(x)\to 0$ となる場所では、$\log(p/q)\to\infty$ となり、代償は無限大になります。そのため、$q$ は **$p$ のサポート領域のどこにも隙間を作ることができず**、$p$ の全質量をカバーせざるを得なくなります。
- **$D_{KL}(q \parallel p)$ は「$q$ にはあるが $p$ にはない」部分をペナルティ化します。** $q(x)>0$ だが $p(x)\to 0$ となる場所では、代償は無限大になります。そのため、$q$ は **$p$ の高密度領域に留まることしかできず**、境界を越えるよりも、むしろ1つの峰に縮こまる方を選びます。

この非対称性のため、「KLを最小化する」という表現は不十分です——どちらの分布が先に来るかを明確にする必要があります。これが、次の forward / reverse の区別につながります。

**抽象的な議論に留まらず、具体的な数字で見てみましょう。** $p=(0.5,\ 0.5)$、$q=(0.9,\ 0.1)$ とします。

$$D_{KL}(p \parallel q) = 0.5\log_2\frac{0.5}{0.9} + 0.5\log_2\frac{0.5}{0.1} \approx 0.74\ \text{bit}$$

$$D_{KL}(q \parallel p) = 0.9\log_2\frac{0.9}{0.5} + 0.1\log_2\frac{0.1}{0.5} \approx 0.53\ \text{bit}$$

同じ分布のペアでも、方向が違えば結果は異なります。これは丸め誤差ではなく、構造的な違いです。どちらが和の重みになるかによって、ペナルティの向きが決まります。

## 交差エントロピーと最尤推定：深層学習への接続線

さて、KLを分解してみましょう。深層学習への接続線が姿を現します。

**交差エントロピー（cross-entropy）** $H(p,q) = -\sum_x p(x) \log_2 q(x)$ は、定義より以下のように分解できます。

$$H(p,q) = H(p) + D_{KL}(p \parallel q)$$

教師あり学習の文脈に当てはめてみましょう。ここで $p$ はデータの真の分布（訓練セットで与えられ、$H(p)$ は定数でありモデルに依存しません）、$q$ はモデルパラメータ $\theta$ が予測する分布です。すると：

**交差エントロピー損失の最小化 = $D_{KL}(p \parallel q)$ の最小化**——定数項 $H(p)$ は勾配に影響を与えないため、無視されます。

さらに一歩進みましょう。分類タスクでは、$p$ は通常 one-hot（真のラベルの確率が $1$、他が $0$）であり、このとき和は1項に収束します：$H(p,q) = -\log q(\text{真のクラス})$。データセット全体で和を取ると：

$$\sum_i -\log q(y_i \mid x_i) = -\log \prod_i q(y_i \mid x_i)$$

右辺はまさに**負の対数尤度**です。これにより、以下の3つが1つに結びつきます。

> 交差エントロピー損失の最小化 ⟺ forward KLの最小化 ⟺ **最尤推定（MLE）**。

これが、すべての分類モデルやすべてのLLMの事前学習で交差エントロピー損失が使われる理由です。これは場当たり的なエンジニアリングのトリックではなく、「モデルの分布をデータの分布にできるだけ近づける」という目標の情報論的な正確な表現です。LLMが次のトークンの分布 $q$ を予測し、真のトークンの one-hot $p$ に対して交差エントロピーを計算する際にも、まさにこの論理が適用されています（詳細は [LLMにおける情報論](/theory/01-information-theory/06-information-theory-in-llms.md) を参照）。

| 量 | 公式 | 意味 |
|------|------|------|
| エントロピー $H(p)$ | $-\sum p\log p$ | $p$ 自身の最適符号による平均符号長（理論的下界） |
| 交差エントロピー $H(p,q)$ | $-\sum p\log q$ | $q$ の符号で $p$ のデータを圧縮した際の平均符号長 |
| KL発散 $D_{KL}(p \parallel q)$ | $\sum p\log(p/q)$ | 両者の差 ＝ 誤った分布を使ったことで余分にかかるビット |

## Forward KL vs Reverse KL：カバーするか、ロックするか

非対称性は机上の空論ではなく、フィットされた分布の形状に影響を与えます。以下では、明確な前提を持つ典型的なケースについて議論します。**目標分布 $p$ が多峰性を持ち、調整可能な近似分布族 $q$ の表現力が制限されている**場合、例えば単峰性ガウス分布しか選べない場合などです。これらの条件を外すと、「forward は必ずカバーし、reverse は必ずピークを探す」というのは無条件に成り立つ定理ではありません。

典型的な設定を想定します：$p$ は固定された目標で、しばしば双峰性を持ちます。$q$ は我々が調整可能な近似で、しばしば制限されており、例えば単峰性ガウス分布に限られます。最適化の際に forward か reverse かを選ぶかによって、フィットされる $q$ の形状は全く異なります。

- **Forward KL $D_{KL}(p \parallel q)$（mode-covering、カバー型）**：これは、$q$ が $p$ に質量がある場所に隙間を作ることをペナルティ化します。そのため、$q$ は **広がり、$p$ のすべてのモードを覆い尽くさざるを得なくなり**、その結果として、2つの峰の間の低密度領域に本来あるべきでない質量を置くことさえあります。これが最大尤度／教師あり学習の振る舞いです——データのあらゆるパターンをカバーしたいと望みます。
- **Reverse KL $D_{KL}(q \parallel p)$（mode-seeking、ピーク探索型）**：これは、$q$ が $p$ の低密度領域に侵入することをペナルティ化します。そのため、$q$ は **単一のモードにロックされ、狭い分布に縮こまり**、他の峰を意図的に無視します。これが変分推論（VI）のデフォルトの振る舞いであり、RLHFにおけるポリシー最適化の傾向でもあります——高い報酬のモードに確信を持って賭けることを好み、分散させることを避けます。

<svg viewBox="0 0 720 300" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,'Source Han Sans CN','Microsoft YaHei',sans-serif" role="img" aria-label="forward KL と reverse KL による双峰分布へのフィッティングの比較：forward KL は両方の峰を覆う広い分布をフィッティングし、reverse KL は単一の峰にロックされる狭い分布をフィッティングする">
  <rect width="720" height="300" fill="#ffffff"/>
  <text x="360" y="28" text-anchor="middle" font-size="17" font-weight="700" fill="#1f2933">同じ双峰性の p でも、2つの KL で全く異なる q がフィッティングされる</text>
  <text x="185" y="58" text-anchor="middle" font-size="13" font-weight="700" fill="#4338ca">Forward KL: D_KL(p‖q)</text>
  <text x="185" y="76" text-anchor="middle" font-size="11" fill="#64748b">mode-covering 両峰をカバー</text>
  <line x1="60" y1="230" x2="320" y2="230" stroke="#475569" stroke-width="1.2"/>
  <path d="M70,230 C110,110 150,110 190,150 C230,110 270,110 300,230" fill="none" stroke="#94a3b8" stroke-width="2" stroke-dasharray="5 3"/>
  <path d="M60,230 C120,150 250,150 320,230" fill="#4f46e5" fill-opacity="0.16" stroke="#4f46e5" stroke-width="2.4"/>
  <text x="190" y="252" text-anchor="middle" font-size="11" fill="#3730a3">q(青) が広がり、p(灰色破線) の両峰を覆う</text>
  <text x="535" y="58" text-anchor="middle" font-size="13" font-weight="700" fill="#0f766e">Reverse KL: D_KL(q‖p)</text>
  <text x="535" y="76" text-anchor="middle" font-size="11" fill="#64748b">mode-seeking 単一峰にロック</text>
  <line x1="410" y1="230" x2="670" y2="230" stroke="#475569" stroke-width="1.2"/>
  <path d="M420,230 C460,110 500,110 540,150 C580,110 620,110 650,230" fill="none" stroke="#94a3b8" stroke-width="2" stroke-dasharray="5 3"/>
  <path d="M455,230 C475,120 505,120 525,230" fill="#0d9488" fill-opacity="0.18" stroke="#0d9488" stroke-width="2.4"/>
  <text x="540" y="252" text-anchor="middle" font-size="11" fill="#0f766e">q(水色) が左の峰に縮こまり、右の峰を無視</text>
  <rect x="120" y="270" width="480" height="22" rx="6" fill="#eef2ff"/>
  <text x="360" y="285" text-anchor="middle" font-size="11.5" fill="#3730a3">どちらの方向を選ぶかで、「ぼやけていても見逃したくない」か「見逃してもぼやけさせたくない」のどちらを選ぶかが決まる</text>
</svg>

上記の制限付きフィッティングのシナリオでは、次の一言で記憶できます：**forward KL は見逃すことを恐れる（そのため広がり傾向がある）、reverse KL は間違えることを恐れる（そのため狭くなる傾向がある）**。RLHF では $D_{KL}(\pi_\theta\parallel\pi_\text{ref})$ をよく使い、ポリシーを参照モデルの近くに固定します。この方向は確かに重要ですが、その主な役割はポリシーのドリフトを制限することであり、「ピーク探索」という直感だけで説明すべきではありません。詳細は [LLMにおける情報論](/theory/01-information-theory/06-information-theory-in-llms.md) を参照してください。

## Jensen-Shannon発散：対称化のパッチ

時として、KLの非対称性は不便です——例えば、真の「分布間の距離」が欲しい場合などです。

**Jensen-Shannon発散（JS divergence）** は、それに対する対称化の手法です。まず中間分布 $m = (p+q)/2$ を取り、両側のKLの平均を取ります。

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

これは対称性を持ち（$\text{JS}(p,q)=\text{JS}(q,p)$）、有界であり（底を2とすると $0 \leq \text{JS} \leq 1$ bit）、さらに $\sqrt{\text{JS}}$ は正当な距離度量となります。元のGANの判別器の目的関数は、本質的にJS発散の最小化を行っています。

しかしながら、「符号化のコスト」という物理的な意味合いや、MLEとの対応が必要な場合には、人々は依然としてKLを直接使用します。対称性は常に無償の恩恵というわけではありません。

## 参考文献

- **教科書**: "Elements of Information Theory" (Cover & Thomas — 第2章 相対エントロピー、ギブスの不等式の証明を含む)
- **教科書**: "Pattern Recognition and Machine Learning" (Bishop — 10.1節 変分推論、forward/reverse KLの振る舞いの古典的な図解)
- **論文**: "Generative Adversarial Nets" (Goodfellow et al., 2014 — 判別器の目的関数とJS発散の関連性)

*キーワード: 相対エントロピー relative entropy, KL発散 KL divergence, 交差エントロピー cross-entropy, 非対称性 asymmetry, 最尤推定 MLE, forward KL, reverse KL, mode-covering, mode-seeking, Jensen-Shannon divergence, ギブスの不等式*
