概率

这是我学习的一点概率知识时记录的一些笔记 ,希望能对你有所帮助😊

KL散度(Kullback-Leibler Divergence)和JS散度(Jensen-Shannon Divergence)是衡量两个概率分布差异的常用工具,以下是它们的详细解释和对比:


1. KL散度(Kullback-Leibler Divergence)

  • 定义
    对于两个概率分布 ( P ) 和 ( Q ),KL散度衡量用 ( Q ) 近似 ( P ) 时的信息损失:

$$
D_{KL}(P \parallel Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)} \quad \text{(离散)}
$$

$$
D_{KL}(P \parallel Q) = \int P(x) \log \frac{P(x)}{Q(x)} , dx \quad \text{(连续)}
$$

  • 性质

    • 非对称性:( $D_{KL}(P \parallel Q) \neq D_{KL}(Q \parallel P)$ )。
    • 非负性:( $D_{KL} \geq 0$ ),且当 ( P = Q ) 时取零。
    • 不满足距离公理:因不对称且不满足三角不等式。
  • 应用
    用于变分推断、生成模型(如VAE)、信息检索等场景。

  • 缺陷

    • 当 ( Q(x)=0 ) 且 ( P(x)>0 ) 时,KL散度无定义(趋向无穷)。
    • 不对称性可能导致实际解释困难。

2. JS散度(Jensen-Shannon Divergence)

  • 定义
    JS散度是KL散度的对称化版本,基于 ( P ) 和 ( Q ) 的中间分布 ( $M = \frac{1}{2}(P + Q)$ ):

$$
D_{JS}(P \parallel Q) = \frac{1}{2} D_{KL}(P \parallel M) + \frac{1}{2} D_{KL}(Q \parallel M)
$$
取值范围为 ([0, log2])(以2为底的对数)。

  • 性质

    • 对称性 $( D_{JS}(P \parallel Q) = D_{JS}(Q \parallel P)$。
    • 有界性:结果始终在 ([0, 1])(自然对数时 ([0, \log 2]))。
    • 满足距离公理的弱化版本(可平方根后作为距离度量)。
  • 应用
    在GAN(生成对抗网络)中作为损失函数(但实际中更多使用Wasserstein距离)。

  • 优势

    • 避免KL散度的不对称性和无定义问题
    • 对重叠分布更鲁棒。

3. 关键对比

特性KL散度JS散度
对称性不对称对称
取值范围([0, +$\infty$))([0, $\log 2$])
定义域要求需 ( $Q(x)=0 \Rightarrow P(x)=0$ )始终定义良好
计算稳定性可能数值不稳定更稳定

4. 直观理解

  • KL散度:类似于“用Q编码P”的额外信息量。
  • JS散度:对称地衡量两个分布的“平均差异”,通过中间分布平滑处理。

示例

假设 ( P = [0.5, 0.5] ),( Q = [0.9, 0.1] ):

  • ( $D_{KL}(P \parallel Q) = 0.5 \log \frac{0.5}{0.9} + 0.5 \log \frac{0.5}{0.1} \approx 0.693$ )
  • ( $D_{JS}(P \parallel Q) = \frac{1}{2} D_{KL}(P \parallel M) + \frac{1}{2} D_{KL}(Q \parallel M) \approx 0.102 )(其中 ( M = [0.7, 0.3] )$)

总结:KL散度适合需要方向性差异的场景(如编码优化),而JS散度适合对称比较(如分布相似性评估)。两者在机器学习中各有用途,但需注意它们的局限性。


概率
http://pzhwuhu.github.io/2025/10/16/概率/
本文作者
pzhwuhu
发布于
2025年10月16日
更新于
2025年10月16日
许可协议