损失函数-分类-KL 散度(KL Loss)

  • Kullback-Leibler Divergence

  • Kullback-Leibler Divergence (KL散度),又称为相对熵,是信息论中的一个概念,用于衡量两个概率分布之间的差异。在机器学习中,它常用于评估模型预测分布与真实分布之间的距离。

L=iP(i)logP(i)Q(i)KLDKL(P||Q)=xP(x)logP(x)Q(x)KLDKL(P||Q)=P(x)logP(x)Q(x)dxP(x)𝑄(𝑥)𝐷KL(𝑃∣∣𝑄)𝑃𝑄
  • 优点:衡量两个概率分布之间的差异。

  • 应用场景:分类任务中需要比较概率分布。

直观意义

信息损失的度量: KL散度衡量了如果用 𝑄 代替 P,会损失多少信息量:

D_kl(P∣∣Q) 越小,表示 Q 越接近 P。
D_kl(P∣∣Q)=0 表示 P=Q。

非对称性:

D_kl(P∣∣Q) != D_kl(Q∣∣P),
这意味着它不是一种真正的“距离”,因为不满足对称性。

KL散度与交叉熵的关系

  • KL散度与交叉熵和熵的关系:DKL(P||Q)=H(P,Q)H(P)

  • 其中

  • 交叉熵 H(P,Q) H(P,Q)=xP(x)logQ(x)

  • 熵 H(P) H(P)=xP(x)logP(x)

变体或替代方法

  • 反向KL散度: 使用 DKL(Q||P) ,适用于某些需要强调 Q(x) 为 0 的场景。

  • Jensen-Shannon Divergence (JS散度): 是 KL散度的对称变体,定义为 DJS(P||Q)=12DKL(P||M)+12DKL(Q||M)
    • 其中 M 为 P 和 Q 的均值分布:M=12(P+Q)

  • Wasserstein距离: 用于生成对抗网络(GAN)中的分布对比,解决了 KL散度在某些场景下的数值问题。