论文简介
- 地址:SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE。
- 论文是小网络,相比AlexNet,参数减少了50倍,同时准确度仍然基本能够持平。
introduction
小网络的优点
- 分布式训练的效率更高。
- 在客户端与云端进行通信时,减少传输负载。
- 在FPGA和嵌入式上的封装成为可能。
method
SqueezeNet的设计策略
- 用$1X1$的filter代替$3X3$的filter,这可以大大减少网络参数
- 减少feature map的channel数量
- 在网络后期进行降采样,这可以使得卷积层有较大的
activation map
,从而提升分类的精度。
Fire Module
- 论文中提出了
Fire Module
这个结构,对于输入,经过squeeze子模块(1X1的filter和RELU的激活函数),之后经过expand子模块,这个expand子模块是由1X1和3X3的卷积filter构成。 - 在这个模块中,有3个超参数需要调节,分别是squeeze中1X1filter的个数,expand中1X1和3X3模块的个数。
SqueezeNet的主要结构和细节
- 经过一个卷积层和pooling层,然后经过8个
fire Module
,在经过1个卷积层,最后经过softmax,输出1000个类别的置信度。具体的网络可以见论文。注意:在fire4和fire8后有最大池化的操作,在conv10后面有全局平均池化的操作,为了减少feature layer的大小。 - 为了保证squeeze子模块中1X1和3X3卷积输出尺寸相同,设置3X3的卷积层的
padding=1
。 - 在fire9后,加入了dropout的操作,减小过拟合。
- 在SqueezeNet中没有FC层(借鉴了NiN)。
- 在训练过程中,学习率是变化的。
CNN结构设计
- 之前提到,每个
Fire Module
中有3个超参数,因此模型关于Fire Module
共有24个超参数。论文中设置$fire_i$层的expand filter数量为
$$e_i=base_e$ + (incr_e \lfloor \frac{i}{freq} \rfloor )$$
定义
$$e_i = e_{i,1x1} + e_{i,3x3}$$
同时定义
$$e_{i,3x3} = e_i pct_{3x3} $$
设squeeze中1X1filter的数量为$s_{i,1x1}$,定义$s_{i,1x1} = SR * e_i$。论文中设置$base_e=128$,$incr_e=128$,$pct_{3x3}=0.5$,$freq=2$,$SR=0.125$。
- 论文中也比较了不同超参数下模型的性能,在此就不列出了。