KL 散度(KL Divergence),是衡量两个概率分布之间差异的一种非对称度量。对分布 $P(x)$ 和 $Q(x)$,KL 散度可以被理解为按照 $P(x)$ 或 $Q(x)$ 加权的对数似然比的期望值:

$$ D_{KL}(P || Q) = \mathbb{E}_{x \sim P} \left[ \log \frac{P(x)}{Q(x)} \right] $$

对于离散分布,KL 散度定义为:

$$ \sum_{x} P(x) \log \frac{P(x)}{Q(x)} $$

对于连续分布,KL 散度定义为:

$$ \int P(x) \log \frac{P(x)}{Q(x)} dx $$

性质

非负性

从Jenson不等式可以导出KL散度的非负性:

$$ D_{KL}(P || Q) = \mathbb{E}_{x \sim P} \left[ -\log \frac{Q(x)}{P(x)} \right] \geq -\log \mathbb{E}_{x \sim P} \left[ \frac{Q(x)}{P(x)} \right] = -\log 1 = 0 $$

也可直接用基本不等式:

$$ D_{KL}(P || Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)} \geq \sum_{x} P(x) (1 - \frac{Q(x)}{P(x)}) = \sum_{x} P(x) - \sum_x Q(x) = 0 $$

非对称性

这是显然的,$D_{KL}(P || Q)$,可以理解为$P$ 是真实分布,故用 $P$ 加权。

KL 散度与交叉熵

交叉熵定义为:

$$ H(P, Q) = - \mathbb{E}_{x \sim P} [\log Q(x)] $$

因此,KL 散度可以表示为交叉熵与熵的差值:

$$ D_{KL}(P || Q) = H(P, Q) - H(P) $$

其中,$H(P)$ 是分布 $P$ 的熵,定义为:

$$ H(P) = - \mathbb{E}_{x \sim P} [\log P(x)] $$

由于在给定一组数据的情况下,$H(P)$ 是常数,因此最小化 KL 散度等价于最小化交叉熵。

分类问题中的交叉熵

在分类问题中,真实标签通常使用独热编码(one-hot encoding)表示。对某样本,其为 One-hot 编码 $\mathbf{y}$,预测概率分布为 $\hat{\mathbf{y}}$,则交叉熵损失函数为:

$$ L = - \sum_{i} y_i \log \hat{y}_i $$

但由于 $\mathbf{y}$ 是独热编码,只有一个元素为1,其余为0,因此损失函数简化为:

$$ L = - \log \hat{y}_k $$

其中,$k$ 是真实类别的索引。