Index
系列文章结构如下:
- 漫谈Deep Compression(一)简介与背景
- 漫谈Deep Compression(二)剪枝
- 漫谈Deep Compression(三)量化
- 漫谈Deep Compression(四)哈夫曼编码
- 漫谈Deep Compression(五)ICLR2017: DeepRebirth
- 漫谈Deep Compression(六)关于硬件
Introduction
深度学习在CV, NLP, 医疗等方面都有显著成果. 毫无疑问, 将深度学习将应用到移动端, 嵌入式系统等是很有吸引力的. 然而, 深度学习模型的训练与应用涉及大量的矩阵运算:例如, 在CNN模型中存在大量的卷积运算. 这不仅代表着我们需要高效的矩阵运算能力, 同时代表我们要存储大量权值以及参数.
从硬件上来说, 我们可以通过卷积核解构以及复用, 通过更低的存储位宽设计来加速卷积运算. 然而, 对于低廉的移动设备来说, 专用卷积加速核的成本是高昂的. 因此, 如何将模型从算法上压缩至移动设备可接受的程度是很有吸引力的.
本系列文章主要基于ICLR2016 best paper* Deep Compression:Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding*[1]中介绍了一种深度压缩的方法: 通过对模型进行剪枝, 量化以及编码, 在几乎不影响网络准确度的情况下, 将模型大学压缩至35~49倍(如下).
表一Background
深度压缩基于一个很重要的理论: 即神经网络模型通常是over-parametrized(过参数化)的[2]. 过参数化指的是, 我们通常不需要那么多参数就可以表达出模型特征, 例如, 为了拟合f(x)=kx+b, 我们的模型为f(x)=acx+b. 此时a, c参数是高度相关的, 因为他们本质上可以表达为c=k/a.
有许多研究尝试消除冗余: Vanhoucker等[3]用定点数以及八位整数激活. Anwar[4]等通过L2误差最小化来量化网络, 并且在MNIST和CIFAR-10数据集达到了很好的精确度. Denton等[5]通过低秩矩阵来表示网络权重.
此外, 还有Hash[5], 用全局平均池化代替全连接层[6], 剪枝[7]等方法.
Architecture
深度压缩过程本文中深度压缩过程主要包括了剪枝, 量化, 编码. 在接下来的文章中将详细解析各部分的原理以及实现.
可以看出, Deep Compression并不算是太革新的模型压缩方法. 剪枝, 量化和哈夫曼编码都是各种压缩算法里常见的. 其亮点在于能在不损失精度的前提下将VGG, AlexNet等网络压缩几十倍. VGG和AlexNet在模型预训练以及迁移学习中十分重要. 今年2月份, 创业公司XNOR.AI通过另一种压缩方法:二值神经网络, 将模型运用到树莓派, 获得了260万美元的投资.
Reference
[1]Han S, Mao H, Dally W J. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding[J]. Fiber, 2015, 56(4):3--7.
[2]Denil, Misha, Shakibi, Babak, Dinh, Laurent, de Freitas, Nando, et al. Predicting parameters in deep
learning. In Advances in Neural Information Processing Systems, pp. 2148–2156, 2013.
[3]Vanhoucke, Vincent, Senior, Andrew, and Mao, Mark Z. Improving the speed of neural networks on
cpus. In Proc. Deep Learning and Unsupervised Feature Learning NIPS Workshop, 2011.
[4]Anwar, Sajid, Hwang, Kyuyeon, and Sung, Wonyong. Fixed point optimization of deep convolutional
neural networks for object recognition. In Acoustics, Speech and Signal Processing (ICASSP),
2015 IEEE International Conference on, pp. 1131–1135. IEEE, 2015
[5]Chen, Wenlin, Wilson, James T., Tyree, Stephen, Weinberger, Kilian Q., and Chen, Yixin. Compressing neural networks with the hashing trick. arXiv preprint arXiv:1504.04788, 2015.
网友评论