卷积神经网络一般规模较大,参数较多,比如AlexNet总共8层,65万个神经元和6000万个参数。其他网络,像VGGNet,ResNet和DenseNet等,还可能更复杂,简化模型结构,压缩模型的参数,就成为改进卷积神经网络的必要问题。
为了利用较少的网络参数获得相近的性能,landola等人提出了一种压缩结构,所产生的结果称为挤压网络SqueezeNet。这种结构对卷积神经网络进行结构压缩,遵循下面3个基本的设计测略:
- 使用1X1卷积核代替3X3卷积核
- 减少3X3卷积核的输入通道数量
- 推后下采样,增大卷积层的激活图
在这三个策略中,前两个策略用于减少网络参数的总体预算,第三个策略用于在有限参数预算的条件下计算更多的卷积特征,综合起到保持甚至提供准确率的效果,基于这些策略可以得到一种SqueezeNet网络模型。
上图表示输入227X227X3的彩色图像。另外,还包含2个独立的卷积层、4个池化层、8个火焰模块,1个softmax输出层。
SqueezeNet的最大特点是火焰模块,每个火焰模块由两个卷积层组成,一个为压缩层,另一个为扩展层。压缩层只有1X1大小的卷积核,经过Relu激活函数输入到扩展层。扩展层可以由1X1和3X3大小的卷积核,在经过Relu输入到下一层。在火焰模块中,一般要求压缩层的通道数量小于扩展层的数量,这样有助于限制卷积核的输入通道数量。