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