深度神经网络压缩

论文地址:Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding

源码:github 源码

介绍:

本篇论文主要讲述关于深度学习网络参数的压缩工作。论文主要从下三点出发:

  1. pruning:对网络进行剪枝,只保留重要的连接
  2. train quantization:通过参数共享量化权重矩阵
  3. huffman coding:对量化值进行huffman编码,进一步压缩。

整个网络在不影响性能的情况下,能够将参数量降低到原来的1/49~1/35。 

这里写图片描述 

网络剪枝

在深度学习训练的过程中,会学到连接的参数。剪枝的方法是:连接的权值小于一定阈值的直接移除,最终就得到了稀疏的网络连接。剪枝这一步骤能够将VGG-16(AlexNet)参数降低到原来的1/13(1/9)。 
稀疏矩阵用compressed sparse row(CSR)和compressed sparse column(CSC)的格式进行压缩,总共需要2a+n+1个存储单元,a是非零元素个数,n是行数或者列数。 
网络剪枝的过程如figure 2所示: 


这里写图片描述

一个4*4的矩阵可以用一维16数组表示,剪枝时候,只保留 权值大于指定阈值的数,用相对距离来表示,例如idx=4和idx=1之间的位置差为3,如果位置差大于设定的span,那么就在span位置插入0。例如15和4之间距离为11大于span(8),所以在4+8的位置插入0,idx=15相对idx=12为3。这里span阈值在卷积层设置为8,全连接层为5。

共享量化权重矩阵


这里写图片描述

上图假定某层有4个输入单元4个输出单元,权重矩阵为4*4,梯度同样为4*4。

假设权重被量化为4类,用四种颜色标识。用每类量化的值代表每类的权值,得到量化后的权值矩阵。用4个权值和16个索引就可以计算得到4*4权重矩阵连接的权值。梯度矩阵同样量化为4类,对每类的梯度进行求和得到每类的偏置,和量化中心一起更新得到新的权值。 
压缩率计算方法如下公式所示: 

r=nbnlog2k+kb(1)


公式(1)n代表连接数,b代表每一个连接需要b bits表示,k表示量化k个类,k类只需要用 log2(k) 个bit表示,n个连接需要 nlog2(k) 索引,还需要用 kb 表示量化中心的数值。 

霍夫曼编码

聚类中心,需要用 log2(k) 的bit作为索引,这里可以使用变长的huffman编码进一步压缩。figure 5显示了压缩前和压缩后的长度分布。 


这里写图片描述
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度神经网络(DNN)已成为许多机器学习任务中最有效的模型之一,但它们的大规模和高计算需求使得它们在嵌入式设备和移动设备上的应用受到限制。为了解决这个问题,人们提出了各种DNN压缩算法,以减少网络的大小和计算需求,同时保持其性能。 本文将综述几种常见的DNN压缩算法: 1. 稀疏性:这种压缩方法通过将网络中的某些权重设置为零来减少参数的数量。稀疏性可以通过正则化技术(如L1正则化)来实现,也可以通过剪枝技术来实现,后者是在训练过程中将小于某个阈值的权重设置为零。稀疏性可以显著减少网络的大小和计算需求,但可能会影响性能。 2. 量化:这种压缩方法通过将网络中的浮点数权重和激活值转换为较少的比特数来减少存储和计算需求。量化可以在训练过程中进行,也可以在推理时进行。量化可以显著减少网络的大小和计算需求,但可能会影响性能。 3. 网络剪枝:这种压缩方法通过删除网络中的某些节点和连接来减少网络的大小和计算需求。这可以通过基于梯度的方法来实现,例如,删除梯度小于某个阈值的节点和连接。网络剪枝可以显著减少网络的大小和计算需求,但可能会影响性能。 4. 知识蒸馏:这种压缩方法通过使用一个大型的、准确的网络来指导一个小型的、低计算需求的网络。这可以通过在训练过程中将大型网络的输出作为小型网络的目标来实现。知识蒸馏可以在不影响性能的情况下减少网络的大小和计算需求。 总的来说,DNN压缩算法可以显著减少网络的大小和计算需求,从而使其适用于嵌入式设备和移动设备等资源受限的环境。不同的压缩方法具有不同的优缺点,需要根据具体应用场景来选择合适的算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值