[论文]MixNet——MixConv: Mixed Depthwise Convolutional Kernels

arXiv地址:https://arxiv.org/abs/1907.09595

abstract

    深度卷积在现代高效卷积神经网络中越来越受欢迎,但其核大小却常常被忽略。在本文中,我们系统地研究了不同核大小的影响,并观察到将不同尺寸核的优点结合起来可以获得更好的精度和效率。在此基础上,我们提出了一种新的混合深度卷积(MixConv),它很自然地将多个核大小混合在一个卷积中。我们的MixConv作为对普通的深度卷积的一种简单的代替,提高了现有MobileNets在ImageNet分类和COCO目标检测方面的准确性和效率。为了证明MixConv的有效性,我们将其整合到AutoML搜索空间中,开发了一个新的模型家族,命名为MixNets,其性能优于之前的移动模型,包括MobileNetV2(ImageNet top-1准确率+4.2%)、ShuffleNetV2(+3.5%)、MnasNet(+1.3%)、ProxylessNAS(+2.2%)和FBNet(+2.0%)。特别值得一提的是,我们的MixNet-L在典型的移动设置(<600M FLOPS)下实现了最新的78.9%的ImageNet top-1精度。代码位于https://github.com/tensorflow/tpu/tree/master/models/official/mnasnet/mixnet

动机:为了探索到底多大的kernel size  能够实现高的准确率?

    在本文中,我们重新讨论了一个基本问题:更大的核是否总是能够获得更高的精度?从在AlexNet中首次观察到之后,我们就知道每个卷积核都负责捕获一个局部图像模式,这可能是早期阶段的边缘,也可能是后期阶段的对象。大的核往往以牺牲更多的参数和计算为代价来获取具有更多细节的高分辨率模式,但是它们总是提高精度吗?为了回答这个问题,我们基于MobileNets系统地研究了核大小的影响。图1显示了结果。正如预期的那样,较大的内核大小会显著地使用更多参数从而增加模型大小;然而,从3×3到7×7模型精度首先提高,但当核大小大于9×9时,模型精度迅速下降,这表明非常大的核大小可能会损害精度和效率。事实上,这个观察符合卷积神经网络的最初直觉:在核大小等于输入分辨率的极端情况下,ConvNet简单地成为一个完全连接的网络,这是众所周知的次品。本研究指出单一核大小的局限性:我们既需要大卷积核来捕获高分辨率模式,也需要小卷积核来捕获低分辨率模式,以获得更好的模型精度和效率。

通过做了一个以深度可分离卷积 在MobeilNet上为基准的实验,不同卷积核尺寸对模型的影响如下:

在此基础上,我们提出了一种混合深度卷积(MixConv),它将不同的核大小混合在一个卷积运算中,这样就可以很容易地捕获不同分辨率的模式。图2显示了MixConv的结构,它将通道划分为多个组,并对每组通道应用不同的核大小。我们的MixConv是一个简单的替换普通深度卷积的方法,但是它在ImageNet分类和COCO目标检测上都能显著提高MobileNets的准确性和效率。

普通的深度可分离卷积是把输入通道channel大小为M,分成M组,然后对每组用同样的kernel size 进行卷积计算。但是,这里提出的MDconv 是把输入通道channel大小为M,分成C组,然后对每组用不同的的kernel size 进行卷积。总之是:不同的kernel size 提取的特征不一样,这里相当于做了一个特征融合。可以被考虑作为Depthwise Convolution 的替代模块。

2. 相关工作

高效卷积神经网络: 近年来,人们在提高卷积神经网络效率方面做出了巨大的努力,从更高效的卷积操作、瓶颈层,到更高效的架构。特别是,深度卷积在所有移动尺寸的卷积神经网络中越来越流行,如MobileNets、ShuffleNets、MnasNet以及其他。最近,EfficientNet通过广泛使用深度和逐点卷积,甚至实现了最先进的ImageNet精度和十倍更高的效率。与常规卷积不同,深度卷积对每个通道分别执行卷积核,从而减小了参数大小和计算成本。我们提出的MixConv推广了深度卷积的概念,可以认为是普通深度卷积的直接替代。

