信息论(英语:information theory)是应用数学、电子学和计算机科学的一个分支,涉及信息的量化、存储和通信等。信息论是由克劳德·香农发展,用来找出信号处理与通信操作的基本限制,如数据压缩、可靠的存储和数据传输等。自创立以来,它已拓展应用到许多其他领域,包括统计推断、自然语言处理、密码学、神经生物学、进化论和分子编码的功能、生态学的模式选择、热物理、量子计算、语言学、剽窃检测、模式识别、异常检测和其他形式的数据分析。
熵是信息的一个关键度量,通常用一条消息中需要存储或传输一个符号的平均比特数来表示。熵衡量了预测随机变量的值时涉及到的不确定度的量。例如,指定掷硬币的结果(两个等可能的结果)比指定掷骰子的结果(六个等可能的结果)所提供的信息量更少(熵更少)。
信息论将信息的传递作为一种统计现象来考虑,给出了估算通信信道容量的方法。信息传输和信息压缩是信息论研究中的两大领域。这两个方面又由信道编码定理、信源-信道隔离定理相互联系。
信息论的基本内容的应用包括无损数据压缩(如ZIP文件)、有损数据压缩(如MP3和JPEG)、信道编码(如数字用户线路(DSL))。这个领域处在数学、统计学、计算机科学、物理学、神经科学和电机工程学的交叉点上。信息论对航海家深空探测任务的成败、光盘的发明、手机的可行性、互联网的发展、语言学和人类感知的研究、对黑洞的了解,以及许多其他领域都影响深远。信息论的重要子领域有信源编码、信道编码、算法复杂性理论、算法信息论、信息论安全性和信息度量等。
信息论简述
信息论的主要内容可以类比人类最广泛的交流手段——语言来阐述。
一种简洁的语言(以英语为例)通常有两个重要特点: 首先,最常用的词(比如”a”、”the”、”I”)应该比不太常用的词(比如”benefit”、”generation”、”mediocre”)要短一些;其次,如果句子的某一部分被漏听或者由于噪声干扰(比如一辆车辆疾驰而过)而被误听,听者应该仍然可以抓住句子的大概意思。而如果把电子通信系统比作一种语言的话,这种健壮性(robustness)是不可或缺的。将健壮性引入通信是通过信道编码完成的。信源编码和信道编码是信息论的基本研究课题。
注意这些内容同消息的重要性之间是毫不相干的。例如,像“多谢;常来”这样的客套话与像“救命”这样的紧急请求在说起来、或者写起来所花的时间是差不多的,然而明显后者更重要,也更有实在意义。信息论却不考虑一段消息的重要性或内在意义,因为这些是数据的质量的问题而不是数据量(数据的长度)和可读性方面上的问题,后者只是由概率这一因素单独决定的。
信息的度量
信息熵
美国数学家克劳德·香农被称为“信息论之父”。人们通常将香农于1948年10月发表于《贝尔系统技术学报》上的论文《通信的数学理论》作为现代信息论研究的开端。这一文章部分基于哈里·奈奎斯特和拉尔夫·哈特利于1920年代先后发表的研究成果。在该文中,香农给出了信息熵的定义:
H(X)=EX[I(x)]=x∈X∑p(x)log2(p(x)1)
其中X为有限个事件x的集合,X是定义在X上的随机变量。信息熵是随机事件不确定性的度量。
信息熵与物理学中的热力学熵有着紧密的联系:
S(X)=kBH(X)
其中S(X)为热力学熵,H(X)为信息熵,kB为波兹曼常数。 事实上这个关系也就是广义的波兹曼熵公式,或是在正则系综内的热力学熵表示式。如此可知,玻尔兹曼与吉布斯在统计物理学中对熵的工作,启发了信息论的熵。
信息熵是信源编码定理中,压缩率的下限。当我们用少于信息熵的信息量做编码,那么我们一定有信息的损失。香农在大数定律和渐进均分性的基础上定义了典型集和典型序列。典型集是典型序列的集合。因为一个独立同分布的X序列属于由X定义的典型集的概率大约为1,所以只需要将属于典型集的无记忆X信源序列编为唯一可译码,其他序列随意编码,就可以达到几乎无损失的压缩。
例子
若S为一个三个面的骰子,
P(面一)=1/5,
P(面二)=2/5,
P(面三)=2/5
H(X)=51log2(5)+52log2(25)+52log2(25)
联合熵与条件熵
联合熵(Joint Entropy)由熵的定义出发,由联合分布,我们有:
H(X,Y)=x∈X∑y∈Y∑p(x,y)log(p(x,y)1)
条件熵(Conditional Entropy),顾名思义,从条件概率p(y|x)做定义:
H(Y∣X)=x∈X∑y∈Y∑p(x,y)log(p(y∣x)1)
因为由贝叶斯法则,我们有p(x,y)=p(y∣x)p(x),带入联合熵的定义,可以分离出条件熵,于是得到联合熵与条件熵的关系式:
H(X,Y)=H(X)+H(Y∣X)=H(Y)+H(X∣Y)=H(Y,X)
链式法則
我们可以再对联合熵与条件熵的关系做推广,假设现在有n个随机变量Xi,i=1,2,…,n,重复分离出条件熵,我们有:
H(X1,X2,…,Xn)=
H(X1)+H(X2,…,Xn∣X1)=
H(X1)+H(X2∣X1)+H(X3,…,Xn∣X1,X2)=
H(X1)+i=2∑nH(Xi∣X1,…,Xi−1)
他的意义显而易见,假如我们接收一段数列X1,X2,…,Xn,且先收到X1,再来是X2,依此类推。那么收到X1后总消息量为H(X1),收到X2后总消息量为H(X1)+H(X2∣X1),直到收到Xn后我们的总消息量应为H(X1,…,Xn),于是这个接收过程中就给出了链式法則。
互信息
互信息(Mutual Information)是另一有用的信息度量,它是指两个事件集合之间的相关性。两个事件X和Y的互信息定义为:
I(X;Y)=H(X)−H(X∣Y)=H(X)+H(Y)−H(X,Y)=H(Y)−H(Y∣X)=I(Y;X)
其意义为,若我们想知道Y包含多少X的信息,在尚未得到Y之前,我们的不确定性是H(X),得到Y后,不确定性是H(X∣Y)。所以一旦得到Y后,我们消除了H(X)−H(X∣Y)的不确定量,这就是Y对X的信息量。
如果X,Y互为独立,则H(X,Y)=H(X)+H(Y),于是I(X;Y)=0。
又因为H(X∣Y)≤H(X),所以
I(X;Y)≤min(H(X),H(Y)),其中等号成立条件为Y=g(X),g是一个双射函数
互信息与G检验以及皮尔森卡方检验有着密切的联系。
跟概率有关内容,可以参考极客本系列文章的《概率分布》。