信息熵通俗易懂的例子

 

转自知乎 https://www.zhihu.com/question/22178202/answer/223017546html

本科学的时候是院长教的,当时他说这个东西颇有用,也仔细听了没懂什么意思,如今回过头来看,还真有用。编码

信息熵的定义与上述这个热力学的熵,虽然不是一个东西,可是有必定的联系。熵在信息论中表明随机变量不肯定度的度量。一个离散型随机变量 X 的熵 H(X) 定义为:htm

H(X)=-\sum\limits_{x\in\mathcal{X}}p(x)\log p(x)

这个定义的特色是,有明肯定义的科学名词且与内容无关,并且不随信息的具体表达式的变化而变化。是独立于形式,反映了信息表达式中统计方面的性质。是统计学上的抽象概念。事件

 

因此这个定义如题主提到的可能有点抽象和晦涩,不易理解。那么下面让咱们从直觉出发,以生活中的一些例子来阐述信息熵是什么,以及有什么用处。it

 

直觉上,信息量等于传输该信息所用的代价,这个也是通讯中考虑最多的问题。好比说:赌马比赛里,有4匹马 \{A,B,C,D\} ,获胜几率分别为 \{\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{8}\} 。io

 

接下来,让咱们将哪一匹马获胜视为一个随机变量 X\in\{A,B,C,D\} 。假定咱们须要用尽量少的二元问题来肯定随机变量 X 的取值。class

例如:问题1:A获胜了吗?问题2:B获胜了吗?问题3:C获胜了吗?最后咱们能够经过最多3个二元问题,来肯定 X 的取值,即哪一匹马赢了比赛。变量

 

若是 X=A ,那么须要问1次(问题1:是否是A?),几率为 \frac{1}{2} ;二进制

若是 X=B ,那么须要问2次(问题1:是否是A?问题2:是否是B?),几率为 \frac{1}{4} ;im

若是 X=C ,那么须要问3次(问题1,问题2,问题3),几率为 \frac{1}{8} ;

若是 X=D ,那么一样须要问3次(问题1,问题2,问题3),几率为 \frac{1}{8} ;

 

那么很容易计算,在这种问法下,为肯定 X 取值的二元问题数量为:

E(N)=\frac{1}{2}\cdot1+\frac{1}{4}\cdot2+\frac{1}{8}\cdot3+\frac{1}{8}\cdot3=\frac{7}{4}

 

那么咱们回到信息熵的定义,会发现经过以前的信息熵公式,神奇地获得了:

H(X)=\frac{1}{2}\log(2)+\frac{1}{4}\log(4)+\frac{1}{8}\log(8)+\frac{1}{8}\log(8)=\frac{1}{2}+\frac{1}{2}+\frac{3}{8}+\frac{3}{8}=\frac{7}{4}\mathrm{bits}

 

在二进制计算机中,一个比特为0或1,其实就表明了一个二元问题的回答。也就是说,在计算机中,咱们给哪一匹马夺冠这个事件进行编码,所须要的平均码长为1.75个比特。

 

平均码长的定义为: L(C)=\sum\limits_{x\in\mathcal{X}}p(x)l(x)

 

很显然,为了尽量减小码长,咱们要给发生几率 p(x) 较大的事件,分配较短的码长 l(x) 。这个问题深刻讨论,能够得出霍夫曼编码的概念。

 

那么 \{A,B,C,D\} 四个实践,能够分别由 \{0,10,110,111\} 表示,那么很显然,咱们要把最短的码 0 分配给发生几率最高的事件 A ,以此类推。并且获得的平均码长为1.75比特。若是咱们硬要反其道而行之,给事件 A 分配最长的码 111 ,那么平均码长就会变成2.625比特。

相关文章
相关标签/搜索