KL散度
KL 散度(Kullback-Leibler Divergence,全称库尔贝克-勒布莱尔散度) ,又称相对熵(Relative Entropy) ,是概率论与信息论中用来衡量两个概率分布之间差异程度的一种量化指标。
在数据科学和机器学习(如 t-SNE 降维、变分自编码器 VAE、生成对抗网络 GAN 等)中,它常被用作损失函数(Loss Function),用来指导模型去拟合真实的数据分布。
一、 直观理解:它到底在衡量什么?
假设我们有一个真实的概率分布 PPP ,和一个模型预测或近邻估计的近似分布 QQQ:
- 信息差的角度: 如果我们用分布 QQQ 来代替真实分布 PPP,在这个过程中损失了多少额外的信息?损失的信息量越大,KL 散度就越大。
- 分布距离的角度: 它衡量了分布 QQQ 偏离分布 PPP 有"多远"。如果两个分布完全相同(P=QP = QP=Q),KL 散度就等于 0。
二、 数学定义与计算公式
对于相同的随机变量范围,根据变量类型分为离散型和连续型公式:
1. 离散型概率分布公式
假设随机变量取值为 x1,x2,...,xNx_1, x_2, \dots, x_Nx1,x2,...,xN,分布 PPP 和 QQQ 的 KL 散度定义为:
KL(P∥Q)=∑iP(xi)ln(P(xi)Q(xi))\text{KL}(P \parallel Q) = \sum_{i} P(x_i) \ln \left( \frac{P(x_i)}{Q(x_i)} \right)KL(P∥Q)=i∑P(xi)ln(Q(xi)P(xi))
-
展开拆解: 利用对数性质 ln(ab)=lna−lnb\ln(\frac{a}{b}) = \ln a - \ln bln(ba)=lna−lnb,可以化简为:
KL(P∥Q)=∑iP(xi)lnP(xi)−∑iP(xi)lnQ(xi)=−H(P)+H(P,Q)\text{KL}(P \parallel Q) = \sum_{i} P(x_i) \ln P(x_i) - \sum_{i} P(x_i) \ln Q(x_i) = -H(P) + H(P, Q)KL(P∥Q)=i∑P(xi)lnP(xi)−i∑P(xi)lnQ(xi)=−H(P)+H(P,Q)
- H(P)H(P)H(P) 是分布 PPP 的信息熵(Entropy)。
- H(P,Q)H(P, Q)H(P,Q) 是 PPP 与 QQQ 的交叉熵(Cross-Entropy)。
- 结论: KL散度=交叉熵−信息熵\text{KL} \text{散度} = \text{交叉熵} - \text{信息熵}KL散度=交叉熵−信息熵。这也是为什么在分类问题中,优化交叉熵就等价于优化 KL 散度。
2. 连续型概率分布公式
KL(P∥Q)=∫−∞+∞p(x)ln(p(x)q(x))dx\text{KL}(P \parallel Q) = \int_{-\infty}^{+\infty} p(x) \ln \left( \frac{p(x)}{q(x)} \right) dxKL(P∥Q)=∫−∞+∞p(x)ln(q(x)p(x))dx
三、 KL 散度的三大核心性质
-
非负性(Non-negativity):
KL(P∥Q)≥0\text{KL}(P \parallel Q) \ge 0KL(P∥Q)≥0
恒大于等于 0。当且仅当对于所有的 xxx 都有 P(x)=Q(x)P(x) = Q(x)P(x)=Q(x) 时,KL(P∥Q)=0\text{KL}(P \parallel Q) = 0KL(P∥Q)=0。(此性质由吉布斯不等式/Jensen 不等式证明)
-
不对称性(Asymmetry)------ 核心注意点!
KL(P∥Q)≠KL(Q∥P)\text{KL}(P \parallel Q) \neq \text{KL}(Q \parallel P)KL(P∥Q)=KL(Q∥P)
- 也就是说,从 PPP 到 QQQ 的散度不等于从 QQQ 到 PPP 的散度。
- 正因为这种不对称性,KL 散度在数学上不能被称为真正的"距离" (严格数学意义上的距离指标必须满足对称性,如欧氏距离)。如果需要对称的距离度量,可以使用基于 KL 散度改进的 JS 散度(Jensen-Shannon Divergence)。
-
方向选择的影响(在优化中的不同行为):
- KL(P∥Q)\text{KL}(P \parallel Q)KL(P∥Q)(前向 KL / 均值选择 Mode-averaging): 当 P(x)>0P(x) > 0P(x)>0 时,Q(x)Q(x)Q(x) 不能为 0,否则 lnPQ→∞\ln \frac{P}{Q} \to \inftylnQP→∞ 惩罚巨大。因此 QQQ 会倾向于"盖住" PPP 的所有区域,适合概率估计(如 t-SNE)。
- KL(Q∥P)\text{KL}(Q \parallel P)KL(Q∥P)(反向 KL / 模态选择 Mode-seeking): QQQ 会优先拟合 PPP 的主要峰值,倾向于"避开" P(x)≈0P(x) \approx 0P(x)≈0 的区域,常用于变分推断(Variational Inference)。
四、 在 t-SNE 降维中的应用
L=KL(P∥Q)=∑i≠jpijln(pijqij)L = \text{KL}(P \parallel Q) = \sum_{i \neq j} p_{ij} \ln \left( \frac{p_{ij}}{q_{ij}} \right)L=KL(P∥Q)=i=j∑pijln(qijpij)
- PPP 是高维数据的真实分布: 点对之间真实的相对相似度。
- QQQ 是低维数据的映射分布: 在低维空间里当前生成的分布。
- 优化过程: 模型通过梯度下降不断更新低维点的坐标,使 KL 散度 LLL 越来越小,最终让低维分布 QQQ 完美贴合高维分布 PPP,实现高质量的数据降维与可视化。