引言

在日常交流中,有人可能说了几大段话却如同废话,也有人就简单说了几句话却让人一时感觉难以理解。信息量的多寡并不能仅仅靠信息的长度,更应该看中于其所传达的信息。
在《通信的数学原理》里,香农把信息定义为“消除不确定性的东西”,只要一个字能够传达足矣确定不确定量的信息,那么它的信息量就甚至比一段话的信息量更多。由此,香农引进了热力学中的传统观点——熵。

使用熵来描述信息不确定程度如何,由此度量出信息量。本文则以一些实例开头来介绍信息的表达,逐渐引入数学模型,站在前人的肩膀上去进一步理解信息并且实现对信息的度量。

举例

二进制系统

如果一个系统仅有两种可能的情况,如同掷硬币只有正面和反面两种可能性。我们可以尝试将正面定义为1,反面定义为0,那么抛掷一次硬币就能够代表1 bit信息。

十进制系统

人类有十根手指以及对称的脚趾,这也就使得人类习惯于使用十进制系统来进行日常计数。在十进制系统中,存在从0到9一共10个数字,这也就使得在十进制系统中提供一个确定的系统能够消除另外九个数字的干扰。容易看出,十进制系统中一个数字能够表达信息量更大。

二十六进制系统

英文字母一共有26个,确定一个字母能够消除另外25个无关字母。
可以看出,随着信息不确定性的增大,一个单独的字符所能够表达的信息量越大。

数学模型的建立

传统热力学系统上,人们经常使用熵来描述一个系统的混乱程度,并且作为描述系统状态的一个函数

当我们将之引入信息论则可以用来描述信息的不确定性。
在信息传输中,系统的熵越高则能传输越多的信息,系统的熵越低,传输的信息量相对而言越少。

此外,在热力学熵与信息论中的熵之间也存在一个联系,即:

其中$K_B$为波兹曼常数。

熵的计算

于是我们定义一种不确定程度$I_e$

其中P为有效信息占所有可能信息的概率,并且该种不确定性的概率与其所传达的信息量成正比,我们称之为自信息量。

在经典信息传输中,由于不同字符存在不同的出现概率以及信息量,于是我们可以联想并使用概率学来求解该条消息量的数学期望H(X)。于是定义H(X)为信息熵

这里的定义H(X)即为信息熵。
在这里信息熵同样可以被理解为一串信息流中每个字符的平均信息量。

计算举例

单信息

上文我们提到了不同进制位中单个字符所传达的信息量不同,当我们引入信息熵的概念之后,我们就有了能够度量字符所传达的信息量大小的方式,当信息熵$I_e$计算公式里的底数b取2时,计算结果则以bit为单位。如下表格所示:

进制数 信息量
2 1.0
10 3.2
16 4.0
26 4.7
26 11.7

其中英文字母26个,《通用规范汉字表》中一级字表3500个,由上述计算可以看出单个汉字所能够表达的信息量约为英文字母的2.5倍,这也就使得英文文献翻译后会薄了很多。

信息流

假定存在这样的一枚骰子,共有4面,记为面a,面b,面c,面d,并且$P_a= \frac{2}{5}$,$P_b=P_c=P_d=\frac{1}{5}$。那么由上文公式可求得)$。

假定存在这样的一枚骰子,共有4面,记为面a,面b,面c,面d,并且$P_a= \frac{2}{5}$,$P_b=P_c=P_d=\frac{1}{5}$。那么由上文公式可求得

由此,我们计算出了连续抛掷骰子的情况下单次信息量的数学期望,当在理想状态下抛掷N次时,其总信息量可以表述为$Y_n=N*H(X)$。

应用

从二进制到最终呈现到屏幕上的汉字需要一套字符编码集来实现,根据香农的信息熵我们可以得知,如果给出现频率高的字符安排较短的编码长度则可以大幅度降低最终文件的大小。

由于存在文件的格式定义以及容错字节等其它占据一定文件大小的内容或者无法精确得知文件大小的因素存在,因此我们需要使用大量的数据来减小计算误差。在此我使用Python来生成了三个文件,分别包含五十万个“河南工业大学”“河南工大”以及“河工大”。
一部分代码截取如下:

1
2
3
4
5
6
i = 0
for i in range(500000):
file = open('a.txt','a')
file.write("河南工业大学")
i = i + 1
file.close()

该文件使用utf-8进行编码,大小约为8790KB,即70320000个bit,于是可以计算出单个汉字占据的bit位约为23.44bit。通过查阅utf-8定义可知,上述文字均位于一级字表中,utf-8使用3 Bytes来进行编码这些文字,对于那些使用频率较低的文字则分配4 Bytes空间。

从另外一个方面来看,上述三个文件所能够表述的意思相同,但最终以二进制文件储存在计算机里的文件大小不一致。这是因为在不同范围内的人群对上述理解存在不确定性,可能对于一个人而言“河工大”无法让其确定具体学校,也就无法消除不确定性,此时的信息量为0。而对于另外一些人而言,也许“工大”的描述就足够。
对于不同人而言,信息容量不同,单个信息传输的信息量也就产生了区别。

结论

在section 1,2里面我们介绍了生活中的常例,在section 3里我们引入了信息熵的定义以及计算公式并进行了基本计算,在section 4里我们编写了一个程序,粗略算得单个汉字占据约3 Bytes空间,对于一些生僻字,则分配4个字节的储存空间。
信息熵在这里则可以作为编码的一部分理论依据,以此为基础确定如何最佳地分配空间。香农的信息熵以信息的本质意义,为我们提供了一种更加方便并且使用的方法来度量信息量。

参考文献

克劳德·艾尔伍德·香农:《通信的数学理论》(A mathematical theory of communication)贝尔系统技术月刊l,27卷,379-423,623-656页, 1948年7月,10月.

维基百科编者. 波茲曼常數[G/OL]. 维基百科, 2019(20190604)[2019-06-04].

维基百科编者. UTF-8[G/OL]. 维基百科, 2019(20190520)[2019-05-20]. -{R https://en.m.wikipedia.org/wiki/UTF-8}-.

维基百科编者. 信息论[G/OL]. 维基百科, 2019(20190401)[2019-04-01]. -{R https://en.m.wikipedia.org/wiki/Information\_theory}-.

CSDN编者规数.CSDN,2014(20140528)[2014-05-28]. -{R https://blog.csdn.net/hguisu/article/details/27305435}-.