代写计算机论文案例:基于字节对编码的无损压缩算法

发布时间:2023-05-31 23:11:20 论文编辑:vicky

本文是一篇计算机论文,笔者认为self-attention配合上字节对编码的自适应字典,所组成的压缩模型在预测、拟合速度、压缩速度方面都有着比较明显的提升,单纯论文件压缩比相对于以前的模型也有着一定的提升。

1引言

1.1选题背景与意义

随着互联网的兴起与发展,当今社会已经大步迈入了智能科技社会,智能产品充斥着人们的生活,在人类生活中扮演者重要的角色并给人们带来了巨大的便捷。在2014年,互联网用户就达到24亿。到2016年,这个数字增长到34亿,2017年则增加了3亿。截止2022年10月,根据互联网世界统计(IWS)数据显示,现在有超过46亿互联网用户[1]。在短短五年内,使用互联网的人数增加了83%。相应的,互联网的发展,数据量的维度也在几何式的增长,每天会生成海量的数据。2018年全世界,创建、捕获、复制和消耗的数据总量为33泽字节(ZB),相当于33万亿GB。到2020年,这一数字已增长到了59ZB。预计到2025年将达到175ZB。1ZB=8×1021bits。在信息存储方面,大部分信息都存放在以下三个地方。全球各地的终端,包括所有物联网设备、个人电脑、智能手机和所有其他信息存储设备。边缘位置,包含基础设施如手机发射塔和机构服务器,以及服务处如大学、政府办公室、银行和工厂。第三,存储大部分数据的核心位置——传统数据服务器和云数据中心[2]。

计算机论文怎么写

世界上的超大规模的数据中心有超过600个,每个都拥有超过5000台服务器。其中最大的数据服务器位于中国呼和浩特的中国电信数据中心(占地约100万平方米)。为满足日益增长的数字数据存储需求,每两年就会有约100个新的超大规模数据中心建成[2]。从这些数据中可以看出,数据存储的成本正在飞速地增长,因此,数据存储问题也在近些年来被提了出来并收到了广泛的关注,也是非常热门的研究对象。

1.2文献综述

世界上对无损压缩算法的研究。现阶段,对无损压缩算法的研究依然从两个角度出发,基于字典编码的无损压缩算法和基于熵编码的无损压缩算法。

1977年,在一篇题目为”顺序数据压缩的通用算法(A Universal Algorithm forSequential Data Compression)“文章一种字典编码算法,此算法后续被称为ZL77算法。次年其作者对算法进行改进,发表了文章的续篇”通过可变速率编码的独立序列压缩“(Compression of Individual Sequences via Variable Rate Coding),被命名为LZ78算法。1984年,T.A.Welch发表了文章“高性能数据压缩技术”(A Techniquefor High Performance Data Compression),在文中描述了最新的研究成果,其为LZ78算法的一个变种,也就是后来非常有名的LZW算法。后续对其继续改进,推出了其他改进型算法,包括LZMA、LZMA2,其中LZMA2为LZ算法族中较新也较为常用的版本。

在熵编码中,Shannon和Robert Fano在1948年和1949年描述并实现了称之为香农-范诺(Shannon-Fano)算法的编码方法,其是最为古老的一种变码长的基于统计信息的熵编码。1952年,Robert Fano的学生David Albert Huffman提出了一种新的变码长的符号编码,其被称为Huffman编码,在现在也依然被应用于非常多的场景中。1987年,lan H.Witten、Radford M.Neal和John G.Cleary发表文章“数据压缩的算术编码”(Arithmetic coding for data compression)。提出了基于整数实现的算术编码。

2无损压缩算法

2.1熵编码

1948年,信息论之父香农(C.E.Shannon)发表的论文“通信的数学理论”(AMathematical Theory of Communication)[19],在文章中指出任何信息都存在这一定的冗余,冗余大小与信息中每个符号的出现概率有关。

数据压缩的理论极限基础就是信息熵。从信息熵的定义中可以看出,信息熵为信息量的度量单位,信息所带的最小极限数据量,其有两个实际含义,信源S的平均信息量;编码信源S每个字符所需要的平均最小比特数。熵编码即为在在信息熵的极限范围内进行编码以保证数据的不失真。在对数据进行无损压缩的时候,要保证不丢失信息量,即保证数据的完整性。

2.2预测模型

