K-L 散度

Posted baitian963

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K-L 散度相关的知识,希望对你有一定的参考价值。

K-L散度度量信息损失

只需要稍加修改熵H的计算公式就能得到K-L散度的计算公式。设p为观察得到的概率分布,q为另一分布来近似p,则pqK-L散度为:

 
技术图片
entropy-p-q

显然,根据上面的公式,K-L散度其实是数据的原始分布p和近似分布q之间的对数差值的期望。如果继续用2为底的对数计算,则K-L散度值表示信息损失的二进制位数。下面公式以期望表达K-L散度:

 
技术图片
DKL1

一般,K-L散度以下面的书写方式更常见:

 
技术图片
DKL2

注:log a - log b = log (a/b)

OK,现在我们知道当用一个分布来近似另一个分布时如何计算信息损失量了。接下来,让我们重新回到最开始的蠕虫牙齿数量概率分布的问题。



作者:Aspirinrin
链接:https://www.jianshu.com/p/43318a3dc715
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
 
 
 

1. KL散度

KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q 差别的非对称性的度量。 KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。

定义如下:

技术图片

因为对数函数是凸函数,所以KL散度的值为非负数。

有时会将KL散度称为KL距离,但它并不满足距离的性质:

  1. KL散度不是对称的;
  2. KL散度不满足三角不等式。

2. JS散度(Jensen-Shannon)

JS散度度量了两个概率分布的相似度,基于KL散度的变体,解决了KL散度非对称的问题。一般地,JS散度是对称的,其取值是0到1之间。定义如下:

技术图片

KL散度和JS散度度量的时候有一个问题:

如果两个分配P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。

 

原地址:https://zxth93.github.io/2017/09/27/KL%E6%95%A3%E5%BA%A6JS%E6%95%A3%E5%BA%A6Wasserstein%E8%B7%9D%E7%A6%BB/index.html

以上是关于K-L 散度的主要内容,如果未能解决你的问题,请参考以下文章

K-L散度(相对熵)

如何理解K-L散度(相对熵)

GAN相关知识点总结--散度(相对熵)

常见的变换总结与代码:DCT,STFT,K-L变换等

毕业设计/Matlab系列基于K-L变换的图像压缩matlab实现

如何在 Keras 中正确实现自定义活动正则化器?