深度学习之基础网络-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
- 1x1卷积后面接了两种卷积:1x1,3x3
- squeeze中的1x1用于降维作用,输出通道数为expand输出的
18
Macroarchitecture
作者考虑3中不同的网络结构:
- 类似VGG,直接堆积fire-model模块
- 考虑残差结构,在上下模块中的特征图大小相同的模块间建立了bypass,考虑残差的直接连parameter-free
- 在降采样层之间,考虑1x1卷机的线性映射,即参数模型中的第二种连接方式(Residual-B)
其模型参数如下:
评估
作者评估了在精度相同的情况,SqueezeNet不压缩的时,比AlexNet少50倍,压缩的话,可以达到510倍
注:压缩方法参考论文Deep Compression
作者又做了两个实验,来研究网络结构的设计对模型的大小和精度之间的关系
实验1: CNN Microarchitecture metaparameters
- 分析研究fire module中的seqeeze中1x1的卷积核数了与expand的卷积核数量之间的关系变化,对最终模型的大小和精度的影响,如下图a
- 分析研究fire module中的expand中的1x1卷机和的数量与3x3卷机核的数量之间的比例变化,对最终模型的大小和精度的影响,如下图b
说明:
1. 这个实验存在交叉点:
2.
3. 3x3的卷积核比例超过一定比例后,模型的效果并不会提高
实验2:CNN Microarchitecture design space exploration
- 在普通模型的基础上,增加了simple bypass,如图figure-2,中间图
- 在普通模型的基础上,增加了complex bypass,如果figure-2,右图
作者发现,最简单的残差连接方式,不仅模型的参数没有增加(parameter-free),而且网络的效果提升最好.