MixNet学习笔记
最近,谷歌使用了AutoML,推出了一种新网络:MixNet,其论文为《MixNet: Mixed Depthwise Convolutional Kernels》。其主要创新点是,研究不同卷积核尺寸的影响和观察到组合不同尺寸的卷积核能提高准确率。作者将混合了不同尺寸的卷积核的卷积操作命名为MDConv,并将其使用在深度可分离卷积中,能提高显存的MobileNet的准确率。
3*3的卷积已经得到了广泛的实践应用了,但是随着近期部分网络的推出,5*5或者7*7的大卷积核有重新出现,例如EfficientNet,这些网络都证明了,大卷积核能提高模型的准确率和效率。但是否卷积核越大,准确率就越高呢?作者首先在mobilenet上分析了,不同尺寸的卷积核对准确率的影响,如Fig.1所示。可以看出,卷积核越大,模型的大小也随之增加;随着卷积核增加,准确率先上升,后下降。说明了,卷积核并不是越大越好,过大的卷积核会损伤模型的准确率。对比实验也表明了:我们需要大卷积核来高分辨率、小卷积核来适应低分辨率。
为了实现这一点,作者提出了mixed depthwise convolution(MDConv)模块,其实由多个不同尺寸的卷积核组成,如Fig.2所示。左图是深度可分离间距,其每个通道都是由同一尺寸的卷积核来进行运算;右图是MDConv模块,将通道分成若干组,每一组由同一尺寸的卷积核进行运算,每组的卷积核尺寸不同。最后通过MDConv计算后,将不同组的特征图进行concat起来。注意一点是,在每组中,每个通道都与这个卷积核进行depthwise convolution,而不是普通的convolution。
因此,如何这就有了几个可以讨论的点:
- MDConv该分成多少组呢?当组数为1时,就是普通的深度可分离卷积,显然,这不是作者想要的。根据实验,作者发现,组数=4时最适合mobilenet;但得益于神经搜索网络,组数从1到5比较能兼顾大部分模型的准确率和效率;
- 每一组的卷积核尺寸是多大呢?如果两组的卷积核尺寸相同,那么两组就会等价为1组,因此,作者限制每组的卷积核尺寸都不相同。作者从3*3的卷积核开始,第i组的卷积核尺寸为2i+1,也就是说,使用{3*3,5*5,7*7,...}之类的卷积核;
- 每组包含多少个通道数呢?作者考虑了两种通道分割的方法,均等分割和指数分割;
- 是否使用空洞卷积呢?大尺寸卷积核意味着更多参数和计算量,因此通常会考虑引入空洞卷积,这样能扩大感受野,而不耗费额外的参数和计算量。但是,从接下来的试验来看,空洞卷积通常会比大尺度卷积的效果要差。
作者用更大的卷积核或者MDConv来代替mobilenet中的3*3卷积核,在ImageNet上进行了试验,结果如Fig.4所示。可以看到:1)不同尺寸的卷积核能提高模型的准确率和效率;2)MDConv对大尺寸卷积核不太敏感,因此可以使用大卷积核来实现更加稳定的准确率。
作者对刚刚那4个问题作出了对比试验,得到如下结论,就不细说了:
- 平均分割和指数分割效果类似;
- 空洞卷积使用于小尺寸卷积核,但如果大卷积核使用空洞卷积,准确率会迅速恶化。作者认为,当大尺寸卷积核使用空洞卷积时,会错过很多局部信息。
作者使用了AutoML来对MDConv模块进行搜索,得到了MixNet网络,如Fig.8所示。该MixNet有3个不同尺寸的网络,分别是MixNet-S,MixNet-M,MixNet-L,对应于不同的MDConv中使用的卷积核的尺寸。
最后,作者使用MixNet网络,在ImageNet数据集上进行了测试,并与其他模型进行了对比,如Fig.7所示。可以看出在同等FLOPS下,MixNet网络比很多轻量化网络的准确率都要高。
总结
作者重新思考了不同卷积核对模型的影响效果,并分析了卷积核尺寸对准确率的影响,进而提出了MDConv来混合不同尺寸的卷积核。但是,这个网络的实际速度speed不一定会快,因为该网络存在过多的分组、平行度也被破坏,不符合shufflenet中提出的4条轻量化原则。所以准确率可能会有所提高,实际速度可能会更加慢。