SqueezeNet ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE
论文下载地址:http://arxiv.org/abs/1602.07360
论文代码:https://github.com/DeepScale/SqueezeNet
SqueezeNet是一个高密小网络。高密小网络的好处,使用更少的参数:
1.更有效分布式训练。
2.客户端更新模型开销更小,从云端可以下载更小的更新模型。
3.灵活的FPGA与嵌入式部署。
SqueezeNet改进的方向,三个主要的策略:
1.使用1*1的滤波器来代替3*3的滤波器,这样计算量就减少到了1/9。
2.减少3*3滤波器的输入通道数。
3.延迟下采样(在执行大多数的卷积层之后再下采样),卷积层可以获得大的激活图。论文中将步长为1的卷积层放到前面,步长大于1的放到网络的后面。激活图越大分类精度越高。
策略1和2主要是为了减少网络的参数。策略3为了提高精度,使得网络不会因为参数的减少而降低分类精度。
SqueezeNet的网络结构:
SqueezeNet的网络结构主要是由两部分组成:
第一部分是 FIRE MODULE
图一:FIRE MODULE
上图是一个FIRE MODULE,它主要是由两部分组成,第一部分是3个1*1的卷积核,第二部分是由4个1*1和3*3的卷积核混合组成。这两部分组成了一个FIRE MODULE。
FIRE MODULE中这些1*1和3*3的卷积核是可以调整的卷积核的数量来调整通道数量。
FIRE MODULE中suqeeze中卷积核的数量要少于expand中卷积核的数量。
SqueezeNet就是由这9个FIRE MODULE组成的。
图二 左边是SqueezeNet,右边这两个是它的改进版本。中间为包含simple bypass的改进版本,最右侧为使用complex bypass的改进版本。(使用了残差网络的思想在里面)。
网络取得的结果:
图三:Model大小对比。
图四 在Imagenet上面的测试准确率结果。