赞
踩
最近,通道注意在改善深层卷积神经网络(CNN)的性能方面提供了巨大的潜力。然而,现有的大多数方法都致力于开发更复杂的注意模块以获得更好的性能,这不可避免地增加了计算负担。为了克服性能和复杂度之间的矛盾,本文试图研究一种极轻量级的注意力模块来提高深层CNN的性能。特别地,我们提出了一种高效的通道注意模块,该模块只需要k(k≤9)个参数,但能带来明显的性能提升。通过回顾SENet中的通道注意模块,我们实证地表明避免降维和适当的跨通道交互对于学习有效的通道注意是重要的。因此,我们提出了一种无需降维的局部跨通道交互策略,该策略可以通过快速的一维卷积有效地实现。此外,我们还提出了一种通道维数函数来自适应地确定一维卷积的核大小,该核大小代表局部交叉通道相互作用的覆盖。我们的ECA模块可以灵活地集成到现有的CNN体系结构中,得到的CNN由ECA-Net命名。我们以ResNet和MobileNetV2为骨干,对所提出的ECA-Net在图像分类、目标检测和实例分割等方面进行了广泛的评估。实验结果表明,我们的ECANet具有更高的效率,同时性能也优于同类的ECANet。源代码和模型可以在https://github.com/BangguWu/ECANet上找到。
深卷积神经网络(CNNs)在人工智能领域得到了广泛的应用,在图像分类、目标检测、语义分割等方面取得了很大的进展。从开创性的AlexNet(Krizhevsky,Sutskever和Hinton 2012)开始,许多研究被不断地研究,以进一步提高深层CNN的性能(Simonyan和Zisserman,2015;Szegedy等人,2015年;He等人,2016a;Huang et al.,2017年;李等人,2017a;2017b;Wang等人,2018年)。最近,将注意机制引入卷积块引起了人们的广泛关注,显示出巨大的性能改进潜力(Hu,Shenin,and Sun 2018;Woo等人)。2018年;胡等人。2018年;陈等人。2018年;高等人。2019年;Fu等人。2019年)。在这些方法中,最具代表性的工作之一是挤压激励网络(SENet)(Hu,沈和Sun 2018),它学习每个卷积块的通道关注度,在各种深度CNN架构上带来明显的性能提升。
在SENet(Hu,Shenin,and Sun 2018)中设置了压缩(即特征聚合)和激励(即特征重新校准)之后,一些研究通过捕获更复杂的通道依赖来改进SE块(Woo等人)。2018年;陈等人。2018年;高等人。2019年;Fu等人。2019年)或结合额外的空间注意力(Woo等人)。2018年;胡等人。2018年;Fu等人。2019年)。
这些方法虽然取得了较高的精度,但往往会带来较高的模型复杂度和较大的计算负担。与上述以更高的模型复杂度为代价来获得更好的性能的方法不同,本文关注的是一个问题:人们能否以更有效的方式学习有效的通道注意?
要回答这个问题,我们首先回顾一下SENet中的通道注意模块。具体地说,在给定输入特征的情况下,SE块首先独立地对每个通道采用全局平均池化,然后使用两个具有非线性的全连接(FC)层,然后使用Sigmoid函数来生成每个通道的权重。这两个FC层被设计来捕捉非线性的跨通道相互作用,这涉及到为了避免过高的模型复杂度而进行的降维。虽然这一策略被广泛应用于随后的通道注意模块(Wootal.。2018年;胡等人。2018年;高等人。2019年),我们的实证分析表明,降维会给通道注意力的预测带来负面影响,捕获所有通道之间的依赖关系是低效的,也是没有必要的。
基于上述分析,避免降维和适当的跨通道交互作用在通道注意机制的形成中起着至关重要的作用。因此,基于以上两个性质,本文提出了一种适用于深层CNN的高效通道注意(ECA)模型。如图2(b)所示,在没有降维的情况下进行通道式全局平均池化之后,我们的ECA通过考虑每个通道及其k个邻居来捕获本地跨通道交互。因此,我们的ECA可以通过大小为k的快速一维卷积来有效地实现。核大小k表示局部跨通道交互的覆盖,即有多少邻居参与了一个通道的注意预测。显然,这将影响ECA的效率和效力。交互的覆盖率与通道维度有关是合理的,因此我们提出了一个与通道维度相关的函数来自适应地确定k,如图1和表2所示,除了骨干模型(He et al.。2016a),使用我们的ECA模块(称为ECA-Net)的深度CNN引入的附加参数很少,计算量可以忽略不计,同时带来了显著的性能提升。例如,对于参数为24.37M和GFLOPS为3.86的ResNet-50,ECA-Net50的附加参数和计算量分别为80和4.7E-4GFLOPS;同时,ECA-Net50的Top-1准确率比ResNet50高2.28%。为了评估我们的方法,我们在ImageNet-1K(邓等人)上进行了实验。2009)和MS Coco(Lin等人。2014)使用不同的CNN深度架构和任务。本文的主要贡献概括如下。
图1:各种关注模块(即SENet(Hu、Shenin和Sun 2018)、CBAM(Woo等人。2018),A2-Nets(Chen等人。2018)和ECA-Net)使用ResNet(He等人,2016a)在准确性、网络参数和故障方面作为主干模型。圆的大小表示模型计算(FLOP)。显然,我们的ECA-Net在模型复杂度较低的情况下获得了较高的准确率。
注意机制已被证明是强化深层CNN的一种潜在手段。Se-Net(Hu,Shenand Sun 2018)首次提出了一种学习通道注意力的有效机制,并取得了令人振奋的表现。随后,注意模块的发展大致可以分为两个方向:(1)增强特征聚合;(2)通道注意和空间注意相结合。具体地说,CBAM(Woo等人。2018)同时使用平均池化和最大池化来聚合要素。GSoP(Gao et al.。2019)引入了二阶池化,以实现更有效的功能聚合。GE(Hu等人)。2018)探索使用深度卷积(Chollet 2017)来聚合要素的空间扩展。SCSE(Roy、Navab和Wachinger 2019)和CBAM(Woo等人。2018)使用核大小为k×k的2D卷积计算空间注意力,然后将其与通道注意力相结合。与非局部神经网络分享相似的理念(Wang等人,2018),双重注意网络(A2-Nets)(Chen等人。2018)引入了一种新的用于图像或视频识别的关联函数,而双重注意网络(DAN)(Fu et al.。2019)和交叉网络(CCNet)(Huang等人。2019)同时考虑非局部通道和非局部空间关注度进行语义分割。类似地,Li et al.。提出了一种基于期望最大化注意力(EMA)的语义分割模型(Li等人)。2019年)。然而,这些非局部注意模块由于其较高的模型复杂度,只能在一个或几个卷积块中使用。显然,上述所有方法都着眼于开发复杂的注意力模块以获得更好的性能。与它们不同的是,我们的ECA的目标是以较低的模型复杂度学习有效的通道注意。
我们的工作还涉及到高效卷积,这是为轻量级CNN架构设计的。最广泛使用的两种高效卷积是组卷积(Zhang et al.。2017年;谢等人。2017年;IoAnu等人。2017年)和深度可分离卷积(Chollet 2017;Sandler等人)。2018年;张等人。2018年;Ma等人。2018年)。如表1所示,虽然这些有效卷积涉及的参数较少,但它们在注意模块中表现出的有效性很小。我们的ECA模块以捕获局部跨通道交互为目标,与通道局部卷积(Zhang 2018)和通道卷积(Gao,Wang,Ji 2018)有一些相似之处;与它们不同的是,我们的方法重点是提出一种核大小自适应的一维卷积来代替通道注意模块中的FC层。与分组可分离卷积和深度可分离卷积相比,我们的方法在较低的模型复杂度下获得了更好的结果。
在这一部分中,我们首先回顾一下SENet(Hu、沈和Sun 2018)中的通道注意模块。然后,我们通过实证比较分析了降维和跨通道交互的效果,这促使我们提出了高效通道注意模型(Efficient Channel Attify,ECA)。此外,我们还介绍了一种自适应的核大小选择算法,并展示了如何将其应用于深层CNN。
设一个卷积块的输出为X∈RW×H×C,其中W、H和C分别为宽度、高度和通道尺寸(即滤波器数量)。如图2(a)所示,SE块中的信道注意力权重可以计算为
其中,是通道维度的全局平均池化,
是Sigmoid函数。设y=g(X),f{w1,w2}的形式为
其中relu表示校正的线性单位(Nair和Hinton 2010)。为避免模型复杂度过高,将W1和W2的大小分别设置为C×(C/r)和(C/r)×C。可以看出,f{w1,w2}包含通道注意块的所有参数。而公式2中的降维降低了模型复杂度,破坏了通道与其权值的直接对应关系。
在这一小节中,我们对通道降维和跨通道互动对学习通道注意的影响进行了实证比较,以便更深入地分析通道降维和跨通道互动对学习通道注意的影响。基于这些分析,我们提出了我们的高效通道注意(ECA)模块。
Avoiding Dimensionality Reduction
如上所述,公式2中的降维使通道与其权重的对应是间接的。为了验证其效果,我们将原始SE块与其三个变体(即SE-Var1、SE-Var2和SE-Var3)进行比较,它们都不执行降维。如表1所示,没有参数的SE-Var1仍然优于原始网络,表明通道关注具有改善深层CNN性能的能力。同时,SE-Var2算法独立学习每个通道的权值,比SE块学习的参数少,略优于SE块。这可能表明,通道及其权重需要直接对应,而避免降维比考虑非线性通道相关性更重要。此外,在SE块中,使用一个FC层的SE-Var3比使用两个FC层降维的性能更好。以上结果清楚地说明了注意模块避免降维的重要性。因此,我们在没有进行通道降维的情况下开发了我们的ECA模块。
Local Cross-Channel Interaction
虽然SE-Var2和SE-Var3都保持通道维度不变,但后者获得了更好的性能。主要区别在于SE-V ar3捕获跨通道交互,而SE-Var2不捕获。这表明,跨通道互动有助于学习有效的注意力。然而,SE-Var3模型涉及的参数较多,导致模型复杂度过高。从有效卷积的角度(Zhang et al.。2017年;谢等人。2017),SE-Var2可视为深度方向可分离卷积(Chollet 2017)。当然,组卷积作为另一种有效的卷积也可以用来捕获跨信道的相互作用。在给定FC层的情况下,组卷积将其分成多个组,并在每个组中独立地执行线性变换。带组卷积的SE块(SE-GC)写为
其中,是一种对角矩阵,其参数数量为C2/G,G为组数。然而,如表1所示,具有不同组的SE-GC没有带来比SE-Var2更高的增益,这表明组卷积不是利用跨通道交互的有效方案。同时,过多的组卷积将增加存储器访问成本(Ma等人,2018年)。
通过可视化通道特征y,我们发现它们通常表现出一定的局部周期性(详见附录A1)。因此,与上述方法(即深度可分离卷积、组卷积和FC层)不同,我们的目标是捕获局部跨通道交互,即只考虑每个通道与其k个邻居之间的交互。因此,yi的参数可以计算为
其中,表示yi的k个相邻通道的集合,显然,公式(4)捕获局部跨通道交互,这种局部性约束避免了跨所有通道的交互,具有较高的建模效率。这样,每个通道注意模块涉及k∗C个参数。为了进一步降低模型复杂度和提高效率,我们让所有通道共享相同的学习参数。
因此,我们的高效通注意(ECA)模块可以很容易地通过核大小为k的快速一维卷积来实现。
其中C1D表示一维卷积。如表1所示,通过引入局部跨通道交互,我们的ECA在公式4(即没有共享参数的ECA)上实现了与SE-Var3和ECA-NS类似的结果,而模型复杂度要低得多(仅涉及k个参数)。在表1中,k设置为3。
Adaptive Selection of Kernel Size k
在我们的ECA模块中(等式(6)),核大小k是一个关键参数。由于1D卷积用于捕获本地跨通道交互作用,因此k确定交互作用的覆盖范围,该覆盖范围可以针对具有不同通道数和各种CNN结构的卷积块而变化。尽管k可以手动调整,但它将耗费大量计算资源。K与通道维数C的关系是合理的。一般来说,较大的通道尺寸有利于长距离的相互作用,而较小的通道尺寸有利于短期的相互作用。换言之,在k和C之间可能存在某种映射φ
在这里,映射φ的最优公式通常是未知的。然而,基于上述分析,建议k与C成非线性正比,因此参数化指数函数是一个可行的选择。同时,对于经典的内核技巧(Boser,Guyon和V apnik 1992;Mika et al.。1998),作为核函数的指数族函数(例如,高斯)最广泛地用于处理未知映射的问题。因此,我们使用指数函数来近似映射φ,即
此外,由于通道尺寸C(即滤波器的数量)通常被设置为2的整数次幂,因此我们将exp(γ∗k−b)2替换为2(γ∗k−b)。然后,给定通道维度C,核大小k可以自适应地确定为
其中|t|odd表示最接近的奇数。在本文中,我们将γ和b分别设置为2和1。显然,映射函数ψ使得较大尺寸的通道具有远程交互作用,反之亦然。
图2将我们的ECA模块与SE模块进行了比较。为了将我们的ECA应用到深度CNN,我们利用了与SENet(Hu、Shenin和Sun 2018)完全相同的配置,只需用我们的ECA模块替换SE块即可。由此产生的网络被命名为ECA-Net。图3给出了我们的ECA的PyTorch代码,很容易复制。
在这一部分中,我们使用ImageNet(Dunet et al.。2009)和MS Coco(Lin等人。2014年)对所提出的大规模图像分类和目标检测方法进行了评估。具体地说,我们首先评估了内核大小对ECA模块的影响,并与ImageNet上的同类产品进行了比较。然后,我们使用更快的R-CNN(Ren等人)验证了我们的ECA模块在目标检测上的有效性(Ren et al.。2017年)和Mask R-CNN(他等人。2017年)。
为了评估我们的ECA-Net在ImageNet分类上的情况,我们使用了三个广泛使用的CNN作为骨干模型,包括ResNet-50(He et al.。2016a),ResNet-101(他等人。2016a),ResNet-152(他等人。2016a)和MobileNetV2(Sandler等人。2018年)。为了与我们的ECA一起训练ResNet-50、ResNet-101和ResNet-152,我们采用了与(He等人)中完全相同的数据增强和超参数设置。2016a;胡、沈和孙,2018年)。具体地说,通过随机水平翻转将输入图像随机裁剪为224×224。网络参数采用随机梯度下降法(SGD)进行优化,权值衰减为1e-4,动量为0.9,小批量为256。通过将初始学习率设置为0.1(每30个epoch减少10倍),所有模型都在100个epoch内进行训练。对于使用我们的ECA培训MobileNetV2,我们遵循(Sandler等人,2018)中的设置。在400个epoch内使用SGD训练网络,权重衰减为4e-5,动量为0.9,小批量大小为96。初始学习率设置为0.045,线性衰减率为0.98%。为了在验证集上进行测试,首先将输入图像的短边大小调整为256,并使用224×224的中心裁剪进行评估。所有模型都由PyTorch工具包3实现。
我们在MS Coco上使用faster R-CNN(Ren等人, 2017年)和Mask R-CNN(他等人,2017)进一步评估了我们的方法,其中ResNet-50和ResNet-101以及FPN(Lin等人。2017)作为主干模型。我们通过使用MMDettion工具包(Chen等人,2019)实现所有检测器,并使用默认设置。具体地说,输入图像的较短一侧调整为800,然后使用重量衰减为1e-4、动量为0.9、小批量大小为8(4个GPU,每个GPU有2个图像)的SGD对所有型号进行优化。将学习率初始化为0.01,并分别在8和11个epoch后将学习率降低10倍。我们在COCO val2017上培训了12个epoch内的所有检测器,并在val2017上报告结果以供比较。所有程序都可以在配备了四个RTX 2080Ti GPU和一个2.60 GHz的Intel®Xeon Silver 4112 CPU的PC上运行。
Large-scale Image Classification on ImageNet-1K
在这里,我们首先评估了内核大小对ECA模块的影响以及自适应内核大小选择的有效性,然后与使用ResNet-50、ResNet-101、ResNet-152和MobileNetV2的最先进的同行和CNN模型进行了比较。
Effect of Kernel Size and Adaptive Kernel Size Selection
如公式中6所示,我们的ECA模块包含一个参数k,即一维卷积的核大小。在这一部分中,我们评估了它对ECA模块的影响,并验证了所提出的核大小自适应选择的有效性。为此,我们使用ResNet-50和ResNet-101作为主干模型,并使用我们的ECA模块通过设置k值从3到9对它们进行训练。结果如图4所示,从中我们得到了以下观察结果。
首先,当k在所有卷积块中固定时,对于ResNet-50和ResNet-101,ECA模块分别在k=9和k=5时获得最佳结果。由于ResNet-101具有更多的中间层,这些中间层决定了ResNet-101的性能,因此它可能更喜欢较小的内核大小。此外,这些结果还表明,不同的深层CNN具有不同的最优k个数,并且k对ECA-Net的性能有明显的影响。其次,我们的自适应核大小选择试图为每个卷积块找到最优的k个数,这样可以减轻深层CNN深度的影响,避免人工调整参数k,而且通常会带来进一步的改进,证明了自适应选择核大小的有效性。最后,不同k个数的ECA模块均优于SE模块,表明避免降维和局部跨通道交互确实对学习通道注意有正向影响。
Comparisons using ResNet-50
接下来,我们使用ImageNet上的ResNet-50将我们的ECA模块与几种最先进的注意方法进行了比较,包括SENet(Hu、Shenin和Sun 2018)、CBAM(Woo等人,2018),A2-Nets(Chen等人,2018年),AA-NET(Bello等人,2019年)和GSoP-Net1(Gao等人,2019年)。评估度量涉及效率(即,网络参数、每秒浮点运算(FLOPS)和训练/推理速度)和有效性(即,Top-1/Top-5准确性)。为了进行公平的比较,除了训练/推理速度之外,我们复制了所有比较方法的原始论文结果。为了测试各种模型的训练/推理速度,我们对比较的CNN采用了公开可用的模型,并在相同的计算平台上运行它们。表2给出了结果,其中我们可以看到,我们的ECA-Net与原始ResNet-50共享几乎相同的模型复杂度(即网络参数、FLOP和速度),同时在Top-1准确性方面获得2.28%的提升。与最先进的同类网络(即SENET、CBAM、A2-Net、AA-Net和GSoP-Net1)相比,ECA-Net获得了更好或更具竞争力的性能,同时受益于更低的模型复杂度。
Comparisons using ResNet-101
以ResNet-101为骨干模型,我们比较了我们的模型ECA-Net与SENet(Hu,Shenen,Sun 2018)、CBAM(Woo et al.,2018)和AA-NET(Bello等人,2019年)。从表2可以看出,ECA-Net在Top-1准确率方面比原始ResNet-101高1.8%,而模型复杂度几乎相同。在ResNet-50上,ECA-Net具有相同的趋势,优于SENET和CBAM,而与AA-Net相比,模型复杂度更低,具有很强的竞争力。
Comparisons using ResNet-152
使用ResNet-101作为主干模型,将我们的ECA-Net与SENet(Hu,Shenen,Sun 2018)进行了比较。从表2可以看出,ECA-Net在模型复杂度几乎相同的情况下,在Top-1准确率方面比原始ResNet-152提高了约1.3%,而在Top-1准确率方面,在模型复杂度较低的情况下,比SENET提高了0.5%。针对ResNet-50、ResNet-101和ResNet-152的测试结果证明了我们的ECA模块在广泛使用的ResNet架构上的有效性。
Comparisons using MobileNetV2
除了ResNet架构,我们还验证了我们的ECA模块在轻量级CNN架构上的有效性。为此,我们采用了MobileNetV2(Sandler等人,2018)作为主干模式,并将我们的ECA模块与SE模块进行比较。特别地,我们在卷积层集成了SE块和ECA模块,然后在MobileNetV2的每个“瓶颈”处建立残差连接,并将SE块的参数r设置为8。所有模型都使用完全相同的设置进行训练。表2中的结果表明,我们的ECA-Net在Top-1准确率方面分别将原有的MobileNetV2和SENET提高了0.9%和0.14%。此外,我们的ECA-Net比SENET具有更小的模型规模和更快的训练/推理速度。以上结果再次证明了我们的ECA模块在深层CNN中的有效性。
Comparisons with Other CNN Models
在这一部分的最后,我们将我们的ECA-Net与其他最先进的CNN模型进行了比较,包括ResNet-152(He et al.。2016a)、SENET-152(胡、沈、孙2018)、ResNet-200(他等人。2016b)、ResNeXt(Xie et al.。2017)和DenseNet264(Huang等人。2017年)。这些CNN模型有更深更广的架构,它们的结果都是从原文中复制过来的。如表3所示,我们的ECA-Net50与ResNet-152相当,而ECA-Net101的性能优于SENET-152和ResNet-200,这表明我们的ECA-Net可以用更少的计算代价提高深度CNN的性能。同时,我们的ECA-Net101与ResNeXt-101相比具有很强的竞争力,而ResNeXt-101使用了更多的卷积滤波器和昂贵的分组卷积。此外,ECA-Net50与DenseNet-264相当,但模型复杂度较低。所有上述结果表明,我们的ECA-Net比最先进的CNN具有更好的性能,同时受益于更低的模型复杂度。请注意,我们的ECA还具有进一步改进比较的CNN模型的性能的巨大潜力。
Object Detection on MS COCO
在本小节中,我们使用Faster R-CNN (Ren et al. 2017)和Mask R-CNN (He et al. 2017)评估目标检测任务上的ECA-Net。这里,我们将ECA-Net与原始的ResNet和SENet进行比较。所有CNN模型首先在ImageNet上进行预训练,然后通过微调转移到MS COCO。
Comparisons using Faster R-CNN
我们使用Faster R-CNN作为基本检测器,使用50层和101层的ResNets以及FPN (Lin et al. 2017)作为骨干模型。如表4所示,无论是SE块还是我们的ECA模块的集成,都能明显提高目标检测性能。与此同时,ECA的ResNet-50和ResNet-101的AP表现分别比SE板块高出0.3%和0.7%。此外,ECA模块比SE模块具有更低的模型复杂度。值得一提的是,我们的ECA模块在通常难以探测的小目标上获得了更多的收益。
Comparisons using Mask R-CNN
我们进一步利用Mask R-CNN来验证我们的ECA-Net在目标检测任务上的有效性。如表4所示,我们的ECA模块在50层和101层设置下的AP分别比原始ResNet高出1.8%和1.9%。与此同时,ECA模块使用ResNet-50和ResNet-101分别比SE板块上涨0.3%和0.6%。表4的结果表明,我们的ECA模块可以很好地推广到目标检测,更适合检测小目标。
Instance Segmentation on MS COCO
最后,我们在MS COCO上使用Mask R-CNN给出了ECA模块的实例分割结果。与表5相比,ECA模块在原有ResNet的基础上取得了显著的进步,并且优于SE block,模型复杂度更低。这些结果验证了我们的ECA模块对各种任务具有良好的泛化能力。
在本文中,我们重点研究了具有低模型复杂度的深度神经网络的通道注意学习。为此,我们提出了一种新的高效通道注意模块(ECA),该模块通过快速一维卷积产生通道注意,其核大小可由通道维数的函数自适应确定。实验结果表明,我们的ECA是一个非常轻量级的即插即用块,可以改善各种深度CNN架构的性能,包括广泛使用的ResNets和轻量级的MobileNetV2。此外,我们的ECA-Net在目标检测和实例分割任务中表现出良好的泛化能力。未来,我们将在更多的CNN架构中采用ECA模块(如ResNeXt和Inception (Szegedy et al. 2016)),并进一步研究ECA与空间注意模块之间的相互作用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。