MixConv: Mixed Depthwise Convolutional Kernels

MixConv: Mixed Depthwise Convolutional Kernels

原文链接:https://arxiv.org/pdf/1907.09595

摘要

  深度卷积在当今的高效卷积神经网络中更加普遍,但卷积核的大小经常被忽略。在这篇文章中,我们系统性的研究了不同卷积核大小的影响,并发现了合并多个不同大小的卷积核的益处,能够有更好的准确率和效率。基于这个观察结果,我们提出了一个新的混合深度卷积(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 达到一个新的最高水平在ImageNet的top-1准确率上达到了78.9%,并且低于典型的移动模型的设置(<600M FLOPS)。
代码
1.官方代码 https://github.com/tensorflow/tpu/tree/master/models/official/mnasnet/mixnet
2.Pytorch 亲测好用 https://github.com/leaderj1001/Mixed-Depthwise-Convolutional-Kernels.git

介绍

  卷积神经网络(ConvNets)已经在包括图像分类,检测,分割以及其他应用中被广泛使用了。目前的一个趋势是提高ConvNets的准确率和效率。随着这个趋势,深度卷积在移动端卷积神经网络中越来越普遍,比如MobileNets,ShuffleNets,NASNet,AmoebaNet,MnasNet和EfficientNet。不像标注的卷积,深度卷积的卷积核是在每个通道分别卷积的,因此减少了由因数C带来的计算消耗,C表示通道数。而设计带有深度卷积的ConvNets的时候一个很重要但是经常被忽略的因素就是卷积和的大小。虽然传统的做法是简单的使用3x3的卷积核,但最近的研究结果显示更大的卷积核比如5x5和7x7可能会提高模型的准确率和效率。
  这篇文章中,我们回顾了这个基础问题:越大的卷积和越能够达到更高的准确率吗?先观察下AlexNet,众所周知每个卷积核相应的去捕捉一个局部图案,在网络的前面阶段可能是边缘,在网络的后面阶段可能是对象。(卷积神经网络的越高层具有越高的感受野)。大卷积核趋向于捕捉高分辨率的图案
在这里插入图片描述

图1:准确率和卷积核尺寸的关系-每个点代表一个MobileNetV1和V2模型
的卷积核大小的变化,其中模型的大小用点的大小来代替。
更大的卷积核尺寸意味着更多的参数,但是当卷积核尺寸
大于9x9的时候准确率反而下降了

在这里插入图片描述

图2:混合深度卷积(MixConv)-不像寻常的深度卷积对所有的通道
都只使用单个尺度的卷积核,MixConv把所有通道都分成组并且
对每个组应用不同尺寸的卷积核

在更多参数和计算量的代价下得到更多的细节,但是这样做总是能提高准确率吗?为了回答这个问题,我们以MobileNets为基础系统性的研究了卷积核尺寸的影响。图一显示了结果。和我们预期的一样,更大的卷积核尺寸随之有更多的参数,明显的增加了模型的大小。然而从3x3到7x7模型的准确率提升的更多,但当卷积核尺寸大于9x9之后准确率很快下降了,也就是非常大的卷积核尺寸可能会损失准确率和效率。事实上,这个观点和ConvNets最初的直观理解是一致的:在极端的案例来看卷积核的尺寸等同于输入图像的分辨率,一个ConvNet就会简单地变成一个全连接网络,已知的就低于[7]。这个研究发现了单个卷积核尺寸的局限性:我们既需要大卷积核来获取高分辨率图案也需要小卷积核来捕捉低分辨率图案以达到更好的模型准确率和效率。
  基于这个观点,我们提出了一个混合深度卷积(MixConv),即在一个卷积操作中混合了不同尺寸的卷积核,以至于可以很容易的在不同分辨率下捕捉不同的图案。图2展示了MixConv的结构,把通道分为多个组并对每个组的通道使用不同尺寸的卷积核。我们只是把MixConv这个结构简单的植入代替寻常的深度卷积,但是能够提高MobileNets在ImageNet分类任务和COCO目标检测任务的准确率和效率。
  为了进一步证明我们的MixConv的有效性,我们利用神经网络结构搜索去开发一个模型家族叫做MixNets。实验结果表明我们的MixNet模型明显的超过了全部之前的移动端ConvNets,比如ShuffleNets,MnasNet,FBNet,和ProxylessNAS。尤其是我们的中等大小的模型MixNet-M在ImageNet上达到了top-1的77.0%准确率,比能达到相同效果的ResNet-152降低了12倍的参数量和31倍的FLOPS。

相关工作

  高效的ConvNets:近些年,在提高ConvNet的效率上付出了很多努力,从更有效的卷积神经网络操作,bottleneck层,到更高效的结构。深度卷积在所有移动到端大小的ConvNets上的使用尤为普遍,比如MobileNets,ShuffleNets,MnasNet等等。最近EfficientNet通过大量的使用深度卷积甚至达到了ImageNet的准确率的最好的水平和十折更高的效率。不像标准的卷积,深度卷积在每个通道上单独执行卷积,因此减少了参数的大小和计算量。我们提出的MixConv推广了深度卷积的概念,能够被认为是一个植入式的操作代替寻常的深度卷积。
  多尺度网络和特征:我们的想法和很多之前多分支的ConvNets很相似,比如Inceptions,Inception-ResNet,ResNeXt,和NASNet。通过在每一层使用多分支,这些ConvNets能够在一层中利用不同操作(比如卷积和池化)。相似地,也有很多之前的工作是合并不同层的多尺度特征图,比如DenseNet和特征金字塔网络。然而,不像这些之前的工作大部分聚焦于改变巨大的神经网络结构以使用不同的卷积操作,我们研究的目的是设计一个可植入替换单个深度卷积的操作。
  神经网络结构搜索(NAS):最近,神经网络结构搜索通过自动的设计流程和学习更好的设计选择,已经达到了比手工制作的模型更好的效果。因为我们的MixConv是一个带有很多可能设计选择的灵活操作。我们加入MixConv结构到搜索空间中,使用已有的结构搜索类似于[2, 26, 27]的方法来扩展一个新的MixNets家族。

MixConv

  MixConv的主要思想是在一个深度卷积的操作中混合多个不同尺度的卷积核,以至于能够从输入图像中容易地获得不同类型的图案。这一节,我们将讨论特征映射图和MixConv的设计选择。

MixConv 特征映射图

  我们从寻常的深度卷积开始。让 X ( h , w , c ) X^{(h,w,c)} X(h,w,c)表示维度为(h,w,c)的输入张量,其中c是空间的高度,w是空间的宽度,以及c是通道的个数。让 W ( k , k , c , m ) W^{(k,k,c,m)} W(k,k,c,m)表示深度卷积核,其中kxk是卷积核的大小,c是输入的通道个数,m表示通道的乘数(channel multiplier参数相对难理解,因为MobileNets里面这个参数都是1,如果该参数等于m,那么每个通道被不同的卷积核重复m次)。简单来说,这里我们假设卷积核的宽和高都是k,但是很容易将其推广到卷积核的宽和高不同的情况。输出的张量 Y ( h , w , c ⋅ m ) Y^{(h,w,c \cdot m)} Y(h,w,cm)和输入有相同的空间维度(h,w)并且通道扩张输出的通道大小为 m ⋅ c m \cdot c mc,每个特征映射图的输出值计算方式如下:
在这里插入图片描述
  不像寻常的深度卷积,MixConv把通道分为组并对每个组采用不同尺寸的卷积核,如图2所示。更具体地说,输入的张量被分为g组虚拟的张量 < X ^ ( h , w , c 1 )

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值