卷积神经网络结构-SqueezeNet

SqueezeNet详解

SqueezeNet是2016年发表在ICLR上的文章,其主要创新在于仅使用AlexNet网络1/50的参数,却能够实现同等水平的准确率。此篇文章仅对论文SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE中的网络结构进行分析,其中的参数实验不在此赘述,如若感兴趣可以看看原文。

网络优势

SqueezeNet作为轻量级CNN模型之一,其主要有以下优势:

  1. 更有效的分布式训练
  2. 导入模型到客户端只需更小的通信代价
  3. 适用于FPGA和嵌入式设备

网络设计策略

原文中提到三点主要策略:

  1. 使用1x1的卷积核代替3x3的卷积核
  2. 减少3x3卷积核的输入通道数目
  3. 网络中的下采样设置,让更多层有较大的激活映射(activation maps)

此外,还有其他技术:

  1. 1x1和3x3的卷积核都要保持输出与输出尺寸的相等,对于3x3的卷积核,设置padding=1
  2. Relu激活函数
  3. Dropout技术
  4. 用GAP代替全连接层训练时
  5. 线性减少学习率

网络结构

基础模块

原文中提出一种名为fire的模块,其结构如下图所示:

Fire

主要分成两个部分,一部分是squeeze子模块,由1x1的卷积核组成;一部分是expand子模块,由1x1和3x3的卷积核组成。

整体结构

SqueezeNet网络的整体结构如下图所示

SqueezeNet

图左是原始SqueezeNet网络,图中是加入简单跳跃连接的网络,图右是加入复杂跳跃连接的网络

原文中分别对此三者的模型大小与准确度做了对比实验,结果证明加入简单跳跃连接的网络更好。

网络参数

原文中直接展示了网络参数,如下图所示:

网络参数

从中可以看出,相对于AlexNet而言,大大降低了网络参数。如果使用模型压缩方法(也是此论文作者提出的),参数则要再减少2/3的参数。

总结

从减少参数的角度来看,AlexNet网络的主要参数集中在全连接层,几乎占据了总参数的94%左右,因此在SqueezeNet中去除了全连接层,自然减少了参数。但是文中针对网络结构设计,做了大量的实验,这一点还是比较有意义的。

本文标题:卷积神经网络结构-SqueezeNet

文章作者:JoinApper

发布时间:2019年11月20日 - 20:11

最后更新:2019年11月20日 - 20:11

原始链接:https://zhuofujiang.github.io/2019/11/20/卷积神经网络结构-SqueezeNet/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。