假设有个考试作弊团伙,需要连续不断地向外传递4选1单选题的答案。直接传递ABCD的ascii码的话,每个答案需要8个bit的二进制编码,从传输的角度,这显然有些浪费。信息论最初要解决的,就是数据压缩和传输的问题,所以这个作弊团伙希望能用更少bit的编码来传输答案。很简单,答案只有4种可能性,所以二进制编码需要的长度就是取2为底的对数:

用最通俗易懂的语言告诉你什么是信息熵

2个bit就足够进行四个答案的编码了(00,01,10,11)。在上面这个例子中,其实隐含了一种假设,就是四个答案出现概率是相等的,均为p=1/4,所以编码需要长度的计算可以理解为如下的形式:

用最通俗易懂的语言告诉你什么是信息熵

此时已经有些像熵的定义了。回顾一下熵的定义,正是求-log2(p)的期望值,所以我们把这个思路也套用一下:

用最通俗易懂的语言告诉你什么是信息熵

这正是熵,因为ABCD出现的概率均为p=1/4,所以上面式子算出来结果刚好是2。从这个角度,熵就是对每个可能性编码需要长度的期望值。



实际上,熵的概念首先在热力学中引入,用于表述热力学第二定律。波尔兹曼研究得到,热力学熵与微观状态数目的对数之间存在联系,并给出了公式:

用最通俗易懂的语言告诉你什么是信息熵

这个公式也作为他最骄傲的成绩,刻在了他的墓碑上。

用最通俗易懂的语言告诉你什么是信息熵


信息熵的定义与上述这个热力学的熵,虽然不是一个东西,但是有一定的联系。熵在信息论中代表随机变量不确定度的度量。一个离散型随机变量 用最通俗易懂的语言告诉你什么是信息熵 的熵用最通俗易懂的语言告诉你什么是信息熵 定义为:

用最通俗易懂的语言告诉你什么是信息熵

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


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


直觉上,信息量等于传输该信息所用的代价,这个也是通信中考虑最多的问题。比如说:赌马比赛里,有4匹马 用最通俗易懂的语言告诉你什么是信息熵 ,获胜概率分别为用最通俗易懂的语言告诉你什么是信息熵


接下来,让我们将哪一匹马获胜视为一个随机变量 用最通俗易懂的语言告诉你什么是信息熵 。假定我们需要用尽可能少的二元问题来确定随机变量用最通俗易懂的语言告诉你什么是信息熵 的取值。

例如:问题1:A获胜了吗?问题2:B获胜了吗?问题3:C获胜了吗?最后我们可以通过最多3个二元问题,来确定 用最通俗易懂的语言告诉你什么是信息熵 的取值,即哪一匹马赢了比赛。


如果 用最通俗易懂的语言告诉你什么是信息熵 ,那么需要问1次(问题1:是不是A?),概率为用最通俗易懂的语言告诉你什么是信息熵

如果 用最通俗易懂的语言告诉你什么是信息熵 ,那么需要问2次(问题1:是不是A?问题2:是不是B?),概率为用最通俗易懂的语言告诉你什么是信息熵

如果 用最通俗易懂的语言告诉你什么是信息熵 ,那么需要问3次(问题1,问题2,问题3),概率为用最通俗易懂的语言告诉你什么是信息熵 ;

如果 用最通俗易懂的语言告诉你什么是信息熵 ,那么同样需要问3次(问题1,问题2,问题3),概率为用最通俗易懂的语言告诉你什么是信息熵


那么很容易计算,在这种问法下,为确定 用最通俗易懂的语言告诉你什么是信息熵 取值的二元问题数量为:

用最通俗易懂的语言告诉你什么是信息熵


那么我们回到信息熵的定义,会发现通过之前的信息熵公式,神奇地得到了:

用最通俗易懂的语言告诉你什么是信息熵


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


平均码长的定义为: 用最通俗易懂的语言告诉你什么是信息熵


很显然,为了尽可能减少码长,我们要给发生概率 用最通俗易懂的语言告诉你什么是信息熵 较大的事件,分配较短的码长用最通俗易懂的语言告诉你什么是信息熵 。这个问题深入讨论,可以得出霍夫曼编码的概念。


那么 用最通俗易懂的语言告诉你什么是信息熵 四个实践,可以分别由用最通俗易懂的语言告诉你什么是信息熵 表示,那么很显然,我们要把最短的码用最通俗易懂的语言告诉你什么是信息熵 分配给发生概率最高的事件 用最通俗易懂的语言告诉你什么是信息熵 ,以此类推。而且得到的平均码长为1.75比特。如果我们硬要反其道而行之,给事件用最通俗易懂的语言告诉你什么是信息熵 分配最长的码用最通俗易懂的语言告诉你什么是信息熵 ,那么平均码长就会变成2.625比特。


霍夫曼编码就是利用了这种大概率事件分配短码的思想,而且可以证明这种编码方式是最优的。我们可以证明上述现象:

  • 为了获得信息熵为 用最通俗易懂的语言告诉你什么是信息熵 的随机变量用最通俗易懂的语言告诉你什么是信息熵 的一个样本,平均需要抛掷均匀硬币(或二元问题)用最通俗易懂的语言告诉你什么是信息熵 次(参考猜赛马问题的案例)
  • 信息熵是数据压缩的一个临界值(参考码长部分的案例)。


这可能是信息熵在实际工程中,信息熵最最重要且常见的一个用处。


最后,解释下信息熵公式的由来:

用最通俗易懂的语言告诉你什么是信息熵


信息论之父克劳德·香农,总结出了信息熵的三条性质:

  • 单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。
  • 非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑的。
  • 累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。写成公式就是:

事件 用最通俗易懂的语言告诉你什么是信息熵 同时发生,两个事件相互独立用最通俗易懂的语言告诉你什么是信息熵

那么信息熵 用最通俗易懂的语言告诉你什么是信息熵


香农从数学上,严格证明了满足上述三个条件的随机变量不确定性度量函数具有唯一形式:

用最通俗易懂的语言告诉你什么是信息熵

其中的 用最通俗易懂的语言告诉你什么是信息熵 为常数,我们将其归一化为 用最通俗易懂的语言告诉你什么是信息熵 即得到了信息熵公式。


补充一下,如果两个事件不相互独立,那么满足

用最通俗易懂的语言告诉你什么是信息熵 ,其中用最通俗易懂的语言告诉你什么是信息熵 是互信息(mutual information),代表一个随机变量包含另一个随机变量信息量的度量,这个概念在通信中用处很大。


比如一个点到点通信系统中,发送端信号为 用最通俗易懂的语言告诉你什么是信息熵 ,通过信道后,接收端接收到的信号为用最通俗易懂的语言告诉你什么是信息熵 ,那么信息通过信道传递的信息量就是互信息用最通俗易懂的语言告诉你什么是信息熵 。根据这个概念,香农推出了一个十分伟大的公式,香农公式,给出了临界通信传输速率的值,即信道容量:

用最通俗易懂的语言告诉你什么是信息熵

参考文献:

知乎,https://www.zhihu.com/question/22178202

CSDN,http://blog.csdn.net/saltriver/article/details/53056816

相关文章: