KL散度衡量两个概率分布的差异,是信息论和机器学习的核心概念。

定义

离散分布

连续分布

核心性质

性质说明
非负性,当且仅当 时为0
非对称性
与熵的关系

应用场景

领域应用
VAE隐空间正则化
强化学习策略更新约束(PPO、TRPO)
GAN分布差异度量
知识蒸馏教师-学生模型优化

与其他度量对比

指标对称性取值范围适用场景
KL散度VAE、策略优化
JS散度文本相似度
WassersteinGAN

Python 实现

import numpy as np
 
def kl_divergence(p, q):
    epsilon = 1e-15
    p = np.clip(p, epsilon, None)
    q = np.clip(q, epsilon, None)
    return np.sum(p * np.log(p / q))