KL散度——相对熵

目录

  • 1.概念理解
    • 1.1定义
    • 遇到log 0 怎么办?
  • 2.编程实现

1.概念理解

相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(information gain)。

1.1定义

只需要稍加修改熵H的计算公式就能得到K-L散度的计算公式。设p为观察得到的概率分布,q为另一分布来近似p,则p、q的K-L散度为:
KL散度——相对熵_第1张图片

KL散度是两个概率分布P和Q差别的非对称性的度量。
也可以理解为:用一个分布来近似另一个分布(真实分布)时如何计算信息损失量了。

KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。

散度并非距离: 一些同学把K-L散度看作是不同分布之间距离的度量。这是不对的,因为从K-L散度的计算公式就可以看出它不符合对称性(距离度量应该满足对称性)。比如我们可以通过观察式子可以得出:
D K L ( p ∣ ∣ q ) = ∑ i = 1 N p ( x i ) ⋅ ( log ⁡ p ( x i ) − log ⁡ q ( x i ) ) D_{KL}(p||q)=\sum_{i=1}^{N} p(x_{i})\cdot(\log p(x_i)-\log q(x_i)) DKL(pq)=i=1Np(xi)(logp(xi)logq(xi))
D K L ( q ∣ ∣ p ) = ∑ i = 1 N q ( x i ) ⋅ ( log ⁡ q ( x i ) − log ⁡ p ( x i ) ) D_{KL}(q||p)=\sum_{i=1}^{N} q(x_{i})\cdot(\log q(x_i)-\log p(x_i)) DKL(qp)=i=1Nq(xi)(logq(xi)logp(xi))
∴ D K L ( p ∣ ∣ q ) ≠ D K L ( q ∣ ∣ p ) \therefore D_{KL}(p||q)\not=D_{KL}(q||p) DKL(pq)=DKL(qp)

遇到log 0 怎么办?

KL散度——相对熵_第2张图片

2.编程实现

scipy.stats.entropy(x, y)

参考:(非常感谢)https://www.cnblogs.com/hxsyl/p/4910218.html
https://www.jianshu.com/p/43318a3dc715

你可能感兴趣的:(方法)