熵
香农的概念熵现在可以开始了。回想一下表格两种编码的比较米来年代显示了第二种编码方案将传输平均5.7个字符米每秒。但是,假设传输的不是表中所示的字符分布,而是一长串a。因为每个A只由来自的一个字符表示年代,对于给定的信道容量,这将导致最大传输速率为每秒10个字符米.另一方面,传输一长串的d将导致传输速率只有3.3个字符米因为每个D必须由3个字符来表示年代.平均传输速率5.7是将每个字符码的长度加权平均,然后用信道速度除以这个平均长度得到的。平均长度公式为:AvgLength = .5 × 1 + .25 × 2 + .125 × 3 + .125 × 3 = 1.75,每个符号的代码长度乘以它概率,或相对频率。(例如,由于字母B占平均消息的25%,它的相对频率是.25。这个数字乘以2,即在信号字母表中编码B的字符数。)当每秒10个字符的通道速度除以上面计算的平均长度时,结果是10/1.75,或大约5.7个字符米每秒。
平均长度公式可以推广为:AvgLength =p1长度(c1) +p2长度(c2) +⋯+pk长度(ck),在哪里p我的概率是我字符(这里称为c我)和长度(c我)表示的编码长度c我.注意这一点方程可以用来比较传输吗效率,但不能用于发现可能的最佳编码。然而,香农能够找到一个数量,为任何可能的编码效率提供了一个理论极限,仅仅基于信息字母表中字符的平均分布。这就是他称之为熵的量,用H公式如下:H=p1日志年代(1/p1) +p2日志年代(1/p2) +⋯+pk日志年代(1/pk).(为了查看日志,看到对数)。关于这个等式有几点值得注意。首先是符号日志的存在年代.这里是下标年代表示信号字母表中元素的数量年代;日志年代,因此,可以认为是计算给定分布的“最佳长度”。其次,注意倒数概率(1/p11 /p2,…),而不是概率本身(p1,p2,……)。在更详细地解释这个方程之前,香农的以下发现明确了之间的关系H和AvgLength:H≤AvgLength。因此,给定消息字母表的熵决定了平均编码效率的极限(由消息长度衡量)。
因为信号字母表,年代,只有两个符号(0和1),一个非常小的log值表2,如表所示log的一些值2,将足够了插图。(有科学计算器的读者可以对结果进行比较。)
n | 日志2(n) | n | 日志2(n) | n | 日志2(n) |
---|---|---|---|---|---|
1.0 | 0.000 | 4.0 | 2.000 | 7.0 | 2.807 |
1.5 | 0.585 | 4.5 | 2.170 | 7.5 | 2.907 |
2.0 | 1.000 | 5.0 | 2.322 | 8.0 | 3.000 |
2.5 | 1.322 | 5.5 | 2.459 | 8.5 | 3.087 |
3.0 | 1.585 | 6.0 | 2.585 | 9.0 | 3.170 |
3.5 | 1.807 | 6.5 | 2.700 | 9.5 | 3.248 |
建立了这些初步条件之后,现在就可以确定前面介绍的编码是否真的是最优的。在第一个分布中(如表所示)编码1米使用年代)所有角色都有0.25的概率。在这种情况下,熵由为日志2(1/.25) + .25 log2(1/.25) + .25 log2(1/.25) + .25 log2(1 / .25),等于4 ×。25 × 2 = 2。回想一下,第一个编码的平均长度也是2;因此,这种编码是最优的,无法改进。
对于第二个分布(如表所示)编码2米使用年代)则熵为5日志2(1/.5) + .25 log2(1/.25) + .125 log2(1/.125) + .125 log2(1 / .125),等于。5 +。5 +。375 +。375 = 1.75。记住,这等于秒的平均长度编码对于这个字符分布。再一次,我们找到了最优编码。
刚才考虑的两个示例可能表明,找到最优代码总是很容易的。因此,不妨看看一个反例。假设这些字符的概率米如表中所示改变的概率米.对于本表中给出的分布,H= .4 log2(2.5) + 3 × 2 log2(5) = 1.922。然而,在本例中,为的所有简单编码米-那些替换字符串的年代中的每个字符米-平均长度≥2。因此,用熵计算的界是不可能的获得使用简单的编码。香农举例说明了一种以使编码和解码复杂化为代价来提高编码性能的技术。其基本思想是对从米.例如,考虑一下这个表中显示的字符对出现的频率,假设这些字符是彼此独立出现的。每对配对的概率是由组成配对的单个字符的概率相乘得到的,如表所示。AA对出现的概率平均为16%(。16 = .4 × .4)。
字符 | 概率 |
---|---|
一个 | .4 |
B | .2 |
C | .2 |
D | .2 |
表中显示了16对可能的A、B、C和D,以及它们的概率和可能的编码字符对的概率米.可以这样验证,本表中给出的编码为前缀码。本表中编码的平均长度为3.92个字符年代的每2个字符米,或1.96个字符年代对于每一个米.这比之前得到的2.0更好,尽管仍然不等于熵。因为熵不完全等于任何分数,所以不存在平均长度完全等于熵的代码。但香农确实表明,更复杂的代码总是可以被创造出来,其平均长度接近所期望的熵极限——代价是变得越来越复杂和难以实现利用.
一对 | 概率 | 编码 | 一对 | 概率 | 编码 |
---|---|---|---|---|---|
AA | 16 | 000 | CA | 。08 | 1000 |
AB | 。08 | 101 | CB | .04点 | 01110 |
交流 | 。08 | 0011 | CC | .04点 | 01101 |
广告 | 。08 | 0010 | CD | .04点 | 01100 |
英航 | 。08 | 110 | 达 | 。08 | 111 |
BB | .04点 | 01011 | DB | .04点 | 01010 |
公元前 | .04点 | 1001 | 直流 | .04点 | 01001 |
双相障碍 | .04点 | 01111 | DD | .04点 | 01000 |
总结到目前为止:消息字母表中的平均字符分布决定了一个极限,称为香农熵,在最佳平均(即最短)可达到的编码方案。只有在特殊情况下才能得到理论上的最佳编码方案。最后,可以找到一种接近理想的理论最佳编码方案,尽管它的使用可能是不切实际的,因为它的复杂性必然增加。