一点都不能少!伯克利研究人员提出深度学习锻造无损数据压缩新方法
From: BAIR 编译: T.R
数据压缩对于高速传输和高密度保存至关重要。近日 来自伯克利的研究人员基于深度学习提出了一种可广泛应用的有效无损数据压缩方法 ,基于bits-back编码和非对称数字系统,在隐变量模型的辅助下实现了更为有效快速、适应性强的压缩结果。
高维数据的无损压缩
这一研究的目标在于为图像等高维数据设计一种广泛适用的无损压缩机制,要完成这一任务需要解决 两个关键问题 :
1. 如何选择一个可以紧密捕捉输入数据隐含分布的统计模型;
2. 如何开发一个广泛适用的压缩算法,充分发掘模型的理论压缩能力?
任何一种模型对于数据的压缩比都十分依赖于模型的容量和能力。而近年来深度学习的进步使得我们拥有了可以优化复杂高维数据概率模型的有效方法。这些进展为无损压缩开启了新的发展阶段。目前优秀的技术结合了自回归模型和熵编码,能达到很好的压缩比,算术编码和非对称数字系统(asymmetric numeral systems,ANS)就是其中的代表。
然而, 自回归结构会使得解压过程大大慢于压缩过程 。但值得庆幸的是,ANS具有并行化的潜力。为了充分利用这一性能,研究人员将课题聚焦在了为 全因子分布(fully factorized distributions)建模 上来,并在这一条件的基础上构建模型和新的编码机制。
相关研究
最近提出的 基于Bits-Back的非对称数字系统(Bits-Back with Asymmetric Numeral Systems, BB-ANS)通过结合隐变量的ANS模型 来处理这一问题。
隐变量模型定义了未被观察到的随机变量,而这些随机变量可以有效处理数据的分布。例如。如果观测到的数据由图像组成,这些图像的成分特性依赖于位置和边缘以及纹理,这些就可以视为隐变量。在实际过程中,人们一般会使用标准高斯分布一类的分均匀先验来定义隐变量。这类模型可以使用全因子分布,并可以利用VAE框架来进行有效优化。
BB-ANS可以对隐变量进行压缩的关键因素是bits-back编码,这种编码被证明天然适用于ANS。Bits-back 编码保证了压缩结果在平均上接近负的证据下界(Evidence Lower Bound,ELBO),而额外的开销仅仅在初始化时才产生。当一次压缩较长序列的数据点时这一额外开销相对于整体就会变得不那幺重要。
本研究的贡献
当隐变量模型可以被设计为复杂的密度估计器时,将模型限制在全因子分布上会限制模型的灵活性。因此研究人员提出了利用分层隐变量模型来解决这一问题,相较于单个隐变量模型会带来更多的模型容量和灵活性。通过将全因子先验分布替换为第二个隐变量模型、其先验替换为第三个隐变量模型,依此类推来将先前的模型拓展为了递归的方式。
举个例子,如果观测到的是图像数据,那幺图像的特征成分很有可能依赖于边缘的位置和纹理,而它们则又依赖于目标的位置,同时目标依赖于场景的构成等,这一依赖性将会不断传递。
值得一提的是,如果将模型的每一层设计为只依赖于上一层的,模型整体就可以理解为多元嵌套隐变量模型:观测到的数据分布受到第一层个隐变量层的控制,同样第一个隐变量层的分布则受到第二个隐变量层的控制,依此类推直到最顶部的隐变量层,而这一层则具有非条件的先验分布,这意味这不断传递的特征依赖性可以分层表达。
在这一观察的基础上,研究人员提出了一种称为递归bits-back的新颖编码技术。将bits-back编码递归地应用到每一层上,自底向上地处理嵌入隐变量模型。
研究人员将递归bits-back编码的关键部分和特定的分层隐变量模型结合起来提出了Bit-Swap模型,它包含了以下优势:
1. 使用递归的bits-back编码可以有效的限制模型的开销,使得它不会随着模型层级的深度而增加。 这与直接使用BB-ANS不同,那种方法忽略了隐变量的拓扑特性并将所有隐变量视为单一矢量,造成了模型开销随着分层深度线性增长。而有界的开销使得Bit-Swap技术使得它在深度隐变量层级结构中成为了一种强大的工具。
2. Bit-Swap可以在压缩过程中达到 负ELBO的平均水平,同时所需的开销更小 。
3. 通过每一层的先验来嵌入隐变量模型可以使得每一层表达更为复杂的分布。 嵌入结构可以视为更为紧致的ELBO,这可以带来更好的压缩比。
4.
通过模型维持全因子分解可以使得整体编码实现并行化的处理。
利用ANS的GPU实现和模型并行化,可以实现高速的压缩和解压缩。本方法主要瓶颈在于ANS操作的实现,但研究人员对于并行化处理十分乐观,这将在未来大幅度提升Bit-Swap的操作速度。
优异的结果
在训练过程中,使用了ImageNet中32×32的图元来进行训练,而测试时候则使用了与训练集相独立的100张图像及逆行裁剪,同样以32×32进行测试。
可以看到这一模型的压缩比和压缩结果都十分优秀。图像序列作为数据集被输入到Bits-Swap和BB-ANS中进行序列处理。随后利用Bits-Swap和BB-ANS处理单个序列,每次压缩一张图像。随后与各种基线模型进行了比较,结果见表格。可以看到新提出的模型在性能上超越了先前多个基线模型。研究人员相信未来可以通过使用更大的图元和复杂的模型来进一步提升这种方法的性能。
如果你想学习更为深入的数学表达和模型构建的过程,可以参看论文:
https://arxiv.org/abs/1905.06845
这里还有一份ppt详细讲解了这一过程:
https://fhkingma.com/bitswap/bitswap.pdf
最后,如果向上手学习,下面的链接可以找到代码:
https://github.com/fhkingma/bitswap
参考资料
https://yq.aliyun.com/articles/396895
http://www.sohu.com/a/214385413_642762
DeepZip:https://github.com/kedartatwawadi/NN_compression
https://www.cnblogs.com/huangshiyu13/p/6148608.html
ELBO:
https://sklearn.apachecn.org/docs/0.21.3/24
https://www.cnblogs.com/jesse123/p/7764672.html
https://blog.csdn.net/yxh11028/article/details/78706404
https://www.cnblogs.com/ainima/archive/2008/04/03/6331433.html
https://dribbble.com/shots/6532684-Streamline-and-simplify-the-research-process