当前位置:   article > 正文

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

deep compression: compressing deep neural networks with pruning, trained qua

本文出自论文 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) log2(k)。一般来说,对于一个有着n个连接且每个连接用b位表示的网络,将连接限制为只有k个共享权重将会产生的压缩比为: r = n b n l o g 2 ( k ) +
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/190795
推荐阅读
相关标签
  

闽ICP备14008679号