熵与信息论

来源:互联网 发布:英伦对决最新票房数据 编辑:程序博客网 时间:2024/05/09 19:51

1. 数据压缩

假设任何文件都可以被压缩到 n 个二进制位(bit),那么其最多可以表示 2n 个不同的压缩结果。也即,如果存在 2n+1 个文件,根据鸽笼原理,必然至少有两个文件得到同一压缩效果。这就意味着,这两个文件不可能都无损地还原。

因此,可以得出一个相对抽象的结论,并非所有文件都可以被压缩到 n 个bit 位以内。

数据压缩的原理,压缩原理其实很简单,本质上,所谓压缩,就是找出文件内容的概率分布(probability distribution),将那些出现概率高的部分代替成更短的形式。相应地,如果内容毫无重复,就很难压缩。极端情况就是,遇到那些均匀分布的随机字符串,往往连一个字符都压缩不了。比如,任意排列的10个阿拉伯数字(5271839406),就是无法压缩的;再比如,无理数(比如π)也很难压缩

2. 从数据压缩到熵的引出

压缩可以分解成两个步骤(哈夫曼编码):

  • 第一步是得到文件内容的概率分布,哪些部分出现的次数多,哪些部分出现的次数少;
  • 第二步是对文件进行编码,用较短的符号替代那些重复出现的部分。

如果文件内容只有两种情况(1/5 vs 1/5比如扔硬币的结果),那么只要一个二进制位就够了,1 表示正面,0表示表示负面。如果文件内容包含三种情况(比如球赛的结果),那么最少需要两个二进制位。如果文件内容包含六种情况(比如扔筛子的结果),那么最少需要三个二进制位。

一般来说,在均匀分布的情况下,假定一个字符(或字符串)在文件中出现的概率是 p,那么在这个位置上最多可能出现 1/p 种情况。需要 log2(1/p)个二进制位表示替代符号。

这个结论可以推广到一般情况。假定文件有 n 个部分组成,每个部分的内容在文件中的出现概率分别为 p1,p2,...,pn,显然有 ipi=1。那么,替代符号占据的二进制最少为下面这个式子。

log21/p1+log21/p2++log21/pn=ilog2(1/pn)

3. 信息熵

对于两个相等(n)的文件,概率 p 决定了这个式子的大小:

  • p 越大,表明文件内容越有规律,压缩后的体积就越小;
  • p 越小,表明文件内容越随机,压缩的程度不会太高;

为了便于文件之间的比较,将上式除以 n,可以得到平均每个符号所占用的二进制位:

log2(1/pn)/n

进一步将其转换(p 是根据概率统计得到的)为:

pnlog2(1/pn)=E(log21/p)

又可视为一种期望,可以理解为,每个符号所占用的二进制位,等于概率倒数的对数的数学期望

4. 简单释例

  • 假定有两个文件都包含1024个符号,在ASCII码的情况下,它们的长度是相等的,都是 1KB。甲文件的内容 50%是a,30%b,20%是c,则平均每个符号要占用1.49个二进制位。

.5log2(1/.5)+.3log2(1/.3)+.2log2(1/.2)=1.485

  • 乙文件的内容10%是a,10%是b,……,10%是j,则平均每个符号

10×.1log2(1/.1)=3.322

0 0