信息量和信息熵的概念最早是出现在通信理论中的,其概念最早是由信息论鼻祖香农在其经典的paper《A Mathematical Theory of Communication》中提出的。如今,这些概念不仅仅是通信领域中的基础概念,也被广泛的应用到了其他的领域中,比如机器学习。如果跳出历史语境,跳出逻辑背景,那么这些概念是很抽象的,所以本文旨在结合历史语境,给这些概念提供一个相对直观的解释和理解。
这两个概念的提出当时是为了给通信中的信号传输过程提供一个数学统计上的刻画,更准确的说,给无噪音系统中无损压缩的信号传输过程提供了一个所需最小信息量的理论值,这个值就是信息熵。对于一个通信系统范式,可以分为下图中的几个部分,该图截取自香农的《A Mathematical Theory of Communication》这篇论文。
上图中,首先信息源会发出消息,这些消息会被编码以便于传送,编码后,通过传输器把这些信号传输给接收方,在传输的过程中,会有噪音干扰,这就会造成信号发生变化或者漂移,导致接收到的信号和原来发出的信号并不一定一致,所以通信领域中,一个更为基本的问题就是如何基于接收到的信号来推断真实的信号。本文中,信息量和信息熵所关心的问题是,对于事前的随机信源,假设整个系统的没有噪音干扰是,那么为了实现无损通信,即实现信息的无损传输,应该给信源赋予多大的通道容量,或者说应该给信源赋予多大的带宽?
对于这个问题,为了更好的理解,我们可以一步步的深入。首先,我们可以假设一个随机信源,其会随机的发出4种信号S1,S2,S3,S4,很显然,对于一次的信号发出,我们如果想要可以记录下这次的信号,因为事前我们并不知道具体会发出哪一种信号,所以如果我们是用二进制数编码信号的话,我们可以2个bit的长度,并约定S1为00,S2为01,S3为10,S4为11,这样,无论该信源发出那种信号,我们都可以用2bit长度来进行完整的编码,这样子,对于该信源,每次信号的传输需要的通道的容量大小就是2bit。所以我们知道,2bit的容量确实可以无损的传输该信源的信息。同样的,如果该信源可以发出8个信号,那么3bit的容量可以实现无损传输,N个信号可以用log2N个bit实现无损传输。
So far so good! 但那只是最基本的第一步。虽然我们已经知道,对于有N个信号的信源,我们总是可以通过log2N个bit实现无损传输,但是,让我们设想一种情景,假如前文提到的可以发出4个信号的信源,发出S1的概率是90%,剩下三个信号的概率是分别是7%,2%,1%,如果我们还是一直用2个bit来传输,那么90%的时间都只是在传输S1,而编码S1这个状态,我们实际上只需要1个bit就够了,即我们可以约定S1为0,S2为1,S3为10,S4为11。这样的话,该信源在97%的时间只需要1个bit,剩下的3%的时间才需要2个bit,这样每个信号所需要的容量是不一样的,这个方案显然比我们原来一直用2bit去编码所有信号更好。这个方案的关键在于,我们不再给每种信号赋予相同的容量,而是通过每种信号出现的概念,赋予其不同的容量去编码,并且是赋予出现概率越大的信号越小的容量。
For a single data source communication system, that's what we can do best! 但是在现实中,通信系统往往是多信源的,即往往一个通信系统不会只针对某个单一的信源,而是同时会传输多种信号。如果有多个独立信源的信号同时在同一通道中传输,我们是不是可以进一步改进我们的通道容量分配呢?即对于多个独立信源通信系统,是否有一个理论上的最小带宽来实现无损传输呢?由于是多个独立信源,那么根据大数定律,其所需要的容量的极限值实际上就是每个信源的期望容量之和。所以关键的问题在于,如何在多信源语境下,求每个信源所需要的期望容量。
注意我们的目标是在多信源语境下,求每个信源所需要的最小的期望容量。根据我们之前的方案描述,对于每个信号,我们赋予了其所需要的容量,所以现在关键在于如何改进每个信号所需要的容量,即如何量化每个信号所需要容量,这里我们就引出了“信息量”概念。信息量就是用来量化一个可能性事件,或者一个随机信号在使得总体容量最小的目标下,其所被赋予的容量大小。下面我们来粗略的推导信息量的表达式。
首先需要明确的是,这个概念是在多信源语境下产生的一个统计量,脱离了多信源语境,这个统计量便失去了意义,因为只有在信源数量足够多的语境下,其统计性质才能转化为现实应用层面的意义。就好比大数定律只有在n足够大的情况下,收敛程度才是我们现实上可以接受的。假设存在这么一个量化可能性事件的信息量测度,那么其应该满足哪些性质呢?由于我们是在多信源的语境下,因此,这个测度不应该依赖于具体信源的信号数目,因为根据我们之前的针对单个信源的方案,每个信号所分配的容量是不会超过[log2N]+1的,其中[x]表示不超过x的取整函数。但是在多信源中,单个信源的信号数N不再是需要关注的点,因为我们关注的是多信源这么一个整体。所以这个信息量测度,记为I,其和N无关,并且也和事件具体的内容或意义无关,只和其发生的概率有关,这是第一点。然后根据我们之前的分析,I应该是和事件发生的概率负相关的,即I应该是关于事件概率P的减函数,这是第二点。因为我们的目的是最小化信源所需要的信息量,数学直观提示我们应该假设I是关于P的连续函数,而多信源语境也给我们这种假设保证了现实的合理性,这是第三点。最后,很显然的一点是,两个独立信源,要同时传输两者发出的信号,那么所需要的容量是两者之和,所以这就要求I具有可加性,即I(PxPy)=I(Px)+I(Py),Px和Py分别是两个独立信源发出信号X、Y的概率。所以综合以上四点,可以从数学上严格的推导出信息量测度I具有唯一的表达形式:
其中K是系数,可以令K=1,令对数底数为2,则I(p)的单位就是bit。
有了信息量测度,我们就可以对一个信源求信息量的期望,而信息量的期望就是我们所说的信息熵,记为H,其表达式为:
其中X表示一个信源,或者表示一个概率分布。同时也可以证明,H在所有容量分配方案的期望值中为最小的测度为1,即对于任一信源,其特定的概率分布会使得其可能存在一些容量分配方式,使其期望值小于H,但是这种概率分布数目的测度为0.
至此,我们已经引出了信息量和信息熵的概念,并且也知道,信息量是在多信源语境下,为使总体通道容量最小推出应该给一个随机事件或信号分配多大的容量值,而信息熵则是一个在测度为1的信源或者概率分布的最小期望信息量,其描述的对象是一个概率分布。这段话单看起来很拗口和抽象,但是有了前文的铺垫,应该就不难理解了。基于这些结论,在现实的通信中,我们便可以基于信息熵给某个信源分配容量,由于是多信源,大数定律保证了这种分配的可行性。如果我们额外还有关于信源发送频率的信息,那么我们就知道单位时间内信源所需要的希望信息量,只要我们让单位时间内的通道的可传输容量大于这个期望值,那么理论上就可以实现无损传输。这个单位时间内通道的可传输容量实际上就是我们通常所说的带宽。
不确定性也是一个抽象的概念,首先其并不能等价为概率,概率越大或越小都表示不确定性越小,说明概率并不是一个衡量不确定性的指标,而且,这里的不确定性描述的对象,应该是一个概率分布,而不是某一个可能性。信息熵衡量的是平均上无损传输一个信源所需要的期望信息量,由于信息和不确定性是对立的,即如果我们把信息定义为消除不确定性,那么由于我们已经有了信息量和信息熵的概念,那么我们便可以通过它们来定义不确定性,所以根据信息和不确定性的对立性,我们把信息熵理解成不确定性的大小,因为信息熵就是衡量平均意义上无损传输一个信源所需要的信息量,即可以认为消除一个信源不确定性所需要的信息量,从而,信息熵越大,不确定性也越大,因此我们可以将信息熵也理解为不确定性。实际上,香农的《A Mathematical Theory of Communication》这篇论文中,就是直接先推导信息熵,并且直接将信息熵等价于不确定性的。
至此关于信息量和信息熵的内容已经讲完了,下面接着上文再提一下关于信号产生过程的一些性质和概念。上文中已经得到了信息熵,我们也知道信息熵是一个估计所需带宽很重要的值,这里有一个隐含的前提是,我们希望求得的这个信息熵,也即信源所需要的带宽是随时间稳定的,因为如果不稳定,那么不同的时刻,需要调整不同的带宽,这样是不具有任何现实意义的。而这个稳定性需求实际上就对信号的产生过程具有一些要求。
信号产生的过程往往是一个马尔可夫过程,那么一个稳定的马尔可夫过程是什么意思呢?实际上就是要求其是"ergodic",即各态遍历性。ergodic的定义就是要求一个马尔可夫过程任意状态i下得到状态j的n步转移概率是收敛到Pj的,即只要时间足够长,那么当下的状态对未来状态是几乎没有影响的,故实际上现实中大多数过程也是符合这个性质的。如果写成转移概率矩阵,那么这个矩阵的n阶幂收敛到一个各列内值相等的概率矩阵,如果将状态画成转移曲线图,则要求这些点之间各自分别都有通路到达彼此,这就是各态遍历,即不管从哪个状态出发,都可以有到达其他任何状态的可能性,而且为了避免信号序列周期性的出现,图中所有的闭环长度的最大公约数必须为1,如下图所示,具体可参考《A Mathematical Theory of Communication》论文。ergodic保证了马尔可夫过程的统计性质的稳定性,不随时间发生改变。
参考:
1. Shannon C E. A mathematical theory of communication[J]. Bell system technical journal, 1948, 27(3): 379-423.
2. Wikipedia-Entropy(information theory): https://en.m.wikipedia.org/wiki/Entropy_(information_theory)