多尺度网络和特性: 我们的想法与之前的多分支卷积神经网络有很多相似之处,比如Inceptions、Inception-ResNet、ResNeXt和NASNet。通过在每一层中使用多个分支,这些卷积神经网络能够在一层中使用不同的操作(例如卷积和池化)。同样,之前也有很多工作是将不同层次的多尺度特征图结合起来,如DenseNet和特征金字塔网络。然而,与以前的工作不同,这些工作主要集中在改变神经网络的宏观架构以便利用不同的卷积运算,我们的工作旨在设计单个深度卷积的直接替换,目的是轻松利用不同的卷积核大小而不改变网络结构。

神经架构搜索: 最近,神经架构搜索通过自动化设计过程和学习更好的设计选择,实现了比手工模型更好的性能。因为我们的MixConv是一个灵活的操作,有许多可能的设计选择,所以我们使用了与[ProxylessNAS, MnasNet, FBNet]类似的现有架构搜索方法,通过将MixConv添加到搜索空间来开发一个新的MixNets家族。

3.2 MixConv的设计选择

组大小g: 它决定一个输入张量使用多少种不同类型的卷积核。在g=1g=1g=1的极端情况下,MixConv等价于普通的深度卷积。在我们的实验中,我们发现g=4g=4g=4通常是MobileNets的一个安全选择,但在神经架构搜索的帮助下,我们发现从1到5的各种组大小可以进一步提高模型的效率和准确性。

每个组的核大小: 理论上,每个组可以有任意的核大小。但是,如果两个组具有相同的内核大小,那么就相当于将这两个组合并成一个组,因此我们限制每个组具有不同的核大小。此外,由于小的卷积核大小通常具有更少的参数和FLOPs,我们限制核大小总是从3×33\times 33×3开始,并且每组单调地增加2。换句话说,组iii的核大小总是2i+12i+12i+1。例如,4组MixConv总是使用内核大小{3×3,5×5,7×7,9×9}。有了这个限制,每个组的核大小都是为任何组大小g所预定义的,从而简化了我们的设计过程。

每组的通道大小: 本文主要考虑两个通道划分方法:(1)均等划分:每组将有相同数量的滤波器;(2)指数划分:第i组约占总通道的2−i2^{-i}2−i部分。例如,给定一个总滤波器数量为32的4组MixConv,均等划分将通道划分为(8,8,8,8)(8,8,8,8)(8,8,8,8),而指数划分将通道划分为(16,8,4,4)(16,8,4,4)(16,8,4,4)。

空洞卷积: 由于大的卷积核需要更多的参数和计算,另一种选择是使用空洞卷积,它可以增加感受野,而不需要额外的参数和计算。然而,正如我们在3.4节的消融研究中所示,空洞卷积通常比使用大尺寸卷积核时的精度低。

3.3 MixConv在MobileNets上的性能

    ImageNet分类性能: 图4显示了MixConv在ImageNet分类上的性能。基于MobileNet V1和V2,我们用更大的或MixConv核替换了所有原来的3×3深度卷积核。值得注意的是,MixConv总是从3×3核大小开始,然后每组单调地增加2,因此图中MixConv最右边的点有6组核大小为{3×3,5×5,7×7,9×9,11×11,13×13}的滤波器。在图中,我们观察到:(1)MixConv通常使用较少的参数和FLOPs,但其精度与普通的深度卷积相近或更好,说明混合不同的卷积核可以提高效率和精度;(2)与普通的深度卷积相比,深度卷积的精度会因为更大的核而降低,如图1所示,MixConv对非常大的核的敏感度要低得多,这表明不同的核混合在一起,对于较大的核尺寸,可以获得更稳定的精度。

