计算机以及通信领域的熵一般指信息熵。本文介绍信息熵与哈夫曼编码的关系,以及二进制在信息熵和哈夫曼编码中的位置。
-
信息熵
香农提出,把信息中的冗余排除后剩余的平均信息量就是信息熵。信息熵是对不确定性的度量。信息熵越大,不确定性越大。
对于一个随机变量X,其信息熵为:
H ( X ) = − ∑ x P ( x ) l o g a ( P ( x ) ) H(X)=-\sum\limits_x P(x)log_a(P(x)) H(X)=−x∑P(x)loga(P(x)).
当X服从均匀分布时,其不确定或熵最大。当X完全确定时,熵为0.
其中 a a a可以取任意值。
在信息论中,香农于1948年发现信源编码定理或香农编码定理:
给定信源 X = { x i } X=\{x_i\} X={xi}以及概率分布 P ( X ) P(X) P(X), 进行某种无损K进制编码后得 C = { c i } C=\{c_i\} C={ci}, 则
H ( X ) l o g a ( K ) ≤ E [ L ] ≤ H ( X ) l o g a ( K ) + 1 \frac{H(X)}{log_a(K)}\leq E[L]\leq\frac{H(X)}{log_a(K)}+1 loga(K)H(X)≤E[L]≤loga(K)H(X)+1,
其中L为对X进行编码后的随机编码C的长度。
该定理说明,X进行无损编码后平均编码长度大于等于以K为底的信息熵。
注: H ( X ) l o g a ( K ) \frac{H(X)}{log_a(K)} loga(K)H(X)相当于更换 H ( X ) H(X) H(X)的底为 K K K。 -
哈夫曼编码
基于香农编码定理思想,哈夫曼于1952年提出一种无损二进制编码方法,属于熵编码中的一种。
其主要思想是通过构建最优二叉树(哈夫曼数),也就是带权路径长度最短的二叉树,来对字符集进行编码。哈夫曼证明其是一种最优二进制编码,也就是说路径之和最小。
E [ L ] = ∑ P ( s i ) ∗ L e n g t h ( s i ) E[L]=\sum P(s_i)*Length(s_i) E[L]=∑P(si)∗Length(si)
也就是说平均bit数最小。
当概率是2的幂次方时,哈夫曼编码可达到信息熵所指明的最小平均bit数。