读论文:深度压缩:用剪枝、训练有素的量化和胡夫曼编码压缩深度神经网络

本文提出了一种名为'深度压缩'的方法,通过网络剪枝、训练过的量化和哈夫曼编码,有效地压缩了深度神经网络,降低了存储需求且保持了精度。网络剪枝去除小权重连接,量化使多个连接共享权重,哈夫曼编码进一步优化存储。实验结果显示,此方法能将AlexNet模型压缩至原始大小的2.88%,同时不损害准确性,为在移动设备上部署复杂神经网络提供了可能。

标题: DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFMAN CODING
作者: Song Han、Huizi Mao、William J. Dally


Abstract

众所周知,由于神经网络是计算、内存密集型的,所以其对于硬件的需求也不小。而且在本文发布之前,也有其他的研究人员对于压缩神经网络有着不小的研究。为了解决这个问题,文本引入了“深度压缩”的概念,该技术使用修剪、量化以及哈夫曼编码技术,在压缩了神经网络的存储需求的同时也没有特别影响其准确性;

Index Term——compression, pruning, trained quantization, Huffman coding;


Introduction

即使深度神经网络已经成为了一种非常强大的计算机视觉任务的技术,但由于大量的权重而消耗了大量的内存。比如,AlexNet Caffemodel超过200MB,而VGG-16 Caffemodel超过500MB。这也阻碍了该技术在移动设备上的部署;
因此,本文的目标就在于减少在大型网络上运行推理所需的存储和能量,以便它们能够被部署在移动设备上。为此,作者提出了“深度压缩”,这是一种分三个阶段的管道:

首先,我们通过去除多余的连接来修剪网络,只保留信息量最大的连接。接下来,对权重进行量化,使多个连接共享相同的权重,因此只需要存储编码本(有效权重)和索引。最后,我们应用哈夫曼编码来利用有效权重的偏向分布。

实行上述方法的理由在于:剪枝和训练有素的量化能够在不互相干扰的情况下压缩网络,从而实现高压缩率;


贡献

  1. 本文提出了 “深度压缩”,使用该方法能够在不影响精度的前提下极大的压缩了神经网络的大小以及功耗等;
  2. 通过该方法,不仅使其在移动端实现的可能性增大了,还有利于在应用大小和下载带宽受到限制的移动应用中使用复杂的神经网络;

综述

1. 网络剪枝

就是上面那张图中左边的那部分:首先通过正常的网络训练学习连接性。然后,我们修剪小权重连接:所有权重低于阈值的连接都从网络中删除。最后,我们重新训练网络以学习剩余稀疏连接的最终权重。经过这样的处理,使得AlexNet和VGG-16模型的参数数量分别减少了9倍和13倍;

为了进一步压缩,本文还采用了存储索引差值,如下图所示:

这里以8为例:实际存储的就是与上一个点之间的间隔距离以及其自身的值,当差值超过8时,就在8那里插入一个 填充零 来作为中间人一样的


2 训练过的量化和共享权重

此处使用了网络量化(对共享权重进行微调)以及共享权重(让多个连接共享相同的权重)的方法来进一步压缩修剪后的网络。下图说明了共享权重的情况:
在这里插入图片描述

左上方是4×4的权重矩阵,左下方是4×4的梯度矩阵。权重被量化为4个bin(用4种颜色表示),同一bin中的所有权重共享相同的值,因此对于每个权重,我们随后只需要将一个小索引存储到共享权重表中;
更新过程中,所有的梯度都按颜色分组并相加,乘以学习率,再减去上次迭代的共享中心点;

采用这种方法能够将AlexNet的每个CONV层量化为8位(256个共享权重),每个FC层量化为5位(32个共享权重),而不会损失任何准确性

压缩率r的计算公式如下:
r = n b 1 n log ⁡ 2 k + k b 2 r = \frac{nb_1}{n\log_2k + kb_2} r=nlog2k+kb2nb

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值