信息熵

熵的概念是由德国物理学家克劳修斯于1865年所提出。熵最初是被用在热力学方面的,由热力学第二定律可以推出熵增的结论,然后熵是用来对一个系统可以达到的状态数的一个度量,能达到的状态数越多熵越大。信息熵也基本是很类似的,是香农1948年的一篇论文《A Mathematical Theory of Communication》提出了信息熵的概念,并且以后信息论也被作为一门单独的学科。

信息熵是用来衡量一个随机变量出现的期望值,一个变量的信息熵越大,那么他出现的各种情况也就越多,也就是包含的内容多,我们要描述他就需要付出更多的表达才可以,也就是需要更多的信息才能确定这个变量。在吴军老师的那篇《汉语信息熵和语言模型的复杂度》文章里说,只考虑字频的话英文是4.46比特/字符的信息熵,汉字是9.6比特/字符,直观上很容易理解,英文字母只有26个,所以描述一个字母所需要的信息表示不多,而中文字却很多,就需要更多的信息量才能表示。用点通俗的来讲,信息熵衡量了一个系统的复杂度,比如当我们想要比较两门课哪个更复杂的时候,信息熵就可以为我们作定量的比较,信息熵大的就说明那门课的信息量大,更加复杂。

那么信息熵可以做什么呢,首先信息熵作为衡量一个系统复杂度的表示,在压缩时就相当于一个压缩极限的下限,不同的内容,如果他的信息熵越小,说明信息量越小,也就是压缩后所占的体积能够更小,信息熵在人工智能方面也有很多的应用,其中最有名的就是最大熵原理,保留尽可能大的不确定性而作出最佳的尽量无偏差的决定。

最后来看看信息熵的公式

$$H=-\sum_{i=1}^n{p_i\log{p_i}}$$

为什么会有这样的公式呢,很多地方都直接没有说这个问题,这个公式并不是香农随便乱说的,在香农1948年的那篇文章里就可以看到,这个公式是推导出来的。香农说,熵这个公式需要满足这么几条性质,对于随机变量S的取值(s1,s2…sn)发生的概率是(p1,p2…pn),那么

  • 信息熵对于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=-K\sum_{i=1}^n{p_i\log{p_i}}$$

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

这篇文章只是粗略讲解一下什么是信息熵,如果对这个有兴趣的话,还是应该看一下香农的1948年的那篇论文,或者去看一下信息论相关的书籍。

ps:最开始的图片是《魔法少女小圆》里的截图,动画是神作的说呢

您可能喜欢:
我猜您可能还喜欢:
, , , ,

有 7 条《信息熵》的回复

    • burak diyor ki.99:08.1145 doÄŸumluyum ilk hangi tarihte sınava girip en önce ehliyetimi alabilirim inÅŸ. ÅŸu 2 yıl iÅŸi olmazda adam gibi ehliyetimizi cebimizde taşırız.

  1. oo | #4

    今天看ML的书的时候第一次知道信息熵这个东西,听名字就被吓尿了。。。然后感觉是。。。他们怎么可以想到这样的式子,关键是用起来它是make sense的….

Trackbacks/Pingbacks:

  1. 浅谈中文分词 | isnowfy

发表回复