(四十八)论文阅读 | 轻量级网络之SqueezeNet

本文详细介绍了SqueezeNet轻量级深度学习模型的设计原理,包括其架构设计策略、Fire模块以及CNN微架构设计空间的探索。SqueezeNet在保持与AlexNet相当精度的同时,参数量减少了50倍,适合资源有限的设备部署。通过元参数控制,论文提出了调整模型复杂度的方法,并探讨了不同宏观架构配置的影响。
摘要由CSDN通过智能技术生成

简介

在这里插入图片描述

图1:论文原文

该论文也是旨在设计轻量级模型,文中首先指出设计轻量级模型的实际需求,然后提出诸多设计准则,并提出 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet论文原文 源码


0. Abstract

当具有相当精度时,轻量级 C N N {\rm CNN} CNN拥有以下优势:分布式训练时更少的跨服务器间通信,算法部署时更少的带宽,部署在内存有限的硬件上。论文设计出一个轻量级模型 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet,相比于 A l e x N e t {\rm AlexNet} AlexNet,后者参数是它的 50 {\rm 50} 50倍,且大小小于 0.5 M B {\rm 0.5MB} 0.5MB

论文贡献:(一)指出设计轻量级模型的实际必要性;(二)提出 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet;(三)探索轻量级模型的设计准则。


1. Introduction and Motivation

轻量级 C N N {\rm CNN} CNN具有以下优势:

More efficient distributed training. 服务器间的通信是限制 C N N {\rm CNN} CNN分布式训练扩展性的主要因素。对于数据的分布式并行训练,通信开销与模型参数成正比,及小模型的训练更快。

Less overhead when exporting new mdoels to clients. 更小的模型使得频繁更新部署在端侧的模型成为可能。

Feasible FPGA and embedded deployment. F P G A {\rm FPGA} FPGA通常仅有少于 10 M B {\rm 10MB} 10MB的存储空间,而小模型可以直接部署在上面。


2. Related Work

2.1 Model Compression

设计轻量级模型的一个思路是基于现有的模型,然后采取某种操作压缩模型,如使用 S V D {\rm SVD} SVD,模型剪枝,模型量化,霍夫曼编码等。

2.2 CNN Microarchitecture

使用模块化的设计代替一系列复杂的卷积操作,如 I n c e p t i o n {\rm Inception} Inception

2.3 CNN Macroacchitecture

跨层和多模块连接是当前设计神经网络的主流方法。

2.4 Neural Network Design Space Exploration

以自动化的方式设计网络结构,如贝叶斯优化,模拟退火,随机搜索,遗传算法等。


3. SqueezeNet: Preserving Accuracy with Few Parameters

3.1 Architecture Design Strategies

Replace 3x3 filters with 1x1 filters.

Decrese the number of input channels to 3x3 filters.

Downsample late in the network so that convolution layers have large activation maps.

3.2 The Fire Module

F i r e {\rm Fire} Fire模块定义为一个压缩卷积和一个扩展卷积的组合。
在这里插入图片描述

图2:Fire Module

这里定义三个参数, s 1 x 1 s_{1x1} s1x1表示压缩卷积层中卷积核的数量, e 1 x 1 e_{1x1} e1x1表示扩展卷积层中 1 × 1 {\rm 1\times1} 1×1卷积核的数量, e 3 x 3 e_{3x3} e3x3表示扩展卷积层中 3 × 3 {\rm 3\times3} 3×3卷积核的数量。

3.3 The SqueezeNet Architecture

在这里插入图片描述

图3:The Architecture of SqueezeNet

关于 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet的几点:

  • 为了使 1 × 1 {\rm 1\times1} 1×1卷积和 3 × 3 {\rm 3\times3} 3×3卷积的输出结果大小相同,对后者进行加零填充;
  • 使用 R e L U {\rm ReLU} ReLU激活函数;
  • f i r e 9 {\rm fire9} fire9后使用 0.5 0.5 0.5 D r o p o u t {\rm Dropout} Dropout
  • 没有全连接层;
  • 初始学习率为 0.04 0.04 0.04,然后以线性方式减小;
  • 由于 C a f f e {\rm Caffe} Caffe不包含多个分辨率的卷积核,使用通道拼接的方式得到最终结果。

