Deep Compression:使用剪枝算法、权重量化和霍夫曼编码的的深度神经网络压缩

本文出自论文 Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding ,主要引入了三个阶段来对深度神经网络进行压缩,分别是:剪枝、训练量化和霍夫曼编码。


为了解决神经网络计算和内存密集型而难以在硬件资源受限的系统上部署的问题,本文引入了深度压缩,它由三个阶段组成:pruning(剪枝)、trained quantization(训练量化)和Huffman coding(霍夫曼编码),它们一起工作来减少神经网络的存储要求并且不影响精度。我们的方法首先通过仅学习重要连接来修剪网络,然后我们对权重进行量化来强制权重共享,最后我们应用霍夫曼编码。在前两个阶段之后,我们重新训练这个网络,对剩余的连接和量化重心进行微调。剪枝减少了连接数量为9x到13x,量化接着减少了表示每个连接的位数从32到5。我们的压缩方法也有利于复杂神经网络在移动应用程序上的使用,这些应用程序的大小和下载带宽都是受限制的。



一、简介

  1. 尽管让深度神经网络运行在移动设备上有着许多好的特征,例如更好的隐私、较少的网络带宽和实时处理,但是大量存储开销阻止着深度神经网络结合到移动apps中。另外一个问题是能耗,运行大的神经网络要求大量内存带宽来获得权重和大量点积计算,这些都转换为相当大的能量消耗。
  2. 我们的目标是减少在如此大的网络上推理运行所要求的存储和能量,以便于它们能够被部署于移动设备上。为了实现这个目标,我们提出了深度压缩,一个三阶段步骤来减少神经网络所要求的存储,同时保持原有的精度。首先,我们通过移除冗余连接来修剪网络,只保持最有信息价值的连接。然后,权重被量化从而使多个连接共享相同的权重,于是只有codebook(有效权重)和索引需要被存储。最后,我们使用霍夫曼编码,来充分利用有效权重的偏置分布。
    深度压缩三阶段

二、网络剪枝

  1. 在早期工作中,网络剪枝被证明是一个有效的方法去减少网络复杂性和过拟合。我们首先通过正常的神经网络来学习连通性,然后我们剪去小的权重连接(所有低于阈值的权重连接都从网络中被移除),最后我们重新训练这个网络来学习剩余稀疏连接的最终权重。
  2. 我们存储了使用压缩稀疏行或列的格式进行剪枝所产生的稀疏结构,这需要2a+n+1个数字,其中a是非零元素的数目,n是行或列的数目。为了进一步压缩,我们存储了索引差而不是绝对位置,然后对卷积层的差用8位编码,全连接层用5位编码。当我们需要一个比界限更大的索引差时,我们用零填充方案。
    零填充

三、训练量化和权重共享

  1. 网络量化和权重共享方法通过减少表示每个权重所要求的位数,进一步压缩了剪枝后的网络。通过使多个连接共享相同的权重,我们限制了需要存储的有效权重数量,然后对那些共享权重进行微调。
  2. 权重共享:权重首先被量化成多个bins,相同bin里的所有权重共享着相同值,于是对于每个权重,我们仅需要存储共享权重表中的索引值。在更新过程中,所有的梯度根据权重所在的bin范围进行组合并相加,乘以学习率后被上次迭代中的权值重心值减去,最终得到微调后的权重重心值。权重共享
  3. 为了计算压缩比,我们给定k个聚类,对应着的索引编码位数为: l o g 2 ( k ) log_2(k) 。一般来说,对于一个有着n个连接且每个连接用b位表示的网络,将连接限制为只有k个共享权重将会产生的压缩比为: r = n b n l o g 2 ( k ) + k b r=\frac{nb}{nlog_2(k)+kb}
  4. 权重共享算法:我们使用k-means聚类算法来确定一个训练网络的每层的共享权重,以便于相同聚类中所有的权重都可以共享相同的权重。另外,权重不可跨层共享。我们划分n个原始权重 W = { w 1 , w 2 , . . . , w n } W=\left \{ w_1,w_2,...,w_n \right \} 为k个聚类 C = { c 1 , c 2 , . . . , c k } C=\left \{ c_1,c_2,...,c_k \right \} ,从而最小化簇内平方和(WCSS): a r g m i n C i = 1 k w c i w c i 2 \mathop{argmin}\limits_{C} \sum_{i=1}^{k}\sum_{w\in c_i}|w-c_i|^2
  5. 共享权重初始化:重心初始化影响着聚类质量,接着影响了网络预测精度。我们测试了三种初始化方法:Forgy(random)、density-based(基于密度)和linear initialization(线性初始化)。较大的权重要比较小的权重扮演者更重要的角色,但其数量要更少。于是对于Forgy初始化和density-based初始化,非常少的重心有着较大的绝对值,导致对大的权重贫弱的表示,Linear初始化则没有这个问题。这个实验比较了在聚类和微调后不同初始化方法的精度,展示了linear初始化工作效果最好。
    重心初始化

