深度学习_经典网络_SqueezeNet详解

时间:2024-03-16 19:34:58

SqueezeNet论文地址

论文中作者在保证精度不损失的同时,将原始AlexNet压缩至原来的510倍。(Squeezenet比AlexNet参数少50倍,再使用了deep compression使得模型压缩至原来的510倍)

SqueezeNet的核心指导思想是——在保证精度的同时使用最少的参数。

这也是所有模型压缩方法的一个终极目标。

设计思想

  1. 1×11\times 1卷积核代替3×33\times 3卷积核。理论上一个1×11\times 1卷积核的参数是一个3×33\times 3卷积核的19\frac{1}{9},可以讲模型尺寸压缩9倍。
  2. 减少3×33\times 3卷积的输入通道数。减少输入通道数不仅可以减少卷积的运算量,而且输入通道数与输出通道数相同时还可以减少MAC。
  3. 延迟下采样。分辨率越大的输入能够提供更多特征的信息,有利于网络的训练判断,延迟下采样可以提高网络精度。

网络架构

SqueezeNet提出了一种多分支结构——fire model。这个结构是由squeeze层和expand层构成的。squeeze层是由数s1个1×11\times 1卷积组成,主要是通过1×11\times 1卷积降低expand层的输入维度。expand层利用e1个1×11\times 1和e3个3×33\times 3卷积构成多分支结构提取输入特征,以此提高网络的精度(其中文中给出e1=e3=4×s1e1 = e3 = 4\times s1)。

深度学习_经典网络_SqueezeNet详解
其中,expand层中,把1×11\times 13×33\times 3得到的feature map进行通道上的concat。

详细过程如下图所示:

深度学习_经典网络_SqueezeNet详解
可以看到feature map的输入和输出的分辨率是不变的,改变的仅仅是维数(通道数)。

这里的可调参数也是s1,e1和e3。

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

深度学习_经典网络_SqueezeNet详解
为什么保证1×11\times 1卷积核和3×33\times 3卷积核具有相同大小的输出,3×33\times 3卷积核采用1像素的zero-padding和stride。

在fire9后采用50%的dropout。

由于全连接层的参数量巨大,因此借鉴NIN的思想,去除了全连接层而改用global average pooling层。

实验结果

深度学习_经典网络_SqueezeNet详解
注意:上图中最后一行使用了deep compression技术,对SqueezeNet进行了压缩,最终才会得到0.47M的模型,并且模型性能还不错。

Refference

轻量化网络:SqueezeNet

SqueezeNet详细解读

CNN 模型压缩与加速算法综述