KL散度的介绍

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)=ln⁡a−ln⁡b\ln(\frac{a}{b}) = \ln a - \ln bln(ba)=lna−lnb,可以化简为:

    KL(P∥Q)=∑iP(xi)ln⁡P(xi)−∑iP(xi)ln⁡Q(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 散度的三大核心性质

  1. 非负性(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 不等式证明)

  2. 不对称性(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)。
  3. 方向选择的影响(在优化中的不同行为):

    • 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,否则 ln⁡PQ→∞\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,实现高质量的数据降维与可视化。
相关推荐
2601_956743685 分钟前
上海GEO营销工程实践:知识库构建、AI内容生产、官网承接与监测优化闭环评估
人工智能·ai·geo·上海
盟接之桥20 分钟前
当大模型遇见线束制造:不是通用AI,而是行业AI
大数据·网络·人工智能·安全·制造
归秋14240 分钟前
2026 企业 AI 办公工具选型指南:从评估框架到产品适配
大数据·运维·人工智能
for_ever_love__1 小时前
模型评估与过拟合——交叉验证、正则化与指标解读
机器学习·模型评估·交叉验证·过拟合
冬奇Lab1 小时前
开源项目第229期:e2e — 用自然语言写 E2E 测试,还能把 Agent 跑过的操作录成‘回放缓存‘免模型调用
人工智能·测试
东风破_1 小时前
从 Neo4j 到 GraphRAG:用 Text-to-Cypher 构建图检索 RAG
人工智能·后端
冬奇Lab1 小时前
LLM 自动化测试系列(05):移动端自动化(一)——ARTEMIS 的双模式架构拆解
人工智能·测试
DisonTangor1 小时前
llama.cpp 新特性:决策模型
人工智能·开源·aigc
鲲穹AI种草1 小时前
AI 生成 PPT 工具怎么选?鲲穹 PPT 功能实测与横向对比
人工智能·powerpoint
AI技术新视界1 小时前
Strata 的工作原理
人工智能·推理引擎·本地ai