首页 > 学院 > 开发设计 > 正文

熵与相对熵

2019-11-06 08:58:24
字体:
来源:转载
供稿:网友

形象说来,熵反映了你对一件事的了解程度(信息熵)。你对一件事了解越少,其熵越大。两个陌生人之间,就存在一个无比巨大的熵。在一起,双方自然会感觉不舒服。两人逐渐熟悉、逐渐了解的过程,本质是一个熵减的过程。当双方为知己时,相互的信息熵已趋近于0。信息熵是用来衡量一个随机变量出现的期望值,一个变量的信息熵越大,那么他出现的各种情况也就越多,也就是包含的内容多,我们要描述他就需要付出更多的表达才可以,也就是需要更多的信息才能确定这个变量。在吴军老师的那篇《汉语信息熵和语言模型的复杂度》文章里说,只考虑字频的话英文是4.46比特/字符的信息熵,汉字是9.6比特/字符,直观上很容易理解,英文字母只有26个,所以描述一个字母所需要的信息表示不多,而中文字却很多,就需要更多的信息量才能表示。用点通俗的来讲,信息熵衡量了一个系统的复杂度,比如当我们想要比较两门课哪个更复杂的时候,信息熵就可以为我们作定量的比较,信息熵大的就说明那门课的信息量大,更加复杂。那么信息熵可以做什么呢,首先信息熵作为衡量一个系统复杂度的表示,在压缩时就相当于一个压缩极限的下限,不同的内容,如果他的信息熵越小,说明信息量越小,也就是压缩后所占的体积能够更小,信息熵在人工智能方面也有很多的应用,其中最有名的就是最大熵原理,保留尽可能大的不确定性而作出最佳的尽量无偏差的决定。熵的公式如下:

/[ H(X)=-/sum/limits_{i=1}^n p_{x_i} /log p_{x_i} /]

其中底数为2,为什么会有这样的公式呢,很多地方都直接没有说这个问题,这个公式并不是香农随便乱说的,在香农1948年的那篇文章里就可以看到,这个公式是推导出来的。香农说,熵这个公式需要满足这么几条性质,对于随机变量X的取值(x1,x2...xn)发生的概率是(p(x1),p(x2)...p(xn),那么

信息熵对于pi应该是连续的如果所有的pi都相等,也就是pi=1/n那么信息熵应该是关于n的单调递增函数信息熵是可以分别计算的,如图左,p1=1/2,p2=1/3,p3=1/6,就相当于是首先有两个事件p1=p2=1/2, 然后在第二事件又分为p1=2/3,p2=1/3,所以信息熵H(1/2, 1/3, 1/6) = H(1/2,1/2) + 1/2*H(2/3,1/3)

根据这几个性质,香农推导出,信息熵的公式只可能是一种形式

	/[ H(X)=-K/sum/limits_{i=1}^n p_{x_i} /log p_{x_i}  /]

前面有个系数K,因为取不同的log底数影响的只是前面的系数,也就是说不同的底数通过调节前面的系数可以使他们相等,而现在一般而言,也是为了方便是用log的底数一般是取2,并且去掉了前面的系数就变成了之前的公式了。

相对熵

相对熵又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度(即KL散度)等。设p(x)q(x)是取值的两个概率概率分布,则p对q的相对熵为

/[ H(p/parallel q) = /sum/limits_{i=1}^n p(x_i)/log/frac{p(x_i)}{q(x_i)} /]

在一定程度上,熵可以度量两个随机变量的距离。KL散度是两个概率分布P和Q差别的非对称性的度量。相对熵可以衡量两个随机分布之间的距离,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增大时,它们的相对熵也会增大。所以相对熵(KL散度)可以用于比较文本的相似度,先统计出词的频率,然后计算KL散度就行了。另外,在多指标系统评估中,指标权重分配是一个重点和难点,通过相对熵可以处理。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表