有两个概率分布:真实分布 P(x):世界的真实规律;模型分布 Q(x):我们模型预测的结果。
KL 散度衡量的就是这两个分布之间的“距离”:\(D_{KL}(P||Q) = \sum_{x}^{}{P(x)log\frac{P(x)}{Q(x)}}\).
越接近 0 → 模型越接近真实分布.
假设你在猜天气:
真实情况 P:晴天 80%,下雨 20%;
你的预测 Q:晴天 50%,下雨 50%。
计算:\(D_{KL}(P||Q) = 0.8log\frac{0.8}{0.5} + 0.2log\frac{0.2}{0.5}\)
取自然对数ln:
\(D_{KL} = 0.8 * 0.47 + 0.2 * (-0.92) = 0.376 - 0.184 = 0.192\)
KL 散度 = 0.192 nats
(如果用 log₂,就是约 0.277 bits)
意思是:你这个预测方案,每次猜天气,平均“浪费了” 0.277 bits 的信息。
注意,KL散度并非对称:
\(D_{KL}(P||Q) \neq D_{KL}(Q||P)\).
严格来说,KL散度不是距离,而是一种信息差异。表示“用模型分布 Q 近似真实分布 P 时,多浪费了多少信息”。