关于语言中信息熵的理解

Published:

什么是信息熵

某系统的符号平均符号信息表达量(信息熵)简记为 Entropy。

Entropy越高,表达一条信息,所用的平均符号数就越少,整个句子越言简意赅。其中每个符号的歧义低,冗余度低,利用率低,效率高。若世界上信息数一共有A个那么多,每个符号的冗余数为m,理论上就要A/m个符号,每个符号的利用率就是m/A。

Entropy越低,表达一条信息,所用的平均符号数就越多,整个句子相应啰嗦。其中每个符号的歧义高、冗余度高,利用率高,效率低。若世界上信息数一共有B个那么多,每个符号的冗余数为n,理论上就要B/n个符号,每个符号的利用率就是n/B。

信息熵的直观理解

显然 A == B, m < n。所以信息熵越高,符号量越多,每个符号的利用率越低,重在去学习哪些符号与哪些信息相对应。

信息熵越低,符号量越少,每个符号的利用率越高,重在学习符号怎么去组合使用来表达信息,组合的存在使得信息表达的时候显得符号冗余。

这里不严谨地举个例子:表达两个意思,比如“你去哪”、“来这”。

因为汉语的信息熵高,分别用“你去哪”、“来这”就能表达了。可以看到每个意思里面都只有两三个符号,言简意赅,效率又高(每个字就用了一次便表达出来意思),虽然在这几个字上体现不出来利用率,但是像“卌(xi 四声)”这种字,显然用到的地方很少,利用率低,不过反过来,它表示“四十”的意思,信息量很大。

因为英语的信息熵低,分别用“Where are you going”、“Come here”表达。可以看到是冗余了不少,单个e o字母就用了多次,效率显得也低(用了好多次才表达出来),但是它的利用率却很高,身为26个字母中的一员,在这个很普遍的地方就出现了好几次。

计算机中的信息熵

信息熵在计算机里面体现为符号表达所需的平均bit理论最低数,人类认为言简意赅表达,计算机仍要用复杂的来表示,毕竟1bit代表的意义永远是0或1。到了计算机里面,表达同种意义的所有语言都将被平等对待,语言不同,其bit占用数又会出现不同。而每个语言的理论bit数,也是压缩软件努力追求的理想目标。

对于哈夫曼树,为了空间最优,频率(利用率)越低的、对应信息量也越大的字母,占用bit数也越多,可见这个优化算法在不知不觉中遵循着信息熵理论。