现有统计模型和神经网络模型,都是基于context预测的思想所建立。context,语境,上下文,在压缩算法中专指前文,symbols,单位字符,可以指字节,为压缩中的基本单位。待压缩数据基本可视为一个序列数据,且可视该序列数据为前后文关联序列,即各字符之间不相互独立。那么根据一定长度的前文,对下一个字符出现的概率分布会有一个预测。例如,给定I am a student序列数据,取I am a studen为前文数据,即context,则认为下一个字符大概率为t,即对于可能出现的256个字符中,t出现的概率最大。

在理想情况下,若可以根据k个前文字符,能够以100%的准确率正确预测后一个字符,那么对于任意长的序列,只需记录开头的k个字符,就可以得到该序列的全部信息。将1到k的字符作为前文,得到第k+1个字符,再将2到k+1个字符作为新的前文,得到第k+2个字符,以此类推,便可还原原始序列。所以在有100%预测正确率的情况下,压缩率是∞。

假设对于长度为n的待压缩序列,任意给定长度为k的context前文,能以100%准确率正确预测下一字符,则在压缩序列时,只需记录序列的前k个字符,就可以迭代地还原出全文,即用x1,...,xk得到xk+1,用x2,...,xk+1得到xk+2,以此迭代,此时压缩比为无穷大,该序列实际上时零熵序列,所以也是达到了熵压缩。由此可知,如果对待压缩字符的条件概率估计越准确,则将其作用于算术编码器得到的压缩比就越高。

基于此思想,研究人员提出各色概率预测器,CMIX[7],DeepZip[5],NNCP[14]运用了深度学习架构进行条件概率预测,凭借其较高预测准确率而成为其中的佼佼者。两者有一个共同点,就是使用了极其复杂的网络模型来预测字符的条件概率,复杂的网络需要消耗大量的算力资源与时间,使得压缩与解压的速度极其缓慢。因此,本文在相同思想的前提下,使用训练速度更快的attention机制网络构建条件概率预测模型,实现更快的无损压缩算法。

3压缩预测器模型...............................19

3.1字节对编码Byte-pair Encoding.......................19

3.1.1现有模型的字典.............................19

3.1.2字节对编码在字典中的运用.......................20

4实验与结果.................................54

4.1数据集...................................54

4.2字典....................................54

4.3模型训练与压缩结果............................55

4.4结论....................................59

4实验与结果

4.1数据集

在实验中使用的数据集,包括中文数据集,英文数据集和二进制文件。其中,中文数据集包括鲁迅全集,三国演义,英文数据集包括Wikipedia数据集enwik8、enwik9,爱丽丝梦游仙境,按字母顺序的字母表,以及完全随机的英文字母表,二进制文件则包括了一些可执行文件,C语言动态链接库。具体见表:

计算机论文参考

最后一列Unit表示,文本序列数据中的基础最小字符由几个字节组成。

结论

可以看到,本文中的压缩模型有着一定优势,也依然存在着缺陷。优势在于,相对于基于RNN的压缩模型,本文模型结构模型预测准确率的提升非常的明显,从而进一步地提高了压缩软件的压缩比,效果显著。并且,在中文数据压缩上,模型对中文数据集的压缩效果提升也非常的明显,与文中分析得出的结果一致。从压缩吞吐率上来说,本文模型结构还提升了模型的收敛速度和拟合速度,从而加快了数据的压缩速度,提高了吞吐率。对于较小的数据集,RNN模型基本需要在训练50个epoch后才能达到收敛,而本文的模型中,小数据集基本在20epoch就能够达到收敛。从这些优势中可以看出,基于self-attention模型结构配合上字节对编码生成的字典,不论对中文数据还是英文数据,都对他们压缩比的提升效果显著,且对压缩速度也有着相当大的优势。

而劣势在于,self-attention模型结构本身存在着一定的问题,由于其内部的实现原理,导致其参数量非常巨大,同时也导致了模型所占的空间极大。这就导致了基于RNN压缩算法中,模型参数只需要几百甚至几十KB就足够存储,而在本文的压缩模型中,模型的参数会达到好几个MB。模型参数的大小严重影响到了数据的压缩比。但这都是由于self-attention内部实现原理所导致的,最终来说self-attention也是一种空间换时间的方式,压缩模型所要的就是压缩比与吞吐率之间的权衡。

总的来说,self-attention配合上字节对编码的自适应字典,所组成的压缩模型在预测、拟合速度、压缩速度方面都有着比较明显的提升,单纯论文件压缩比相对于以前的模型也有着一定的提升。若对模型进行进一步的研究,使用单次训练压缩的形式,规避模型参数过大的劣势,本文提出的压缩模型能够得到更为优秀的压缩效果,也能够在实际的工程实践中加以运用。

参考文献(略)