KL距离(相对熵)

原文链接:https://www.cnblogs.com/nlpowen/p/3620470.html

KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy)。它衡量的是相同事件空间里的两个概率分布的差异情况。其物理意义是:在相同事件空间里,概率分布P(x)对应的每个事件,若用概率分布 Q(x)编码时,平均每个基本事件(符号)编码长度增加了多少比特。我们用D(P||Q)表示KL距离,计算公式如下:

当两个概率分布完全相同时,即P(X)=Q(X),其相对熵为0 。我们知道,概率分布P(X)的信息熵为:

其表示,概率分布P(x)编码时,平均每个基本事件(符号)至少需要多少比特编码。通过信息熵的学习,我们知道不存在其他比按照本身概率分布更好的编码方式了,所以D(P||Q)始终大于等于0的。虽然KL被称为距离,但是其不满足距离定义的三个条件:1)非负性(满足);2)对称性(不满足);3)三角不等式 (不满足)。

我们以一个例子来说明,KL距离的含义。

假如一个字符发射器,随机发出0和1两种字符,真实发出概率分布为A,但实际不知道A的具体分布。现在通过观察,得到概率分布B与C。各个分布的具体情况如下:

A(0)=1/2,A(1)=1/2

B(0)=1/4,B(1)=3/4

C(0)=1/8,C(1)=7/8

那么,我们可以计算出得到如下:

也即,这两种方式来进行编码,其结果都使得平均编码长度增加了。我们也可以看出,按照概率分布B进行编码,要比按照C进行编码,平均每个符号增加的比特数目少。从分布上也可以看出,实际上B要比C更接近实际分布(因为其与A分布的KL距离更近)。

如果实际分布为C,而我们用A分布来编码这个字符发射器的每个字符,那么同样我们可以得到如下:

再次,我们进一步验证了这样的结论:对一个信息源编码,按照其本身的概率分布进行编码,每个字符的平均比特数目最少。这就是信息熵的概念,衡量了信息源本身的不确定性。另外,可以看出KL距离不满足对称性,即D(P||Q)不一定等于D(Q||P)。

当然,我们也可以验证KL距离不满足三角不等式条件。

上面的三个概率分布,D(B||C)=1/4log2+3/4log(6/7)。可以得到:D(A||C) - (D(A||B)+ D(B||C))

=1/2log2+1/4log(7/6)>0,这里验证了KL距离不满足三角不等式条件。所以KL距离,并不是一种距离度量方式,虽然它有这样的学名。

其实,KL距离在信息检索领域,以及统计自然语言方面有重要的运用。

[转载]KL距离(相对熵)相关推荐

  1. kl距离 java_信息量、熵、最大熵、联合熵、条件熵、相对熵、互信息。

    一直就对机器学习中各种XX熵的概念比较模糊,现在总结一下自己的学习心得. 信息量 先说一下信息量的概念,其实熵就是信息量的集合. 摘抄个例子: 英文有26个字母,假设每个字母出现的概率是一样的,每个字 ...

  2. 相对熵(relative entropy或 Kullback-Leibler divergence,KL距离)的java实现(三)

    代码下载 http://files.cnblogs.com/finallyliuyu/KL.rar 主函数代码 主函数代码 public static void main(String[] args) ...

  3. Kullback–Leibler divergence(相对熵,KL距离,KL散度)

    1 前言 注意两个名词的区别: 相对熵:Kullback–Leibler divergence 交叉熵:cross entropy KL距离的几个用途: ① 衡量两个概率分布的差异. ② 衡量利用概率 ...

  4. 关于相对熵(KL距离)的理解

    定义:两个概率质量函数为 p(x) 和 q(x) 之间的相对熵或KL距离定义为 D(p||q)=∑x∈χp(x)logp(x)q(x) 理解 如果已知随机变量的真实分布为 p ,可以构造平均描述长度为 ...

  5. 信息量-log2P(莫斯编码使用频繁P大的字符编码段信息量少)、信息熵:期望E=-Plog2P、两点分布交叉熵=KL散度=相对熵=-plnp-(1-p)ln(1-p)不对称、JS散度对称

    信息熵为什么要定义成-Σp*log§? 信息熵为什么要定义成-Σp*log(p)? 在解释信息熵之前,需要先来说说什么是信息量. 信息量是对信息的度量,单位一般用bit. 信息论之父克劳德·艾尔伍德· ...

  6. kl距离 java_KL距离,Kullback-Leibler Divergence

    http://www.cnblogs.com/ywl925/p/3554502.html http://www.cnblogs.com/hxsyl/p/4910218.html http://blog ...

  7. KL距离的计算与含义(转)

    KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy).它衡量的是相同事件空间里的两个概率分 ...

  8. KL距离,Kullback-Leibler Divergence 浅谈KL散度

    KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy).它衡量的是相同事件空间里的两个概率分 ...

  9. Matlab 显著性检测模型评价算法之KL距离

    KL距离是用来计算两个概率分布函数的差异大小: h是ground thruth map,p是saliency map,当h和p完全相等时,KL值为0 现在一般用对称形式,即h和p换个位置,求个KL,两 ...

  10. 计算KL距离的几个例子

    原理 生成两个分布,并且生成它们的ksdensity, 和histogram, 最后计算ksdensity 和 histogram与真实分布的KL距离 真实分布是用normpdf计算出来的 Kerne ...

最新文章

  1. 解析:一种合适的数据中心建造方式有多重要?
  2. 北斗导航 | 基于卡尔曼滤波的IMU+GNSS的组合导航(附Matlab源代码)
  3. [BZOJ] 1637: [Usaco2007 Mar]Balanced Lineup
  4. JVM系列之:对象的锁状态和同步
  5. Linux 部分常用命令
  6. 武汉大学计算机学院的李明,李明副研究员
  7. c语言编程字符串相似度,某课程设计---文件相似度判断
  8. GitGithub学习笔记
  9. myeclipse下使用Junit4进行单元测试
  10. two points
  11. 20139216网络攻防技术第七次作业
  12. 世界读书日 | 这11本书将颠覆技术人士的思维方式
  13. 内网穿透工具开发者运维人员必备
  14. Amazon DynamoDB应用—为table指定Provisioned Throughput
  15. 苏州微软面试--机器学习自然语言处理
  16. 【JAVA长虹键法】第八式 代理模式(23种设计模式)
  17. 浏览器代理服务器出现问题
  18. TensorFlow学习笔记(一)---graph,op,tensor,Session,Variables,Tensorboard
  19. 【PySCF学习1】-分子结构之定义分子
  20. Win11 没有磁盘清理工具,如何清理磁盘旧的windows.old文件

热门文章

  1. 战神引擎php,战神引擎搭建教程
  2. javasocket编程(javasocket通信)
  3. javasocket编程例子,给大家安排上!
  4. 怎么使用SSH从服务器下载文件
  5. hadoop 空间配置
  6. 粒子群优化算法及其应用
  7. python第三方库:使用Jieba对抓取的数据进行中文分词
  8. Jieba词性对照表
  9. Rational rose软件安装遇到key错误的问题
  10. 计算机软件cae,各种CAE软件介绍