四、霍夫曼编码

霍夫曼编码是一种用于无损数据压缩的常用最优前缀编码。它使用可变长度的密码本来对源符号进行编码,该表由每个符号的概率给出,使得更常见的符号用更少的位数来表示。

五、实验

  1. 剪枝通过在blobs中添加一个掩码来屏蔽已修剪连接的更新来实现的。量化和权重共享通过保持一个存储共享权重的codebook结构来实现的,在计算每层的梯度后按照索引进行分组,每个共享的权重使用bucket中的所有梯度来进行更新。霍夫曼编码并没有要求训练,它是在所有微调结束后离线实现的。
  2. LeNet-300-100 and LeNet-5 on MNIST:压缩比包括code和稀疏索引的开销,大部分的压缩节省来自于剪枝和量化(压缩32x),同时霍夫曼编码给出了较小的增益(压缩40x)。LeNet压缩效果
  3. AlexNet on ImageNet:AlexNet可以被压缩到它原始大小的2.88%并且不影响精度。每个卷积层上有256个共享的权重,可以用8位编码,每个全连接层上有32个共享的权重,仅用5位编码,相关的稀疏索引用4位编码。霍夫曼编码压缩额外的22%,导致了总体上35x的压缩效果。AlexNet压缩效果
  4. VGG-16 on ImageNet:VGG16网络作为一个整体被压缩到49x。卷积层上的权重用8位表示,全连接层用5位表示,且并不影响精度。两个最大的全连接层可以被修剪到少于原始大小的1.6%。这种减少对于实时图像处理很关键,对于跨图像的这些层有着较少的重用。这对于快速目标检测算法也是很关键的,一个卷积层通道被许多全连接层通道所使用。VGG-16压缩效果

六、讨论

  1. 剪枝和量化的合作:当各自工作时,当压缩低于原始大小的8%时,剪枝网络的精度开始显著下降,同时量化网络的精度也开始显著下降。但当它们结合在一起时,网络可以被压缩到原始大小的3%同时没有精度损失。在比较卷积层、全连接层和所有层的每个连接较少的位数对精度的影响时,我们发现带有剪枝的量化和单独量化实验效果一样好,另外卷积层要比全连接层要求更多的精度位数。压缩后的模型比
  2. 重心初始化:在线性初始化、密度初始化和随机初始化的三种重心初始化比较中,线性初始化在所有权重位数情况下(除了3位)都胜于其他两种初始化方案。线性初始化的初始重心平等地跨整个x轴,有助于保持较大的权重,因为较大的权重比较小的权重扮演者更重要的角色。重心初始化方法
  3. 加速和能量效率:在批处理不被允许的实时处理中,输入激活是一个简单向量,计算也是矩阵向量乘法,内存访问和计算都是相同的级别,因此减少内存占用对于无批处理情况是十分关键的。当批大小为1时,剪枝网络层与密集网络相比获得了3x到4x的平均加速,因为它有着更小的内存占用并且减少了数据转移开销。特别是对于无法装入缓存的大型矩阵。在不同硬件剪枝的能量效率比较时,我们将功耗与计算时间相乘得到能耗,然后将其归一化为CPU得到能量效率。当批大小为1时,剪枝网络层与密集网络相比减少了3x到7x的平均能耗。加速能量效率
  4. 权重、索引和codebook的比例:剪枝使得权重矩阵变得稀疏,因此额外的空间需要存储非零元素的索引,量化增加了codebook的存储。因为权重和稀疏索引平均编码为5位,它们的存储大约各占一半,而codebook的开销很小可以忽略不计。权重、索引和codebook存储比例

七、未来工作

当剪枝网络已经可以在不同的硬件上进行基准测试时,而共享权重的量化网络还不能,因此在缓存中适应模型的深度压缩的整体优势还没有完全释放出来。一个软件解决方案是编写支持此功能的定制GPU内核程序,一个硬件解决方案是构建专门用于遍历稀疏和量化网络结构的自定义ASIC架构,来支持自定义的量化位宽。

八、结论

我们提出了深度压缩方案来对神经网络进行压缩而不影响精度。我们的方法是通过剪去不重要的连接来进行操作,使用权重共享来量化网络,然后应用霍夫曼编码。我们的实验展示了在AlexNet上可以减少权重存储为35x而不损失精度,在VGG-16和LeNet网络上可以压缩为49x和39x而无精度损失。深度压缩后这些网络的大小也有利于部署在能耗更小的设备上,使在移动设备上运行更节能。我们的压缩方法也有利于复杂神经网络在移动应用程序上的使用,这些应用程序的大小和下载带宽都具有一定限制。

发布了31 篇原创文章 · 获赞 40 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/librahfacebook/article/details/97395202