4. Evaluation of SqueezeNet

在这里插入图片描述

图4:Comparing SqueezeNet to model compression approach


5. CNN Microarchitecture Design Space Exploration

论文提出针对小型网络的设计策略。

5.1 CNN Microarchitecture Metaparameters

如上,在 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet中,每个 F i r e {\rm Fire} Fire模块定义了三个参数,即 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet中的 8 8 8 F i r e {\rm Fire} Fire模块共有 24 24 24个参数。为了便于类似 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet结构的设计,论文使用元参数来控制总参数的数量。定义 b a s e e base_e basee表示第一个 F i r e {\rm Fire} Fire模块中扩展卷积层中卷积核的数量,然后每 f r e q freq freq F i r e {\rm Fire} Fire模块增加 i n c r e incr_e incre个卷积核。以此,对于第个 i i i F i r e {\rm Fire} Fire模块而言,扩展层中卷积核的数量为: e i = b a s e e + ( i n c r e e ∗ ⌊ i f r e q ⌋ ) (1) e_i=base_e+\left(incre_e*\left\lfloor\frac{i}{freq}\right\rfloor\right)\tag{1} ei=basee+(increefreqi)(1)

在扩展层中同时存在 1 × 1 {\rm 1\times1} 1×1卷积和 3 × 3 {\rm 3\times3} 3×3卷积,即 e i = e i , 1 x 1 + e i , 3 x 3 e_i=e_{i,1x1}+e_{i,3x3} ei=ei,1x1+ei,3x3卷积,定义变量 p c t 3 x 3 pct_{3x3} pct3x3表示 3 × 3 {\rm 3\times3} 3×3卷积核的比例。即满足: e i , 3 x 3 = e i ∗ p c t 3 x 3 ,   e i , 1 x 1 = e i ∗ ( 1 − p c t 3 x 3 ) (2) e_{i,3x3}=e_i*pct_{3x3},\ e_{i,1x1}=e_i*(1-pct_{3x3})\tag{2} ei,3x3=eipct3x3, ei,1x1=ei(1pct3x3)(2)

最后,压缩层中卷积核的数量使用元参数 S R SR SR控制,满足: s i , 1 x 1 = S R ∗ ( e i , 1 x 1 + e i , 3 x 3 ) (3) s_{i,1x1}=SR*(e_{i,1x1}+e_{i,3x3})\tag{3} si,1x1=SR(ei,1x1+ei,3x3)(3)

在这里插入图片描述

图5:SqueezeNet architectural dimensions

对应上图,各参数为 b a s e e = 128 base_e=128 basee=128 i n c r e = 128 incr_e=128 incre=128 p c t 3 x 3 = 0.5 pct_{3x3}=0.5 pct3x3=0.5 f e r q = 2 ferq=2 ferq=2 S R = 0.12 SR=0.12 SR=0.12.。

5.2 Squeeze Ratio

主要是前面定义的参数 S R SR SR的使用。

5.3 Trading off 1x1 and 3x3 Filters

主要是 1 × 1 {\rm 1\times1} 1×1卷积和 3 × 3 {\rm 3\times3} 3×3卷积的使用。


6. CNN Macroarchitecture Design Space Exploration

在本部分,作者探讨其它的优化方法:

  • 原始 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet
  • 借助简单跳跃连接;
  • 借助复杂跳跃连接。

在第三、五、七和九个 F i r e {\rm Fire} Fire模块的输入输出使用简单跳跃连接。由于在跳跃连接中,输入与输出通道数必须相同,所以剩余不能直接使用跳跃连接的 F i r e {\rm Fire} Fire模块首先使用 1 × 1 1\times1 1×1卷积统一通道数。
在这里插入图片描述

图6:Different Macroarchitecture Configurations


7. Conclusions

论文首先介绍了设计研究轻量级模型的必要性,然后提出一系列轻量级模型的设计准则,并提出一个精度与 A l e x N e t {\rm AlexNet} AlexNet相当的模型 S q u e e z e N e t {\rm SqueezeNet} SqueezeNet,且前者的参数量是后者的 50 {\rm 50} 50倍。


参考

  1. Iandola F N, Han S, Moskewicz M W, et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and< 0.5 MB model size[J]. arXiv preprint arXiv:1602.07360, 2016.


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值