深度学习之基础网络-SqueezeNet

For a given accuracy level, it is typically possible to identify multiple CNN architecture that achieve that accuracy level.

思想

现在研究深度卷机模型,主要有两个出发点:

  • 给定数据集,提高精度
  • 给定精度,降低模型参数大小

参数少的好处:

  • 在分布式训练更有效:more efficient distributed training
  • 模型小的话,在终端上远程更新更方便:less overhead when exporting new models to clients
  • 更有利于在FPGA或者嵌入式设备上运行:feasible FPGA and embedded deployment

With this in mind, we focus directly on the problem of identifying a CNN architecture with fewer parameters but equivalent accuracy compared to a well-known model.

从而,作者提出了一种全新的网络结构-SqeezeNet,与AlexNet进行比较。

  • 对比了SqueeseNet与AlexNet的参数量
  • 深入理解了卷积结构的设计对模型大小和精度的影响

网络结构

作者构建网络的时候,主要从三个方面进行考虑:

  • 利用1x1的卷积核代替3x3卷积:可以有效降低参数
  • 降低3x3卷积操作的输入
  • 降采样操作延后,可以得到比较大的特征图

Microarchitecture

作者提出了一种小的卷积模块-Fire module


深度学习之基础网络-SqueezeNet

  • 1x1卷积后面接了两种卷积:1x1,3x3
  • squeeze中的1x1用于降维作用,输出通道数为expand输出的18

Macroarchitecture

作者考虑3中不同的网络结构:


深度学习之基础网络-SqueezeNet

  • 类似VGG,直接堆积fire-model模块
  • 考虑残差结构,在上下模块中的特征图大小相同的模块间建立了bypass,考虑残差的直接连parameter-free
  • 在降采样层之间,考虑1x1卷机的线性映射,即参数模型中的第二种连接方式(Residual-B)

其模型参数如下:


深度学习之基础网络-SqueezeNet

评估

作者评估了在精度相同的情况,SqueezeNet不压缩的时,比AlexNet少50倍,压缩的话,可以达到510倍

深度学习之基础网络-SqueezeNet

注:压缩方法参考论文Deep Compression

作者又做了两个实验,来研究网络结构的设计对模型的大小和精度之间的关系

实验1: CNN Microarchitecture metaparameters

  • 分析研究fire module中的seqeeze中1x1的卷积核数了与expand的卷积核数量之间的关系变化,对最终模型的大小和精度的影响,如下图a
  • 分析研究fire module中的expand中的1x1卷机和的数量与3x3卷机核的数量之间的比例变化,对最终模型的大小和精度的影响,如下图b


深度学习之基础网络-SqueezeNet

说明:
1. 这个实验存在交叉点:SR=0.5, pct3x3=0.5
2. SR=0.75,精度达到最高
3. 3x3的卷积核比例超过一定比例后,模型的效果并不会提高


实验2:CNN Microarchitecture design space exploration

  • 在普通模型的基础上,增加了simple bypass,如图figure-2,中间图
  • 在普通模型的基础上,增加了complex bypass,如果figure-2,右图


深度学习之基础网络-SqueezeNet

作者发现,最简单的残差连接方式,不仅模型的参数没有增加(parameter-free),而且网络的效果提升最好.

参考文献

https://arxiv.org/pdf/1602.07360v4.pdf