概率
这是我学习的一点概率知识时记录的一些笔记 ,希望能对你有所帮助😊
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/概率/