KL散度(Kullback-Leibler Divergence, KLD) 是衡量两个概率分布 P 和 Q之间差异的一种非对称度量。它用于描述当使用分布 Q 逼近真实分布 P 时,信息丢失的程度。

KL散度的数学定义
给定两个离散概率分布 P(x)和 Q(x),它们在相同的样本空间上定义,则 KL 散度计算如下:

对于连续概率分布:

其中:
- P(x) 是真实分布(或目标分布)。
- Q(x)是近似分布(或模型分布)。
- log 通常是以 2 为底(信息论中)或以 e 为底(统计学习中)。
KL散度的解释
- 如果 P=Q,则 DKL(P∣∣Q)=0,表示两个分布完全相同。
- 如果 P 和 Q 差异越大,KL 散度越大,意味着 Q 不能很好地逼近 P。
- KL 散度是非对称的 ,即
KL散度的应用
-
机器学习与深度学习
- 在变分自编码器(VAE)中,KL 散度用于约束潜在变量分布接近标准正态分布。
- 在生成对抗网络(GANs)中,KL 散度用于衡量真实数据分布和生成数据分布的差异。
- 在深度聚类(如 Mutual Supervised Collaborative Deep Clustering)中,KL 散度用于对比不同分布,使其逐步对齐。
-
自然语言处理(NLP)
- 在语言模型中,KL 散度用于评估两个文本分布的相似性。
- 在主题建模(LDA)中,KL 散度用于衡量不同主题分布的相似性。
-
数据压缩与信息论
- 用于评估信息编码的有效性,例如衡量 Huffman 编码或熵编码的优劣。
KL散度与交叉熵的关系
交叉熵(Cross-Entropy)定义为:

KL 散度可以用交叉熵和熵(Entropy)表示:

其中:
是熵,表示分布 P 的不确定性。
- H(P,Q) 是交叉熵,表示用 Q 逼近 P 时的编码成本。
因此,最小化 KL 散度等价于最小化交叉熵。
KL 散度是一种衡量两个概率分布相似度的重要工具,在机器学习、深度学习、NLP 和数据压缩等多个领域有广泛应用。它是非对称的,且可以用交叉熵来表示,在变分推断、信息论和深度学习模型优化中至关重要。