KL距离的计算与含义(转)
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更接近实际分布。
如果实际分布为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距离在信息检索领域,以及统计自然语言方面有重要的运用。我们将会把它留在以后的章节中介绍。
其他相关链接:http://en.wikipedia.org/wiki/Kullback-Leibler_divergence
http://hi.baidu.com/shdren09/item/e6441ec2bd495b0e0ad93aca
利用信息论的方法可以进行一些简单的自然语言处理
比如利用相对熵进行分类或者是利用相对熵来衡量两个随机分布的差距,当两个随机分布相同时,其相对熵为0.当两个随机分布的差别增加时,器相对熵也增加。我们下面的实验是为了横量概率分布的差异。
试验方法、要求和材料
要求:
1.任意摘录一段文字,统计这段文字中所有字符的相对频率。假设这些相对频率就是这些字符的概率(即用相对频率代替概率);
2.另取一段文字,按同样方法计算字符分布概率;
3.计算两段文字中字符分布的KL距离;
4.举例说明(任意找两个分布p和q),KL距离是不对称的,即D(p//q)!=D(q//p);
方法:
D(p//q)=sum(p(x)*log(p(x)/q(x)))。其中p(x)和q(x)为两个概率分布
约定 0*log(0/q(x))=0;p(x)*log(p(x)/0)=infinity;
具体实验可参考:http://www.cnblogs.com/finallyliuyu/archive/2010/03/12/1684015.html
KL距离的计算与含义(转)相关推荐
- 计算KL距离的几个例子
原理 生成两个分布,并且生成它们的ksdensity, 和histogram, 最后计算ksdensity 和 histogram与真实分布的KL距离 真实分布是用normpdf计算出来的 Kerne ...
- kl距离 java_信息量、熵、最大熵、联合熵、条件熵、相对熵、互信息。
一直就对机器学习中各种XX熵的概念比较模糊,现在总结一下自己的学习心得. 信息量 先说一下信息量的概念,其实熵就是信息量的集合. 摘抄个例子: 英文有26个字母,假设每个字母出现的概率是一样的,每个字 ...
- kl距离 java_KL距离,Kullback-Leibler Divergence
http://www.cnblogs.com/ywl925/p/3554502.html http://www.cnblogs.com/hxsyl/p/4910218.html http://blog ...
- KL距离,Kullback-Leibler Divergence 浅谈KL散度
KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy).它衡量的是相同事件空间里的两个概率分 ...
- 相对熵(relative entropy或 Kullback-Leibler divergence,KL距离)的java实现(三)
代码下载 http://files.cnblogs.com/finallyliuyu/KL.rar 主函数代码 主函数代码 public static void main(String[] args) ...
- Kullback–Leibler divergence(相对熵,KL距离,KL散度)
1 前言 注意两个名词的区别: 相对熵:Kullback–Leibler divergence 交叉熵:cross entropy KL距离的几个用途: ① 衡量两个概率分布的差异. ② 衡量利用概率 ...
- Matlab 显著性检测模型评价算法之KL距离
KL距离是用来计算两个概率分布函数的差异大小: h是ground thruth map,p是saliency map,当h和p完全相等时,KL值为0 现在一般用对称形式,即h和p换个位置,求个KL,两 ...
- java 点与线的距离_计算地图上点与线段距离
将地球看做一个标准球体,计算点到线段的距离. 计算两点间的球面距离 /** * * a点经度,a点纬度,b点经度,b点纬度 * */ public static double calcP2P(doub ...
- Java实现海明距离简单计算
文本相似度比较有很多方法,如余弦夹角算法.欧式距离.Jaccard相似度.最长公共子串.编辑距离等,海明距离是其中之一. 在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离. n位 ...
最新文章
- Leet Code OJ 58. Length of Last Word [Difficulty: Easy]
- filter in Fiori HANA live report
- windows系统里懒人的福音,如何实现不按住ctrl实现文件多选
- spring mvc学习(14) the superclass “javax.servlet.http.HttpServlet” was not found
- python模块的函数_python模块内置函数
- ICCV2021 workshop 多视角残缺点云的补全与配准
- Python_Socket实现简单的ssh/ftp
- scrapy 的依赖库安装和出现def write(self, data, async=False):的解决方法
- 并发编程学习之AQS抽象队列同步器
- 持久层框架JPA与Mybatis该如何选型
- Java多线程系列--【JUC集合10】- ConcurrentLinkedQueue
- window.name属性详解(Javascript)
- 08-OS X系统中将control和command键互换
- 网络工程师学习笔记——RIP路由汇总实验配置精讲
- 【转】FSB\QPI\DMI总线的区别
- kafka集群搭建教程(使用自带的zookeeper)
- php laravel 入门教程,Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】...
- linux 扫描磁盘柜,Linux下做磁盘阵列和各种热备份
- JAVA随机生成6位数,不足补0
- Mac鼠标滚轮控制浏览器
热门文章
- python格式化输出多个变量_Python变量的格式化输出
- z490 linux raid,光威弈系列Z490平台装机评测(含raid模式)
- CCG合约量化:DeFi 中的流动性池是什么以及它们如何工作?
- google suggest的实现
- Latex常用数学符号输入方法
- js中节点关系及相关操作
- MapboxMap之Expression(一)
- Oracle 9i,sqlplus,Oracle9i iSQL*PLUS的配置过程
- 爬取网页动态加载的评论
- (LaTeX) Solved: 引用网页时出现的空格间距过大;网页链接的字体不符合要求