深度学习模型压缩技巧

一、首先,为什么网络模型需要模型压缩?

通常:给定一个精度级别,存在多个达到该精度级别的CNN架构。在同等精度下,具有较少参数的CNN有三大优势:

  1. 更高效的分布式训练:分布式训练的数据并行方法在每个服务器上保留整个模型的副本,处理训练数据集的不同子集。因此通信开销与模型中的参数数成正比,换而言之,越小的模型,训练更快。

2.将新模型导出到客户端时,开销较小。Over-the-air update(OTA)是指移动终端通过无线网络下载远程服务器上的升级包,对系统或应用进行升级的技术。越小的模型,需要的通信更少,因此可以实现频繁更新。

3.更容易在嵌入式设备上部署。芯片存储空间有限,较小的模型让芯片(FPGA),嵌入式设备存储,部署神经网络更加可行。

image.png
image.png

二、两种类型

1. 新的卷机计算方法

image.png

(1)是直接提出新的卷机计算方式,从而减少参数,达到压缩模型的效果,例如SqueezedNet,mobileNet

SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size

本方法旨在在保持相同精度的情况下,构建更小的神经网络模型,提出了SqueezeNet网络

  • 概述了利用很少的参数进行CNN架构设计的策略
  • 引入了Fire Module作为网络基本构成单元
  • 以Fire Module为基础,构建了轻量级网络

结构型策略设计:

  • 策略1:用1x1卷积替换3x3卷积
    在卷积核数目一定的情况下,用大多数的1x1卷积替换3x3卷积,因为3x3卷积的参数量是1x1卷积的9倍之多
image.png
  • 策略2:减少3x3卷积的输入特征通道数
    假定某卷积层全由3x3卷积组成,则该层的参数量计算为:(input channel)x(output channel)x(3x3)
    因此,要在CNN中减少参数,不仅要减少3x3卷积核的数量,而且还要减少输入通道的数量

  • 策略3:降采样后置
    在卷积网络中,每个卷积层都会生成输出特征图,特征图主要受以下因素控制:输入数据size,降采样层的位置。
    尺寸更大的特征图包含更丰富的空间信息,能最大化分类精度,因此将降采样层放在靠后的位置,例如VGG网络结构。

VGG

(2)修改网络结构,类似于mobileNet

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications


image.png

image.png

image.png

image.png
  • MobileNets主要致力于优化延迟,但也可以产生小型网络
  • MobileNets 主要基于深度可分离卷积构成,通过设置两个超参数,实现准确率和延时性之间的平衡


    image.png

(3)修改卷机计算方式,depth-wise 卷积

深度可分离卷积
输入特征 F:DF x DF x M 输出特征 G:DF x DF x N

image.png

2. 已训练好的模型上做裁剪

这种就是在训练好的模型上做一些修改,然后在fine-tuning到原来的准确率,主要有一些方法

  • 剪枝:神经网络是由一层一层的节点通过边连接,每个边上会有权重,所谓剪枝,就是当我们发现某些边上的权重很小,可以认为这样的边不重要,进而可以去掉这些边。在训练的过程中,在训练完大模型之后,看看哪些边的权值比较小,把这些边去掉,然后继续训练模型;

  • 权值共享:就是让一些边共用一个权值,达到缩减参数个数的目的。假设相邻两层之间是全连接,每层有1000个节点,那么这两层之间就有1000*1000=100万个权重参数。可以将这一百万个权值做聚类,利用每一类的均值代替这一类中的每个权值大小,这样同属于一类的很多边共享相同的权值,假设把一百万个权值聚成一千类,则可以把参数个数从一百万降到一千个。

  • 量化:一般而言,神经网络模型的参数都是用的32bit长度的浮点型数表示,实际上不需要保留那么高的精度,可以通过量化,比如用0~255表示原来32个bit所表示的精度,通过牺牲精度来降低每一个权值所需要占用的空间。

  • 神经网络二值化:比量化更为极致的做法就是神经网络二值化,也即将所有的权值不用浮点数表示了,用二进制的数表示,要么是+1,要么是-1,用二进制的方式表示,原来一个32bit权值现在只需要一个bit就可以表示,可以大大减小模型尺寸。

(1) XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks

网络权重二值化、输入二值化,从头开始训练一个二值化网络,不是在已有的网络上二值化

(2) Learning both Weights and Connections for Efficient Neural Networks

学习重要的连接,根据连接的权重进行裁剪,fine-tuning让网络保持稀疏的连接

(3) Exploiting linear structure within convolutional networks for efficient evaluation.

对已经训练好的网络应用奇异值分解

(4) Eie: Efficient inference engine on compressed deep neural network.

加速器

(5) Deep compression: Compressing DNNs with pruning, trained quantization and huffman coding.

裁剪(阈值)、量化(8bit,存储方式)、哈夫曼编码
http://blog.csdn.net/may0324/article/details/52935869

(7) Deep Model Compression: Distilling Knowledge from Noisy Teachers

Teacher-student Framework,一个网络指导另外一个网络的训练

(8) PerforatedCNNs: Acceleration through Elimination of Redundant Convolutions

在一些稀疏位置跳过CNN求值,加速效果不明显,且不能压缩模型

(9) Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or −1

训练二值化网络
https://tensortalk.com/?cat=model-compression-parameter-pruning

(10) PRUNING FILTERS FOR EFFICIENT CONVNETS

计算filter的L1范数,直接过滤掉较小L1范数对应的feature map, 然后再次训练,有两种,一是每裁剪一层训练一下,一是直接裁剪整个网络,然后fine-tuning. 相比权值连接的裁剪,这种比较暴力,好处就是不会引入稀疏矩阵的计算,从而也不需要稀疏矩阵库,坏处就是可能无法恢复到最开始的准确率。

本文还未写完,更加详细还在陆续完善,待续。。。。。。
(本文参考与总结他人,侵权立删)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容