KL散度

摘要:
KL散度是两个概率分布P和Q之间差异不对称性的度量。如果且仅当两个分布相同,KL散度等于0。1.相对熵也称为交叉熵、交叉熵、判别信息、Kullback熵、Kullback-Leible散度等。KL散度用于测量使用基于Q的编码对来自P的样本平均值进行编码所需的额外比特数。因此,相对熵可以用来比较文本的相似性。首先,计算单词的频率,然后计算KL散度。
转自:http://www.cnblogs.com/hxsyl/p/4910218.html 一、第一种理解  

  相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(information gain)。 
  KL散度是两个概率分布P和Q差别的非对称性的度量。

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

  根据shannon的信息论,给定一个字符集的概率分布,我们可以设计一种编码,使得表示该字符集组成的字符串平均需要的比特数最少。假设这个字符集是X,对x∈X,其出现概率为P(x),那么其最优编码平均需要的比特数等于这个字符集的熵:

  H(X)=∑x∈XP(x)log[1/P(x)]

  在同样的字符集上,假设存在另一个概率分布Q(X)。如果用概率分布P(X)的最优编码(即字符x的编码长度等于log[1/P(x)]),来为符合分布Q(X)的字符编码,那么表示这些字符就会比理想情况多用一些比特数。KL-divergence就是用来衡量这种情况下平均每个字符多用的比特数,因此可以用来衡量两个分布的距离。即:

  DKL(Q||P)=∑x∈XQ(x)[log(1/P(x))] - ∑x∈XQ(x)[log[1/Q(x)]]=∑x∈XQ(x)log[Q(x)/P(x)]

  由于-log(u)是凸函数,因此有下面的不等式

  DKL(Q||P) = -∑x∈XQ(x)log[P(x)/Q(x)] = E[-logP(x)/Q(x)] ≥ -logE[P(x)/Q(x)] = -  log∑x∈XQ(x)P(x)/Q(x) = 0

  即KL-divergence始终是大于等于0的。当且仅当两分布相同时,KL-divergence等于0。

  ===========================

  举一个实际的例子吧:比如有四个类别,一个方法A得到四个类别的概率分别是0.1,0.2,0.3,0.4。另一种方法B(或者说是事实情况)是得到四个类别的概率分别是0.4,0.3,0.2,0.1,那么这两个分布的KL-Distance(A,B)=0.1*log(0.1/0.4)+0.2*log(0.2/0.3)+0.3*log(0.3/0.2)+0.4*log(0.4/0.1)

  这个里面有正的,有负的,可以证明KL-Distance()>=0.

  从上面可以看出, KL散度是不对称的。即KL-Distance(A,B)!=KL-Distance(B,A)

  KL散度是不对称的,当然,如果希望把它变对称,

  Ds(p1, p2) = [D(p1, p2) + D(p2, p1)] / 2.

二、第二种理解

  今天开始来讲相对熵,我们知道信息熵反应了一个系统的有序化程度,一个系统越是有序,那么它的信息熵就越低,反之就越高。下面是熵的定义

   如果一个随机变量KL散度第1张的可能取值为KL散度第2张,对应的概率为KL散度第3张,则随机变量KL散度第4张的熵定义为

            KL散度第5张

  有了信息熵的定义,接下来开始学习相对熵。

  1. 相对熵的认识

   相对熵又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度(即KL散度)等。设KL散度第6张KL散度第7张

   是KL散度第8张取值的两个概率概率分布,则KL散度第9张KL散度第10张的相对熵为          

KL散度第11张

   在一定程度上,熵可以度量两个随机变量的距离。KL散度是两个概率分布P和Q差别的非对称性的度量。KL散度是

   用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q

   表示数据的理论分布,模型分布,或P的近似分布。

2. 相对熵的性质

   相对熵(KL散度)有两个主要的性质。如下

   (1)尽管KL散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为它不具有对称性,即

       KL散度第12张

   (2)相对熵的值为非负值,即

       KL散度第13张

       在证明之前,需要认识一个重要的不等式,叫做吉布斯不等式。内容如下

KL散度第14张

  3. 相对熵的应用

   相对熵可以衡量两个随机分布之间的距离,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增

   大时,它们的相对熵也会增大。所以相对熵(KL散度)可以用于比较文本的相似度,先统计出词的频率,然后计算

   KL散度就行了。另外,在多指标系统评估中,指标权重分配是一个重点和难点,通过相对熵可以处理。

三、用在CF中

KL散度第15张

  第一,KLD需要概率(脸颊和1),但是用评分。

  第二,后面两项的作用。

免责声明:文章转载自《KL散度》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c#web中定义全局变量,传递变量npoi导出excel(模板)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

运行 FreeSWITCH

读到本章,你应该对 FreeSWITCH 有了一个比较全面的了解,迫切地想实验它强大的功能了。让我们从最初的运行开始,一步一步进入 FreeSWITCH 的神秘世界。 命令行参数 一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动。在此,仅作简单介绍。如果你知道是什么意思,那么你就可以使用,如果...

android studio 中jni底层日志的打印

1 添加ndk对log支持若需要添加ndk对log的支持,只需要通过以下2步即可实现。 1.1 修改Android.mk如生成的库文件是“.so文件”,则在Android.mk中添加如下内容:LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog如生成的库文件是“.a文件”,则在Android.mk中添加如下内容:LOCAL_LD...

go json 编解码中的双引号问题

什么是json,json的标准?? 现在越来越多的项目和开发插件等默认都会支持和使用json数据格式,作为数据保持、传输的一种方式。 说是其中一种,就标示还有好多其他格式。比如:最多是xml。webservice的标准数据格式。 不过由于json是JavaScript 对象表示法(JavaScript Object Notation),天生就对js支持很好...

CentOS 7下Cloudera Manager及CDH 6.0.1安装过程详解

目录 一、概念介绍 1、CDH 概览 2、Cloudera Manager 概览 二、环境准备 1、软件版本选择 2、节点准备(四个节点) 3、配置主机名和hosts解析(所有节点) 4、关闭防火墙 5、关闭SELinux 6、添加定时任务 7、禁用透明大页面压缩 8、优化交换分区 三、安装 CM 和 CDH 1、配置 Cloudera...

Kafka日志存储

1.文件目录布局 Kafka消息以日志文件的形式存储,不同主题下不同分区的消息分开存储,同一个分区的不同副本分布在不同的broker上存储 逻辑上看来日志是以副本为单位的,每个副本对应一个log对象,实际在物理上,一个log划分为多个logSegment 创建一个topic为3个分区,会在log.dirs路径下创建三个文件夹,代表3个分区,命名规则为“to...

Linux中管道命令的用法

一. 管道命令 管道命令操作符是:”|”,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入. 管理命令的输出说明: 【指令1】正确输出,作为【指令2】的输入 然后【指令2】的输出作为【指令3】的输入 ,【指令3】输出就会直接显示在屏幕上面了。 通过管道之后【指令1】和【指令2】的...