轻量级网络之MixNet

轻量级网络之MixNet

  • 前言
  • 卷积核尺寸
  • MixConv
  • 消融实验
  • MixNet网络结构
  • 性能
  • 总结

欢迎交流,禁止转载!!

前言

《MixConv: Mixed Depthwise Convolutional Kernels》
论文地址:https://arxiv.org/pdf/1907.09595.pdf
2019年谷歌使用AutoML,推出的新网络MixNet。

轻量级网络之MixNet_第1张图片
动机:深度可分离卷积在轻量级网络中越来越流行,但是都采用一样大小的深度可分离卷积核,卷积核的尺寸被忽略了。作者系统地研究了不同卷积核尺寸的影响,并且观测到将多个卷积核尺寸的优点结合起来可以达到更高的准确性和效率。

创新点:混合深度分离卷积(MixConv)=Group Conv+Inception

卷积核尺寸

作者重新审视了一个基础问题:更大的卷积核通常能够达到更高的准确性么?
如图所示,较大的卷积核尺寸拥有更多的参数,明显地增加了模型大小;然而,模型的准确性先是从 3x3 到7x7递增,然后当卷积核尺寸大于9x9时快速下降,这就表明了非常大的卷积核尺寸会潜在地降低准确性和效率。在卷积核尺寸与输入分辨率一致的极端情况下,几乎等价于一个全连接网络。
轻量级网络之MixNet_第2张图片
作者提出了混合深度卷积(MDConv),将不同的卷积核尺寸融合到一个单独的卷积操作,使其可以易于获取具有多个分辨率的不同模式,来获取更好的模型准确性和效率。
轻量级网络之MixNet_第3张图片

多尺度网络和特征:作者的想法和先前的多分支卷积网络有很多相似点,如Inceptions、Inception-ResNet、ResNeXt,和NASNet。通过在每层使用多分支结构,这些卷积网络能够在单独一层中使用不同的操作(如卷积、池化)。

MixConv

轻量级网络之MixNet_第4张图片

  1. MDConv该分成多少组呢?当组数为1时,就是普通的深度可分离卷积,显然,这不是作者想要的。根据实验,作者发现,g=4时最适合Mobilenet;但得益于神经搜索网络,组数从1到5比较能兼顾大部分模型的准确率和效率;
  2. 每一组的卷积核尺寸是多大呢?如果两组的卷积核尺寸相同,那么两组就会等价为1组,因此,作者限制每组的卷积核尺寸都不相同。作者从3*3的卷积核开始,第i组的卷积核尺寸为2i+1,也就是说,使用{3*3,5*5,7*7,…}之类的卷积核;
  3. 每组包含多少个通道数呢?作者考虑了两种通道分割的方法:均等分割和指数分割;例如:g=4,总共32个卷积核,均等分割会分成(8, 8, 8, 8)的channels,指数分割会分割成 (16, 8, 4, 4)。后面消融实验进一步说明;
  4. 是否使用空洞卷积呢?大尺寸卷积核意味着更多参数和计算量,因此通常会考虑引入空洞卷积,这样能扩大感受野,而不耗费额外的参数和计算量。但从试验来看,空洞卷积通常会比大尺度卷积的效果要差

作者使用更大的卷积核或MDConv卷积核替换了所有原始的3x3深度卷积核:
轻量级网络之MixNet_第5张图片
MixConv通常使用较少的参数和FLOPS,但是准确性相似或优于普通深度卷积,由此可以表明混合不同尺寸的卷积核可以提升效率和准确性;MixConv对非常大的卷积核比较不敏感,由此表明混合不同尺寸卷积核可以比大尺寸卷积核获取更稳定的准确性。
轻量级网络之MixNet_第6张图片

消融实验

在stride=2的层使用大尺寸卷积核,可以明显提升准确性。从后面搜索出的MixNet网络结构也是可以看出的,(但是,有个3x3的卷积却很显眼。)
轻量级网络之MixNet_第7张图片
通道等分(MixConv)和指数划分(MixConv+exp):在相同的卷积核尺寸下,通过为较小的卷积核分配更多的通道,指数划分可以减少参数和FLOPS,指数划分的一个限制可能是大卷积核没有足够的通道来获取信息。在性能上,如下所示:

轻量级网络之MixNet_第8张图片

MixNet网络结构

使用MobileNetV2作为基础网络结构,寻找最优的卷积核尺寸k、扩张率、通道数c、组数g。(通道等分划分、无空洞卷积)
轻量级网络之MixNet_第9张图片
通常在早期阶段使用小卷积核来减少计算开销,在后期阶段使用大卷积核来获取更高的准确性。作者同时还发现更大的MixNet-M倾向于使用更大的卷积核和更多的层来取得更高的准确性,

性能

轻量级网络之MixNet_第10张图片
轻量级网络之MixNet_第11张图片
迁移学习的能力:
轻量级网络之MixNet_第12张图片

总结

从本文中大概能获取以下观点:

  1. 一定范围内,大点的卷积核通常能够达到更高的准确性;故早期阶段使用小卷积核来减少计算开销,在后期阶段使用大卷积核来获取更高的准确性。
  2. 在stride=2的层使用大尺寸卷积核,可以明显提升准确性。
  3. 大尺寸卷积核意味着更多参数和计算量,因此通常会考虑引入空洞卷积,这样能扩大感受野,而不耗费额外的参数和计算量。但从试验来看,空洞卷积通常会比大尺度卷积的效果要差。
  4. MixConv=分组卷积+Iception,指数划分可以减少参数和FLOPS,但可能大卷积核没有足够的通道来获取信息。

MixConv是否好用?因为整个网络是搜索出来的,相当于精心的调整了很多参数,感觉有种设计复杂的Iception那种熟悉感;MixNet性能高,不代表MixConv好用。然而论文中并没有将此模块用于替换在其它一些网络上,以证明其泛化能力,所以还需要大家使用后的反馈。

上一篇:轻量级网络之MobileNet v3
下一篇:轻量级网络之GhostNet

你可能感兴趣的:(CNN卷积神经网络,深度学习,人工智能,卷积,轻量型网络)