ICLR'16 best paper 深度压缩,加速网络前传

1、Deep Compression

【1】神经网络在图像很多领域都达到了state-of-art的程度,例如,目标识别(VGG-net,Goolge-net),图像检索(deep Hash),图像分割(Fully convolutional networks for semantic segmentation),物体检测(faster-rcnn, yolo, ssd)等。
【2】但是也由于其巨大的参数数量(几百兆),导致(train/prediction[Net Froward]速度, 能耗存储是个很大问题。


1.1 Intro

song Han 提出深度压缩技术可以将最先进的卷积神经网络模型大小压缩10到49倍,同时“密集-稀疏-密集”(DSD)训练方法提高了很多神经网络的预测精度。

1.2 why 10X~40X?

我们知道对于有全连接层(Fc layer),的网络,其中很多参数是冗余的,也就是这些链接可有可无。

【1】因此对于具有FC layer的network,例如:Alexnet和VGGnet可以压缩倍数就高(~40X)。主要可以通过网络剪枝技术。
【2】对于全卷积的network,例如:GoogleNet和SqueezeNet,主要是通过,量化,霍夫曼(无损)变长编码。也能压缩10X
对于上述两种网络的压缩,均可以不损失精度。


2 Deep compression pipline

1- 剪枝神经网络,只学习重要的连接;(Less Number of Weights2- 量化权值去使权值共享;(Reduce Storage for Each Remaining Weight)
3- 应用霍夫编码继续压缩。(Entropy of the Total Remaining Weights

2.1 pruning

Lecun 在早些年发表论文(LeCun et al. Optimal Brain Damage NIPS’90),阐述网络剪枝是一种减少网络复杂度和过度拟合的有效方法。
这里写图片描述

【1】common step to train a network
【2】Pruning network:删除网络中权重值低于某一阈值的所有连接。
【3】retrain network,得到剩余稀疏连接的权重值。

pruning+retrain 的结果怎么样

这里写图片描述

2.2 weight sharing

Reduce Storage for Each Remaining Weight
已经证明:神经网络对低精度权重值具有非常高的容忍度:如图所示,蓝色权重值最初为2.09、2.12、1.92和1.87,然后让它们共享相同的权重值2,网络的预测精确度仍然不受影响。
网络量化和权值共享会进一步压缩剪枝的网络

这里写图片描述

【1】这些数字怎么来的?
另外,看绿色的,-0.98,-1.08,-0.91,-1.03 ,他们均值大概在-1左右。看黄色的,均值大概在0左右。粉色的同理。
【2】为什么分成4类?怎么分的?
k-means,这个也得尝试,不是第一次就成功的啊。

  1. 如何更新权值呢?


    这里写图片描述

在更新过程中,所有的梯度被分组,相同的颜色求和,再与学习率相乘,最后迭代的时候用共享的质心减去该值。

  1. 量化编码与权值共享,到底对压缩网络参数有多大效果?

    就拿上图为例,量化编码与权值共享

    [压缩前],矩阵为:4*4,每个元素float:32bit 共需:4*4*32 空间
    [压缩后],矩阵为:4*4 ,每个元素需要2bit(编码0-3,00,01,10,11)。加上一个map(4*1*32),共需: 160bit
    压缩比: 4*4*32 /160 =3.2

论文中有公式,但是很难理解,可以直接对着上图理解,来算压缩比

3 Huffman Coding

霍夫曼编码是一个最优的前缀码,通常被用于无损失数据压缩。它用可变长码字去编码源符号。通过每个符号的发生概率驱动,更常见的符号用较少的bits表达。

至于霍夫曼编码的细节原理,以及c++code,我会另写一个博客,本文不做细节讨论。

总结

这个文章非常好,解决了现在的深度学习在资源受限条件下应用不起来的尴尬。
但是,为什么模型压缩了将近40倍,前传的时间却只是提升了几倍呢?正常理解前传的时间也应该有客观的提升。
我在YouTube上看了作者的oral,他指出,这是由于:对于没有压缩的网路而言,Nvidia,或者Intel都有相应的GPU,CPU加速库。但是对于这篇文章的方法,还没有合适的加速库,或者硬件级加速。

4 实验部分

正在进行,敬请期待

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值