您的位置:首页 > 其它

KL散度(Kullback-Leibler_divergence)

2017-01-13 10:57 239 查看
KL-divergence,俗称KL距离,常用来衡量两个概率分布的距离。

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




a.当log以2为底的时候称之为 bits,结果可以视为多少个二进制位可以表示该变量
b.当log以e为底的时侯称之为 nats


2.KL divergence (KL距离)

这个值是用来衡量两个分布之间相异度的,具体来说,假设有k个状态的两个离散分布p,q,则

          

               

a.如果是连续的随机变量,把∑用积分 符号替换就好了

          对上式进行转化:

          

  

          其中H(p,q)称为交叉熵 (cross entropy)

            

  

          交叉熵可以看作是当我们用模型q来编码来自模型p的变量时所需的平均bits(如果log以2为底的话)

          所以,有H(p)=H(p,p),所以KL距离就可以看做是:用模型q来编码来自模型p的变量所需的额外bits!

          因为是“额外的”,所以 KL的距离的值一定大于0,KL=0当且仅当p=q

3.


互信息(Mutual Information)

          我们知道如果p(x,y)=p(x)p(y),则X和Y互相独立

          而衡量两个随机变量的相关性有 相关系数 ,而互信息就是用来衡量 p(x,y)与p(x)p(y)之间的关系的:

          


          其实就是借用了上面的KL距离,可以知道 

          


          另一个有用的定义是pointwise mutual information(PMI),是对于每个点的定义

          


          可以得知 MI值其实就是PMI值的期望
4.


④—for 连续随机变量

          上面都是 讲的离散随机变量 ,如果要变化到连续随机变量,则可以把∑用积分 符号替换就好了

          对于连续随机变量一个有用的参数是maximal information coefficient(MIC)

          


          


          是用来告诉我们两个变量的独立性的一个系数,可以表示两个变量间的独立性

          MIC值介于[0,1],0表示两个变量互相独立,而1表示两个变量有无噪(noisy-free)的关系(不仅仅是线性关系)

一个图示说明---图片来自《Machine Learning - A Probabilistic Perspective》--

          


          左边图的 横轴是MIC,纵轴是相关系数,例如C点是相关系数接近0,MIC接近0,从右图可以看出 C的分布是没有规律的

          而H或者D图,两个变量间有很强的关系,表现为基本上的线性关系 ,其它例子自己看把
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息