COCO检测性能: 我们还评估了MixConv基于MobileNets的COCO目标检测。表1显示了性能比较,其中我们的MixConv始终比普通的深度卷积获得更好的效率和准确性。特别是,与普通的depthwise7×7相比,我们的MixConv357(具有3组内核{3×3,5×5,7×7}使用更少的参数和FLOPs在MobileNetV1上实现了0.6%更高的mAP,在MobileNetV2上实现了1.1%更高的mAP。

3.4 消融实验

用于单层的MixConv: 除了将MixConv应用于整个网络之外,图5还显示了MobileNetV2上的单层性能。我们用(1)普通的核大小为9×99的DepthwiseConv9×9DepthwiseConv9,或(2)含有4组核:{3×3,5×5,7×7,9×9}的MixConv3579替换这15层中的一层。如图所示,较大的核大小对不同的层有不同的影响:对于大多数层,精度变化不大,但是对于某些具有stride为2的层,较大的核可以显著提高精度。值得注意的是,尽管MixConv3579只使用了普通的DepthwiseConv9×9一半的参数和FLOPs,但是我们的MixConv在大多数层上都实现了类似的或者稍微好一点的性能。

通道划分方法: 图6比较了两种通道划分方法:均等划分(MixConv)和指数划分(MixConv+exp)。正如预期的那样,对于相同的核大小,指数划分需要更少的参数和FLOPs,方法是将更多的通道分配给更小的核。我们的实证研究表明,指数通道划分在MobileNetV1上的性能仅略好于均等划分,但如果同时考虑MobileNetV1和V2,则没有明显的赢家。指数划分的一个可能限制是,大卷积核没有足够的通道来捕获高分辨率模式。

空洞卷积: 图6还比较了膨胀卷积的性能(表示为MixConv+dilated)。对于K×K的核大小,它使用一个具有(K−1)/2空洞率的3×33核:例如,一个9×9内核将被一个具有空洞率为4的3×3核所取代。值得注意的是,由于Tensorflow空洞卷积与stride为2不兼容,所以我们只在stride为1的层上使用空洞卷积。如图所示,空洞卷积对于小核具有合理的性能,但是对于大核精度下降很快。我们的假设是,当大核的空洞率很大时,空洞卷积会跳过很多局部信息,这会影响精度。

4.2 MixNet在ImageNet上的表现

总体而言,我们的MixNets优于所有最新的移动卷积神经网络:与手工设计的模型相比,在相同的FLOPs约束下,我们的MixNets的top-1精度比MobileNetV2提高了4.2%,比ShuffleNetV2提高了3.5%;与最新的自动化模型相比,在相似的FLOPs约束下,我们的MixNet比MnasNet(+1.3%)、FBNets(+2.0%)和ProxylessNAS(+2.2%)的准确率更高。MixNets还实现了与最新的MobileNetV3类似的性能(使用更少的参数),后者是与我们的工作同时开发的,除了架构搜索之外,还进行了几个手工优化。特别值得一提的是,我们的MixNet-L在典型的移动FLOPs(<600M)约束下,实现了78.9%的最先进的top-1精度。与广泛使用的ResNets相比,我们的MixNet-M实现了与ResNet-152相同的77%的top-1精度,但参数减少了12倍,FLOPs减少了31倍。

图7可视化了ImageNet性能比较。我们观察到,与以前手工设计的移动卷积神经网络相比,神经架构搜索的最新进展显著提高了模型性能。然而,通过引入一种新型的高效MixConv,我们可以基于相同的神经结构搜索技术进一步提高模型的准确性和效率。

4.3 MixNet架构

为了理解为什么我们的MixNet能够达到更好的精度和效率,图8说明了表2中MixNet-S和MixNet-M的网络架构。通常,它们都在整个网络中使用各种不同核大小的MixConv:为了节省计算成本,小的卷积核在早期更为常见,而大的卷积核在后期更为常见,以获得更好的准确性。我们还观察到,较大的MixNet-M倾向于使用更大的核和更多的层来追求更高的精度,而代价是更多的参数和FLOPs。与对于较大的核大小会导致严重的精度下降(图1)普通的深度卷积不同,我们的MixNets能够使用非常大的核,比如9×9和11×11,从输入图像中捕捉高分辨率的模式,而不会影响模型的精度和效率。

5. 结论

在本文中,我们重新讨论了卷积核大小对深度卷积的影响,并指出传统的深度卷积存在单一卷积核大小的限制。为了解决这个问题,我们提出了MixConv,它将多个卷积核混合在一个操作中,以利用不同的核大小。我们证明了我们的MixConv是普通的深度卷积的一个简单的直接替代,并提高了MobileNets在图像分类和目标检测任务上的准确性和效率。基于我们提出的MixConv,我们进一步利用神经结构搜索技术开发了一个新的MixNet家族。实验结果表明,我们的MixNet在ImageNet分类和四种广泛使用的迁移学习数据集上都比所有最新的移动卷积神经网络具有更好的精度和效率。

发布了33 篇原创文章 · 获赞 46 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_34795071/article/details/103877996