解析信息论中的熵

来源:互联网 发布:网络危害的案例 编辑:程序博客网 时间:2024/06/06 14:01

信息论中的熵(Entropy)


定义:如果 X 是一个离散随机变量,它的取值空间为S, 那么X的熵(entropy)定义为 the average information in the outcomes of X produced over n trials as n becomes arbitrarily large,并用符号H(X)表示。


例如,如果我们投掷一枚均匀的硬币,那么这个事件的熵就等于1bit,因为所有可能的结果(要么是0,要么是1)都可以用1bit长度的编码来表示。如果我们投掷这枚硬币 n 次,那么结果就可以被编码成长度为 n bits的信息,n bits of information over n trails,所有 average is 1 bit。


如果S中有2的b次幂个可能的结果,其中b是一个正整数,且每个结果出现的可能均等:

  • 每个结果可以被编码成长度为b的二进制串;
  • n trials 产生 bn bits 的信息;
  • The average information over n trails is b bits: H(X)=b

随之而来的一个问题是,如果outcome的数量不是2的b次幂呢?例如现在假设有下图所示的一个转盘,转盘的结果是能1、2或者3,那么转动转盘一次的信息量就是1.67 bit。因为出现1、2、3的机会均等,1需要1个bit的编码,2和3则各需要2 bits的编码,所以5/3=1.67。或者你可以用下图中右侧的一棵树形结构来表示这个编码的过程。


但是我们需要做的是重复这个实验,以使得n的值arbitrarily large。先假设做两次实验,按照之前的思路,每次的信息都是1.67 bit,两次平均的结果仍然是1.67。事实上你这样继续做下去,平均的信息量总是1.67。但这并不一定是最短的编码,显然我们并没有采用任何的优化算法。


为了演示确实存在一种更短的编码,我们把进行两次实验所有可能的结果列出如下:



然后我们采用一种Balanced Tree的编码方式。可见有7种结果需要3 bits,2个结果需要4 bits。所以做两次实验,平均的信息量就是 1.611 bits。而且如果你做三次实验,按照这种方式,平均信息会进一步缩小。随着n的增大,基于Balanced Tre的编码方式,所得出的平均信息量为 log2(3)=1.5849 bits。



我们把已经得到的结论泛化。假设每次实验可能出现的结果有 M 种。执行 n 次实验,因为我们采用了一种二叉平衡树的结构,根据数据结构的基本知识可知:我们大约需要 log2(M^n) bits 来编码 over n trials 之结果。所以平均信息就应该等于 log2(M^n) 除以 n 。


根据前面关于熵的定义,可知如下Theorem:A process which produces M equally likely outcomes has an entropy of H(X)=log2(M)。

进而还有,if each outcomes is equally likely, 则


If all events are equally likely, entropy (average information) is just self-information (length of shortest binary that encodes all possible outcomes). Self-information (or surprisal) is a measure of the information content  associated with an event in a probability space or with the value of a discrete random variable.


如果所有的outcoms are not equally likely,熵又该等于多少呢? 基于Balanced Tree 的编码方法仍然有效,只是要在上面方法的基础上略作调整,这种算法通常称为香农-法诺编码算法。有兴趣的读者可以参阅信息论相关资料,这里不做深入讨论。但由此我们便可得到一个关于熵的更加泛化的表达式,即


而且很容易证明之前等可能性的H(x)是这个泛化版本H(X)的特殊情况。在等可能条件下,I(x)= log2(M) for all x,所以



下面给出的是更为广泛采用的熵的定义,我们又称其为香农熵:


H(X) is the expected surprisal.

H(X) is the average information produced by values of an experimental variable X over arbitrarily many trails of that experiment.

原创粉丝点击