看了@0x0001 的“数据”与“信息”,突然发现自己一直对香农的信息熵(Information Entropy)都没有一个非常感性的认识,今日摸鱼学习了一下这个问题。
我们先来看看香农是怎么看待交流中的“信息”:
“The fundamental problem of communication is that of reproducing at one point either exactly or approximately a message selected at another point. Frequently the messages have meaning; that is they refer to or are correlated according to some system with certain physical or conceptual entities. These semantic aspects of communication are irrelevant to the engineering problem. The significant aspect is that the actual message is one selected from a set of possible messages. The system must be designed to operate for each possible selection, not just the one which will actually be chosen since this is unknown at the time of design.”
简单来说,香农对于“信息”的处理,更多地是从工程的角度出发的。因此,这里的“信息”的定义更多的是基于概率的(probabilistic),而非基于语意的(semantic)。消息要传递的意思在这里不重要的。我们要重点关注的是消息(通常是文字序列)随机出现的过程。
一个事件的自信息(Self-information),定义如下:
I(x_i)=log\frac{1}{P(x_i)}
这用来衡量单一事件发生时包含的信息量。
而最著名的信息熵的定义如下:
H(X)=\sigma_xp(x)log\frac{1}{p(x)}
其中,X服从概率分布p(x)。直观地,H(X)是概率分布下所有基本事件的总信息量,是用来量化表示整个概率分布的不确定性的。更加具体地说,这条公式代表的是随机变量X的平均信息量的期望值。P.S. 要注意信息熵是关于概率分布p(x)的函数,而不是随机变量X的函数。
容易看出,信息熵和自信息的关系为:
H(X)=E[I(x_i)]
也就是说,实际上自信息如何衡量单一事件发生时包含的信息量是我们理解问题的关键。
我们来看看自信息的计算公式。显然,由于公式中对概率取了倒数,因此可以说一个事件的信息量和它发生的概率成反比。log函数对于信息量的整体变化趋势没有影响,我们先暂且不管。
对于为什么可以这样衡量信息量,许多介绍、教程给出的解释都是说:
可以近似地将不确定性视为信息量。一个消息带来的不确定性大,就是带来的信息量大。
这个解释是个循环——简直就是俄罗斯套娃。让我疑惑的是,究竟为什么说不确定性越大的消息就能带来越多的信息量呢?
其实问题出在对于自信息和信息量背后含义的理解上。我在StackExchange上找到了一个对于自信息不一样的解释:
The self-information is a measure of deviation from expectation of random variable in shannons (bits, the unit may vary when used in different context) when sampling a random variable.
即自信息是对于基本事件偏离我们期望的衡量。
为什么要对这个进行衡量呢?这是因为往往出乎意料的事情会带来更大的影响。我们把发生小概率事件叫做”惊讶(surprisal)“,也就是说这”不是预期的结果“。我们来看一个生活中的例子:
假如一个冬天,广州下了一场大雪。这显然是”惊讶“的。同时,由于广州以前从来不下大雪,因此人们对于下大雪是没有准备的——环卫局没有铲雪车,也没有除雪的经验。这样一来,交通必然得瘫痪了,对整个城市的运作产生了很大的影响。
而假如我们能够事先知道要下大雪这一信息,就能很大程度地避免这样的损失。
因此,自信息也可以说是描述未准备的程度。当概率低的事件发生时,会带来更大的损失(或是更多的利益)。香农试图通过数学的方法来描述这一事实,也就是其提出的自信息公式。所以我们要时刻记住,信息量与信息的语意无关,仅仅只与信息出现的概率有关。这也解释了为什么香农更倾向于用术语”通信论(communication theory)“而不是”信息论(information theory)“。
至于具体的自信息公式形式为什么是先取倒数,后取对数,基本是从几条规定的公理推导出来的。或许看看最初的论文会更有启发?不过今天先到这里了。
在CSDN还发了一份。
感觉自己对这个也还不是很理解,难免有误,欢迎拍砖。
参考资料:
Understanding of self-information
Why is self-information defined the way it is?
This is IT: A Primer on Shannon’s Entropy and Information(挺好的tutorial)
A Brief Introduction to Shannon’s Information Theory(给出了另外一种推导出信息熵公式的方法,很有趣)
The intuition behind Shannon’s Entropy(给出了信息熵的intuition,有友好的图片解说,但是我没太理解。看懂的同学求解说。)
Entropy (information theory)
更新:今天上数据挖掘的课刚好也是在讲信息论,突然意识到自己之前的认识囿于事件自身了。实际上信息是通信过程中的信息,是与通信的过程紧密相关的。因此,其实“信息熵”或许叫“通信熵”可能更合适?
也就是说,从另外一个角度来说,信息熵或许可以说是从工程的角度来对通信中各种消息按照其概率分布进行建模,从而服务于更高级的抽象系统。比如各种编码问题中,利用这一理论来分析最短平均编码长度,就是在非常实际的工程性的问题的应用。