KL散度
核心观点:KL散度度量两个概率分布间的差异,是变分推断和知识蒸馏的核心工具。
📊 KL散度基本概念
定义
| 概念 | 公式 | 意义 |
|---|
| KL散度 | DKL(P‖Q) = ∑P(x)log[P(x)/Q(x)] | 分布P与Q的差异 |
| 非对称性 | DKL(P‖Q) ≠ DKL(Q‖P) | 方向依赖 |
| 非负性 | DKL(P‖Q) ≥ 0 | 始终非负 |
KL散度性质
graph TB
subgraph KL散度性质
A1["非负性<br/>DKL(P‖Q) ≥ 0"]
A2["非对称性<br/>DKL(P‖Q) ≠ DKL(Q‖P)"]
A3["为0当且仅当<br/>P=Q几乎处处"]
A4["不满足三角不等式<br/>不是距离"]
end
A1 & A2 & A3 & A4
style A1 fill:#ffebee
📈 常见KL散度
高斯分布KL散度
| 分布 | KL散度 |
|---|
| 一元高斯 | ½[log(σ₂²/σ₁²) + (σ₁²+(μ₁-μ₂)²)/σ₂² - 1] |
| 多元高斯 | ½[log |
伯努利分布KL散度
伯努利KL散度:
DKL(P‖Q) = p log(p/q) + (1-p) log((1-p)/(1-q))
🔗 与其他散度的关系
散度关系
graph TB
subgraph 散度关系
A1["KL散度<br/>DKL(P‖Q)"]
A2["反向KL<br/>DKL(Q‖P)"]
A3["JS散度<br/>JSD(P,Q)"]
A4["Wasserstein距离<br/>W(P,Q)"]
end
A1 & A2 --> A3 --> A4
style A1 fill:#ffebee
| 散度 | 公式 | 特点 |
|---|
| KL散度 | ∑P log(P/Q) | 非对称 |
| JS散度 | ½DKL(P‖M) + ½DKL(Q‖M), M=(P+Q)/2 | 对称 |
| Wasserstein距离 | inf E[d(x,y)] | 度量空间 |
🤖 机器学习应用
变分自编码器(VAE)
graph TB
subgraph VAE
A1["编码器<br/>q(z|x)"]
A2["解码器<br/>p(x|z)"]
A3["KL损失<br/>DKL(q(z|x)‖p(z))"]
A4["重建损失<br/>-log p(x|z)"]
end
A1 --> A2
A3 & A4 --> A5[总损失]
style A1 fill:#ffebee
知识蒸馏
| 应用 | 内容 | 意义 |
|---|
| 教师模型 | 大模型输出 | 软标签 |
| 学生模型 | 小模型输出 | 模仿教师 |
| KL损失 | DKL(学生‖教师) | 知识传递 |
强化学习
| 应用 | 方法 | 意义 |
|---|
| 策略优化 | DKL(新策略‖旧策略) | 约束策略变化 |
| TRPO | KL约束优化 | 稳定训练 |
🎯 核心结论
KL散度核心概念
- 定义:分布间的差异度量
- 非对称:方向依赖
- 非负:最小值为0(分布相同时)
- 不是距离:不满足三角不等式
- 应用:VAE、知识蒸馏、强化学习
学习路径
KL散度学习四步骤:
1. 基本概念:定义、性质
2. 常见分布:高斯、伯努利
3. 散度关系:KL、JS、Wasserstein
4. 应用:VAE、知识蒸馏
📚 参考文献
- 《信息论基础》- Thomas Cover
- 《深度学习》- Ian Goodfellow
- 《变分推断》
- 《知识蒸馏》
- 《强化学习》
- 《KL散度》
- 《JS散度》
- 《Wasserstein距离》