前言:信息论的诞生
信息论是由克劳德·香农(Claude Shannon)于1948年在他的论文《通信的数学理论》中首次提出的。香农提出了一个全新的数学框架,用来描述信息的传输和处理。他的理论不仅为现代通信技术奠定了基础,还引入了“信息量”这一概念,成为量化信息的重要工具。
在通信系统中,信息传输的有效性和可靠性取决于我们如何对信息进行编码、传输以及如何处理噪声。香农提出的信息量衡量了符号序列的平均不确定性或信息含量,并帮助我们理解通信系统中如何以最有效的方式编码和传递信息。
平均信息量(熵)
香农定义的熵(Entropy)是系统中平均信息量的度量,用来描述符号的不确定性。符号越不可预测,携带的信息量越大。熵可以通过一组符号出现的概率来计算,符号的概率越平均,系统的不确定性越高,熵也越大。
平均信息量 ( H ) 的公式为:
H = − ∑ i = 1 n p i log 2 p i H = - \sum_{i=1}^{n} p_i \log_2 p_i H=−i=1∑npilog2pi
其中:
- ( p_i ) 是第 ( i ) 个符号出现的概率;
- ( \log_2 p_i ) 是符号的对数信息量,表示该符号的置信程度;
- ( H ) 是该符号系统的熵,即平均每个符号携带的信息量,单位为比特(bit)。
香农公式的推导
香农的核心思想是用数学工具来量化信息的不确定性。推导信息熵的过程中,香农提出了三个合理假设:
- 非负性:信息量必须为非负数。
- 概率越小,信息量越大:罕见事件(低概率)的信息量应该大于常见事件(高概率)。
- 独立性:复合事件的信息量应为各事件信息量的总和。
基于这些假设,香农得出了如下信息量公式:
I ( p i ) = − log 2 p i I(p_i) = - \log_2 p_i I(pi)=−log2pi
即一个符号出现的概率越低,携带的信息量越大。然后,香农将这一公式推广到整个符号集合,通过加权平均的方式,得到平均信息量(熵)公式:
H = − ∑ i = 1 n p i log 2 p i H = - \sum_{i=1}^{n} p_i \log_2 p_i H=−i=1∑npilog2pi
这个公式反映了整个系统的平均不确定性或信息量。
香农公式的应用
香农公式在多个领域有着广泛应用,特别是在通信、数据压缩和加密领域。以下是几个典型的应用场景:
-
通信系统:
- 香农公式帮助我们衡量在信道中传输信息的效率。通信工程师利用信息熵来设计更有效的编码方案,以减少冗余并提高传输效率。
-
数据压缩:
- 通过计算数据的熵,可以确定最优的压缩极限。在无损压缩算法(如哈夫曼编码)中,熵代表了编码的理论最小长度。
-
加密和信息安全:
- 香农公式也被用于密码学中,用来衡量加密系统的安全性。信息熵越大,破解加密系统的难度就越大。
实例:平均信息量的计算
现在让我们通过具体例子来理解香农公式的计算过程。假设有一个符号集 ( A, B, C, D, E ),它们的出现概率分别为:
- ( p(A) = \frac{1}{2} )
- ( p(B) = \frac{1}{4} )
- ( p© = \frac{1}{8} )
- ( p(D) = \frac{1}{16} )
- ( p(E) = \frac{1}{16} )
根据香农公式,熵 ( H ) 的计算如下:
H = − ( 1 2 log 2 1 2 + 1 4 log 2 1 4 + 1 8 log 2 1 8 + 1 16 log 2 1 16 + 1 16 log 2 1 16 ) H = - \left( \frac{1}{2} \log_2 \frac{1}{2} + \frac{1}{4} \log_2 \frac{1}{4} + \frac{1}{8} \log_2 \frac{1}{8} + \frac{1}{16} \log_2 \frac{1}{16} + \frac{1}{16} \log_2 \frac{1}{16} \right) H=−(21log221+41log241+81log281+161log2161+161log2161)
计算每一项:
H = − ( 1 2 × ( − 1 ) + 1 4 × ( − 2 ) + 1 8 × ( − 3 ) + 1 16 × ( − 4 ) + 1 16 × ( − 4 ) ) H = -\left( \frac{1}{2} \times (-1) + \frac{1}{4} \times (-2) + \frac{1}{8} \times (-3) + \frac{1}{16} \times (-4) + \frac{1}{16} \times (-4) \right) H=−(21×(−1)+41×(−2)+81×(−3)+161×(−4)+161×(−4))
H = 2.875 bit/符号 H = 2.875 \text{ bit/符号} H=2.875 bit/符号
这表示在这个符号系统中,平均每个符号携带的信息量为 2.875 比特。