关于数据压缩、信源编码、赫夫曼码的一些研究,以及由此引出对决策树模型的信息论本质的思考

1. 关于数据压缩 0x1:什么是数据压缩?为什么要进行数据压缩?

从信息论的角度来看数据压缩,本质上就是通过寻找一种编码方案,在不损失或者尽量少损失原始信源信号的前提下,将原始信源信号映射到另一个D元码字空间上。

在机器学习中,我们经常讨论到的”模型训练“,其本质上就是在寻找一个”信源映射函数“,例如线性回归的回归参数,就是一种信源映射函数,可以将输入空间X,一一映射到Y空间,所以,得到了一组模型参数,本质上就是得到了一个信源映射函数,此后,就可以由模型参数代替原始的样本数据。

回到信息论数据压缩的话题,信息论数据压缩讨论和定义的是:在信源映射函数中,应该将哪些码字分配给哪些信源,怎么分配是最优的,即节省传输开销的。

本文通过讨论信息压缩的基本临界值(即最短码字长度),从另一个方面来看熵的定义和合理性。通过对数据源中最频繁出现的结果分配较短的描述,而对不经常出现的结果分配较长的描述,可达到压缩数据的目的。

0x2:关于压缩编码的几个例子 1. 信源编码的定义

数据压缩的的本质是找到一种高效的压缩编码方案,这小节我们先定义一下信源编码的一些形式化定义与记号,然后一起来看几个关于压缩编码的例子。

关于随机变量X的信源编码C是从X的取值空间X到D*的一个映射,其中D*表示D元字母表D上有限长度的字符串所构成的集合,用C(x)表示x的码字并用 l(x) 表示C(x)的长度。

设随机变量X的概率密度函数为p(x),定义信源编码C(x)的期望长度L(C)(expected length)为

关于数据压缩、信源编码、赫夫曼码的一些研究,以及由此引出对决策树模型的信息论本质的思考

,其中l(x)表示对应于x的码字的长度

另外,不是一般性,可以假定D元字母表为D={0,1,....,D-1}

2. 等比例码字编码举例

所谓等比码字编码,就是指对信源里的所有信号都采用相同长度的码字,例如:

C(红)=00,C(蓝)=11,是X={红,蓝}关于字母表D={0,1}的一个信源编码。

3. 对非等概随机变量进行非等比例编码举例

设随机变量X的分布及其码字分配如下:

关于数据压缩、信源编码、赫夫曼码的一些研究,以及由此引出对决策树模型的信息论本质的思考

可知X的熵H(X) = 1/2 * 1 + 1/4 * 2 + 1/8 * 3 + 1/8 * 3 = 1.75比特。而期望长度L(C) = El(X) = 1.75比特。

这里,我们看到一个期望长度正好等于其熵值的编码,仔细对比会发现在该编码方案下,熵的计算公式和期望长度的计算公式是完全相同的。

另外,注意到这个编码方案是可逆的,任何一个比特序列都可以唯一地解码成关于X中的字符序列,例如,比特串010111100110解码后为134213。

4. 对等概随机变量机械能给你非等比例编码举例

继续沿着上面那个例子的讨论,假设这次随机变量是一个均匀分布,但这次不像第一个例子采用等比例编码,而是采用变长编码,如下:

关于数据压缩、信源编码、赫夫曼码的一些研究,以及由此引出对决策树模型的信息论本质的思考

正如前面的例子一样,该编码也是唯一可译的,但这种的编码方案的熵为log3 = 1.58比特,而编码的期望长度为1.66比特,即此时

关于数据压缩、信源编码、赫夫曼码的一些研究,以及由此引出对决策树模型的信息论本质的思考

为什么会这样呢?发生了什么事呢?

简单的解释就是:这个例子中的编码方案不是最优的,之所以期望长度比熵要大,是因为使用了多余的码字来对信源信号进行编码。

5. 莫尔斯码

莫尔斯码是关于英文字母表的一个相当有效的编码方案。

使用四个字符的字母表:点、划、字母间隔、单词间隔

使用短序列表示频繁出现的字母(例如,用单个点表示E),而用长序列表示不经常出现的字母(例如,Q表示为”划,划,点,划”)

关于数据压缩、信源编码、赫夫曼码的一些研究,以及由此引出对决策树模型的信息论本质的思考

需要注意的是,对于四字符的字母表来说,莫斯编码并非最佳表示,因为依此方式,许多可能的码字未被使用(码字空间没有被充分利用,这和前一个例子犯了同样的错误)。

香农在1948年的开创性论文中解决了对英文字母最佳编码方案的搜索问题,该问题也与磁记录的编码问题有联系,其中不允许出现一些长串的0。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdjjw.html