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(新策略‖旧策略)约束策略变化
TRPOKL约束优化稳定训练

🎯 核心结论

KL散度核心概念

  1. 定义:分布间的差异度量
  2. 非对称:方向依赖
  3. 非负:最小值为0(分布相同时)
  4. 不是距离:不满足三角不等式
  5. 应用:VAE、知识蒸馏、强化学习

学习路径

KL散度学习四步骤:
1. 基本概念:定义、性质
2. 常见分布:高斯、伯努利
3. 散度关系:KL、JS、Wasserstein
4. 应用:VAE、知识蒸馏

📚 参考文献

  1. 《信息论基础》- Thomas Cover
  2. 《深度学习》- Ian Goodfellow
  3. 《变分推断》
  4. 《知识蒸馏》
  5. 《强化学习》
  6. 《KL散度》
  7. 《JS散度》
  8. 《Wasserstein距离》