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,实现高质量的数据降维与可视化。
相关推荐
七牛开发者2 小时前
从 GLM 到 GPT,HarnessPro 如何用 RSI 降低 Agent 成本
人工智能·gpt·agent·harness·rsi
跨境卫士-小汪3 小时前
TikTokShop欧洲商品接口架构调整跨境技术团队需要做好哪些准备
大数据·人工智能·新媒体运营·跨境电商·跨境·营销策略
康小汪3 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
收放扳机4 小时前
多机连线(In-Line)场景下,收放板机“缓存工位”的容量与架构选型参考
人工智能·科技·自动化·制造·pcb工艺
武天旭4 小时前
AI安全--AI大模型的后门攻击检测与防御
人工智能·深度学习·安全·机器学习
智能运维指南4 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
人工智能AI技术4 小时前
DeepInfer开源炸场!别再妄想个人电脑跑满血DeepSeek
人工智能
深蓝电商API4 小时前
用AI生成拟人行为:让鼠标轨迹更“有人味”
人工智能·爬虫
znnnk4 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle
深蓝AI4 小时前
网站正在对 AI Agent 集体关门:亚马逊封锁 Muse、银行拒绝登录,开发者怎么活下去
人工智能