【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet

ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks

  • 注意力机制早在上世纪九十年代就有研究,到2014年Volodymyr的《Recurrent Models of Visual Attention》一文中将其应用在视觉领域,后来伴随着2017年Ashish Vaswani的《Attention is all you need》中Transformer结构的提出,注意力机制在NLP,CV相关问题的网络设计上被广泛应用。

  • “注意力机制”实际上就是想将人的感知方式、注意力的行为应用在机器上,让机器学会去感知数据中的重要和不重要的部分。

  • 所谓的"注意力机制"也就是当机器在做一些任务,比如要识别下面这张图片是一个什么动物时,我们让机器也存在这样的一个注意力侧重,最重要该关注的地方就是图片中动物的面部特征,包括耳朵,眼睛,鼻子,嘴巴,而不用太关注背景的一些信息,核心的目的就在于希望机器能在很多的信息中注意到对当前任务更关键的信息,而对于其他的非关键信息就不需要太多的注意力侧重。

  • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第1张图片

  • 深度学习中的注意力机制通常可分为三类:软注意(全局注意)、硬注意(局部注意)和自注意(内注意)

    • Soft/Global Attention(软注意机制):对每个输入项的分配的权重为0-1之间,也就是某些部分关注的多一点,某些部分关注的少一点,因为对大部分信息都有考虑,但考虑程度不一样,所以相对来说计算量比较大。

    • Hard/Local Attention(硬注意机制):对每个输入项分配的权重非0即1,和软注意不同,硬注意机制只考虑那部分需要关注,哪部分不关注,也就是直接舍弃掉一些不相关项。优势在于可以减少一定的时间和计算成本,但有可能丢失掉一些本应该注意的信息。

    • Self/Intra Attention(自注意力机制):对每个输入项分配的权重取决于输入项之间的相互作用,即通过输入项内部的"表决"来决定应该关注哪些输入项。和前两种相比,在处理很长的输入时,具有并行计算的优势。

  • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第2张图片

  • 多头自注意力机制

    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第3张图片

下面有是一篇关于CVPR2020卷积注意机制的论文阅读记录

Abstract

  • 最近,通道注意机制被证明在提高深度卷积神经网络(CNN)的性能方面具有很大的潜力。然而,大多数现有的方法致力于开发更复杂的注意力模块以实现更好的性能,这不可避免地增加了模型的复杂性。
  • 为了克服性能和复杂性之间的矛盾,本文提出了一个高效通道注意(ECA)模块,它只涉及少数几个参数,同时带来明显的性能增益。通过剖析SENet中的通道注意模块,本文实证表明避免降维对学习通道注意很重要,而适当的跨通道交互可以保持性能,同时显著降低模型复杂性。
  • 因此,本文提出了一种无需降维的局部跨通道交互策略,它可以通过一维卷积有效地实现。此外,本文开发了一种自适应选择一维卷积核大小的方法,以确定局部跨通道交互的覆盖范围。本文提出的ECA模块是高效的,例如,本文的模块与ResNet50的骨干模块相比,参数和计算量分别为80对24.37M,4.7e-4 GFLOPs对3.86 GFLOPs,在Top-1的准确性方面,性能提升超过了2%。
  • 对本文的ECA模块进行了广泛的评估,包括图像分类、对象检测和实例分割,并以ResNets和MobileNetV2为骨干。实验结果表明,本文的模块效率更高,同时在性能上优于同类产品。
  • 论文地址:[1910.03151] ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks (arxiv.org)
  • CVPR2020上对通道注意力进行改进的文章—ECANet,ECANet主要对SENet模块进行了一些改进,提出了一种不降维的局部跨信道交互策略(ECA模块)和自适应选择一维卷积核大小的方法,从而实现了性能上的提优。最近已经有很多文章在通道和空间注意力上做改进并取得了性能提升。

Introduction

  • 深度卷积神经网络(CNN)在计算机视觉界得到了广泛的应用,并在图像分类、物体检测和语义分割等广泛的任务中取得了巨大的进展。从开创性的AlexNet开始,许多研究都在不断研究以进一步提高深度CNN的性能[VGG, GoogLenet, ResNet, DenseNe,Non-local neural networks]。

  • 将通道注意力纳入卷积块引起了很多人的兴趣,在性能改进方面显示出巨大的潜力[Squeeze-and-excitation networks, Gather-excite, A2-Nets: Double attention networks, Dual attention network for scene segmentation, Channel locality block, Global second-order pooling convolutional networks]。

  • 其中一个代表性的方法是挤压和激发网络(SENet),它为每个卷积块学习通道注意力,为各种深度CNN架构带来明显的性能增益。

  • 在SENet中设置了挤压(即特征聚集)和激发(即特征重新校准)后,一些研究通过捕捉更复杂的通道间依赖关系或与额外的空间注意力相结合来改进SE块。

  • 尽管这些方法取得了更高的精度,但它们往往带来了更高的模型复杂性,并承受着更重的计算负担。与上述以更高的模型复杂性为代价获得更好的性能的方法不同,本文反而关注一个问题。能否以一种更有效的方式学习有效的通道注意

  • 为了回答这个问题,本文首先重新审视SENet中的通道注意模块。具体来说,给定输入特征后,SE模块首先对每个通道独立采用全局平均池,然后用两个全连接(FC)层,用非线性和Sigmoid函数来生成通道权重。这两个FC层的设计是为了捕捉非线性的跨通道互动,这涉及到控制模型复杂性的降维

  • 虽然这种策略在后续的通道注意力模块中被广泛使用[CBAM],但本文的经验研究表明,降维对通道注意力的预测带来了副作用,而且捕捉所有通道的依赖关系是低效和不必要的

  • 因此,本文提出了一个用于深度CNN的高效通道关注(ECA)模块,它避免了降维,并以一种有效的方式捕获跨通道的互动。如下图所示,在不降维的情况下进行通道全局平均池化后,本文的ECA通过考虑每个通道和它的k近邻来捕捉局部的跨通道互动。

    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第4张图片

    • 本文的高效通道关注(ECA)模块图。鉴于通过全局平均池(GAP)获得的聚合特征,ECA通过执行大小为k的快速一维卷积来生成通道权重,其中k是通过通道维度C的映射自适应确定的。

  • 事实证明,这种方法既能保证效率又能保证效果。请注意,本文的ECA可以通过大小为k的快速一维卷积来有效实现,其中内核大小k代表本地跨通道交互的覆盖率,即有多少个近邻参与到一个通道的关注预测中。为了避免通过交叉验证手动调整k,本文开发了一种方法来适应性地确定k,其中互动的覆盖率(即内核大小k)与通道维度成正比。

  • 如下图,与骨干模型[ResNet]相比,带有本文的ECA模块(称为ECA-Net)的深度CNN引入了非常少的额外参数和可以忽略的计算,同时带来了显著的性能提升。例如,对于具有2437万个参数和3.86GFLOPs的ResNet-50来说,ECA-Net50的额外参数和计算量分别为80和4.7e4 GFLOPs;同时,ECA-Net50在Top-1准确度方面比ResNet-50高出2.28%。

    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第5张图片

    • 使用ResNets作为骨干模型的各种注意力模块(即SENet、CBAM、A2-Nets和ECA-Net)在分类精度、网络参数和FLOPs方面的比较,用圆圈的辐射表示。请注意,本文的ECA-Net获得了更高的准确性,同时具有较低的模型复杂性。

  • 下表总结了现有的注意力模块是否进行了通道降维(DR)、跨通道交互和轻量级模型,在这里可以看到,本文的ECA模块通过避免通道降维来学习有效的通道注意力,同时以极其轻量级的方式捕获跨通道交互。为了评估本文的方法,本文在ImageNet-1K和MS COCO上使用不同的深度CNN架构进行了各种任务的实验。

    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第6张图片

    • 比较现有的注意力模块是否没有通道降维(No DR)、跨通道互动和比SE少的参数(用轻量级表示)。

  • 本文的贡献总结如下。

    • (1) 本文剖析了SE块,并通过实验证明避免降维和适当的跨通道交互对学习有效和高效的通道注意分别很重要
    • (2) 基于以上分析,本文尝试为深度CNN开发一个极其轻量级的通道注意模块,提出了高效通道注意(ECA),在带来明显改进的同时,增加了很少的模型复杂性。
    • (3) 在ImageNet-1K和MS COCO上的实验结果表明,本文的方法比最先进的方法具有更低的模型复杂性,同时取得了非常有竞争力的性能。

Related Work

  • 事实证明,注意力机制是增强深度CNN的一个潜在手段。SE-Net首次提出了一种学习通道注意力的有效机制,并取得了可喜的成绩。随后,注意力模块的发展可以大致分为两个方向:
    • (1)增强特征聚合;
    • (2)结合通道和空间注意力。
  • 具体来说,CBAM采用了平均和最大池化两种方式来聚合特征。
  • GSoP引入了一个二阶池化,以实现更有效的特征聚合。GE探索了使用深度卷积来聚合特征的空间扩展。CBAM和scSE使用内核大小为k×k的二维卷积计算空间注意力,然后将其与通道注意力相结合。GCNet与Non-Local(NL)神经网络有着相似的理念,开发了一个简化的NL网络,并与SE块集成,形成了一个轻量级的模块来模拟长距离的依赖性。双重注意网络(A2-Nets)为图像或视频识别的NL块引入了一个新颖的关系函数。双重注意力网络(DAN)同时考虑基于NL的通道和空间注意力,用于语义分割。
  • 然而,上述大多数基于NL的注意力模块由于其较高的模型复杂性,只能用于单个或几个卷积块。显然,上述所有的方法都侧重于开发复杂的注意力模块以获得更好的性能。与它们不同的是,本文的ECA旨在以低模型复杂度学习有效的通道注意
  • 本文的工作也与 efficient convolutions有关,它是为轻量级CNN设计的。两个广泛使用的高效卷积是分组卷积[Interleaved group convolutions, Aggregated residual transformations for deep neural networks, Deep roots: Improving cnn efficiency with hierarchical filter groups]和深度可分离卷积[Xception, Mobilenetv2, ShufflenetV1, V2]。
  • 如下表所示,尽管这些高效的卷积涉及的参数较少,但它们在注意力模块中显示出的效果不大。
    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第7张图片

    • 在ImageNet上使用ResNet-50作为主干模型比较各种通道注意模块。#.Param:表示频道注意模块的参数数, ⊙ \odot :表示element-wise乘积;GC和C1D分别表示群卷积和1D卷积;k是C1D的内核大小。

  • 本文的ECA模块旨在捕捉局部跨通道的交互作用,这与通道局部卷积[Improving the efficiency of convolutional neural network using channel local convolutions]和通道明智卷积[Channelnets]有一些相似之处;与它们不同的是,本文的方法研究了一个具有自适应核大小的一维卷积来取代通道注意模块中的FC层。与分组和深度可分离卷积相比,本文的方法以较低的模型复杂度实现了更好的性能。

Proposed Method

  • 在本节中,首先重温了SENet中的通道关注模块(即SE块)。然后,通过分析降维和跨通道交互的影响,对SE模块进行实验诊断。这促使本文提出ECA模块。此外,本文开发了一种方法来自适应地确定本文的ECA参数,并最终展示了如何将其用于深度CNN。

Revisiting Channel Attention in SE Block

  • 让一个卷积块的输出为 X ∈ R W × H × C X∈\Bbb R^{W×H×C} XRW×H×C,其中W、H和C是宽度、高度和通道尺寸(即滤波器的数量)。据此,SE块中的通道权重可以计算为

    • w = σ ( f { W 1 , W 2 } ( g ( X ) ) ) , ( 1 ) w=σ(f_{\{W_1,W_2\}}(g(\mathcal{X}))),(1) w=σ(f{W1,W2}(g(X))),(1)

    • 其中 g ( X ) = 1 W H ∑ i = 1 , j = 1 W , H X i j g(\mathcal{X})=\frac{1}{WH}\sum_{i=1,j=1}^{W,H}\mathcal{X}_{ij} g(X)=WH1i=1,j=1W,HXij是逐通道的全局平均池化(GAP),σ是一个Sigmoid函数。

    • 令 y = g ( X ) , f { W 1 , W 2 } 的形式为 f { W 1 , W 2 } ( y ) = W 2 R e L U ( W 1 y ) , ( 2 ) 令 y=g(\mathcal{X}),f_{\{W_1,W_2\}}的形式为f_{\{W_1,W_2\}}(y)=W_2ReLU(W_1y),(2) y=g(X),f{W1,W2}的形式为f{W1,W2}(y)=W2ReLU(W1y),(2)

    • 其中ReLU表示整流线性单元。为了避免模型的高复杂性,W1和W2的大小分别被设定为 C × ( C r ) C×( \frac Cr) C×(rC) ( C r ) × C ( \frac C r )×C (rC)×C。可以看到, f { W 1 , W 2 } f_{\{W_1,W_2\}} f{W1,W2}涉及通道注意块的所有参数。虽然公式(2)中的降维可以降低模型的复杂性,但它破坏了通道和其权重之间的直接对应关系。例如,一个单一的FC层使用所有通道的线性组合来预测每个通道的权重。但公式(2)首先将通道特征投射到一个低维空间,然后再将其映射回来,使得通道和其权重之间的对应关系是间接的

Efficient Channel Attention (ECA) Module

  • 在重新审视了SE块之后,本文进行了实验比较,以分析通道降维和跨通道互动对通道注意力学习的影响。根据这些分析,提出了本文的高效通道注意(ECA)模块。

A voiding Dimensionality Reduction

  • 如上所述,公式(2)中的降维使得通道和其权重之间的对应关系是间接的。为了验证其效果,本文将原始的SE块与它的三个变体(即SE-Var1、SE-Var2和SE-Var3)进行比较,它们都不进行降维。
  • 如上表所示,没有参数的SE-Var1仍然优于原始网络,表明通道注意力有能力提高深度CNN的性能。同时,SE-Var2独立学习每个通道的权重,在涉及较少参数的情况下,略优于SE块。这可能表明,通道和它的权重需要直接对应,而避免降维比考虑非线性通道依赖性更重要。此外,SE-Var3采用一个单一的FC层比两个FC层在SE块中的降维表现更好。
  • 所有上述结果清楚地表明,避免降维有助于学习有效的信道注意力。因此,本文开发了没有通道降维的ECA模块。

Local Cross-Channel Interaction

  • 鉴于聚合的特征 y ∈ R C y∈\Bbb R^C yRC没有降维,通道注意力可以通过以下方式学习

    • w = σ ( W y ) , ( 3 ) w=σ(Wy),(3) w=σ(Wy)(3)

    • 其中W是一个C×C的参数矩阵。特别是,对于SE-Var2和SE-Var3,有

    • w = w= w=

    • 其中SE-Var2的Wvar2是一个对角矩阵,涉及C个参数;SE-Var3的Wvar3是一个全矩阵,涉及C×C个参数。如公式(4)所示,关键的区别是SE-Var3考虑了跨渠道互动,而SEVar2没有,因此SE-Var3取得了更好的性能。这一结果表明,跨频道互动有利于学习频道注意力。然而,SEVar3需要大量的参数,导致模型的复杂性很高,特别是对于大的通道数量。

  • SE-Var2和SE-Var3之间的一个可能的折衷办法是将Wvar2扩展为一个块状对角线矩阵,即:

    • Ω w i = σ ( ∑ j = 1 k w i j y i j ) , y i j ∈ Ω i k , ( 7 ) Ωw_i=σ(\sum_{j=1}^kw_i^jy_i^j),y_i^j\inΩ_i^k,(7) wi=σ(j=1kwijyij),yijik,(7)

    • 其中 Ω i k Ω^k_i Ωik表示yi的k个相邻通道的集合。

  • 一个更有效的方法是使所有通道共享相同的学习参数,即:

    • Ω w i = σ ( ∑ j = 1 k w j y i j ) , y i j ∈ Ω i k , ( 8 ) Ωw_i=σ(\sum_{j=1}^kw^jy_i^j),y_i^j\inΩ_i^k,(8) wi=σ(j=1kwjyij),yijik,(8)

    • 请注意,这种策略可以很容易地通过内核大小为k的快速一维卷积来实现,即:

    • w = σ ( C 1 D k ( y ) ) , ( 9 ) w=σ(C1D_k(y)),(9) w=σ(C1Dk(y))(9)

    • 其中C1D表示一维卷积。这里,公式(9)中的方法被称为高效信道关注(ECA)模块,它只涉及k个参数。本文的ECA模块在k=3的情况下取得了与SE-var3相似的结果,同时模型的复杂度要低得多,通过适当地捕捉局部跨信道的互动,保证了效率和效果。

Coverage of Local Cross-Channel Interaction

  • 由于本文的ECA模块旨在适当地捕捉局部的跨通道交互,所以需要确定交互的覆盖范围(即1D卷积的核大小k)。对于各种CNN结构中具有不同通道数的卷积块,可以手动调整优化的交互覆盖率。然而,通过交叉验证进行手动调整将花费大量的计算资源。

  • 组卷积已经成功地被采用来改进CNN架构,在组数固定的情况下,高维(低维)通道涉及长距离(短距离)卷积。分享类似的理念,互动的覆盖率(即一维卷积的核大小)与通道维度C成正比是合理的。 换句话说,在k和C之间可能存在一个映射φ。

    • C = ϕ ( k ) , ( 10 ) C=\phi(k),(10) C=ϕ(k),(10)

    • 最简单的映射是一个线性函数,即φ(k) = γ ∗ k - b。然而,线性函数所描述的关系太有限了。另一方面,众所周知,信道维度C(即滤波器的数量)通常被设定为2的幂。因此,本文引入一个可能的解决方案,将线性函数φ(k)=γ ∗ k - b扩展为非线性函数,即:

    • C = ϕ ( k ) = 2 ( γ ∗ k − b ) , ( 11 ) C=\phi(k)=2^{(\gamma*k-b)},(11) C=ϕ(k)=2(γkb),(11)

  • 然后,给定信道维度C,内核大小k可以通过以下方式自适应确定

    • KaTeX parse error: Undefined control sequence: \var at position 4: k=\̲v̲a̲r̲ ̲

    • 其中 ∣ t ∣ o d d |t|_{odd} todd表示为最近的奇数t个对象。在本文中,将γ和b分别设置为2和1,贯穿所有实验。显然,通过映射ψ,高维通道有较长的范围互动,而低维通道通过使用非线性映射发生较短的范围互动。

ECA Module for Deep CNNs

  • 在使用GAP聚合卷积特征而不降维后,ECA模块首先自适应地确定核大小k,然后执行一维卷积,接着使用Sigmoid函数来学习通道注意力。为了将本文的ECA应用于深度CNN,本文按照[SEnet]中的相同配置,用本文的ECA模块取代SE块。由此产生的网络被命名为ECA-Net。下图给出了我们ECA的PyTorch代码。
    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第8张图片

    • PyTorch code of our ECA module.

Experiments

  • 在这一节中,本文分别使用ImageNet和MS COCO对所提出的方法在大规模图像分类、物体检测和实例分割上进行评估。具体来说,本文首先评估了内核大小对我们ECA模块的影响,并与ImageNet上最先进的对应模块进行比较。然后,本文使用Faster R-CNN、Mask R-CNN和RetinaNet验证本文的ECA-Net在MS COCO上的有效性。

Implementation Details

  • 为了在ImageNet分类上评估本文的ECA-Net,本文采用了四种广泛使用的CNN作为主干模型,包括ResNet-50 、ResNet-101、ResNet-512和MobileNetV2。
  • 对于ECA的训练结果,本文采用了[Deep residual learning for image recognition,SEnet]中完全相同的数据扩充和超参数设置。具体来说,输入图像通过随机水平翻转被随机裁剪为224×224。网络的参数通过随机梯度下降(SGD)进行优化,权重衰减为1e-4,动量为0.9,小批量大小为256。所有的模型都是在100个epoch内通过设置初始学习率为0.1,每30个epoch减少10个系数来训练的。
  • 对于用本文的ECA训练MobileNetV2,本文遵循[MobileNetV2]中的设置,在400个epoch内用SGD训练网络,权重衰减为4e-5,动量为0.9,小批量大小为96。初始学习率被设定为0.045,并通过0.98的线性衰减率来降低。为了在验证集上进行测试,输入图像的短边首先被调整为256,并使用224×224的中心裁剪进行评估。所有的模型都是由PyTorch工具箱实现的。
  • 本文使用Faster R-CNN、Mask R-CNN[10]和RetinaNet在MS COCO上进一步评估本文的方法,其中ResNet-50和ResNet-101以及FPN被用作骨干模型。
  • 通过使用MMDetection工具包实现所有检测器,并采用默认设置。具体来说,输入图像的短边被调整为800,然后使用SGD优化所有模型,权重衰减为1e-4,动量为0.9,小批量大小为8(4个GPU,每个GPU有2张图像)。学习率初始化为0.01,并在8和11个epoch后分别降低10倍。
  • 本文在COCO的train2017上训练12个epoch内的所有检测器,并在val2017上报告结果以进行比较。所有程序都在配备有四个RTX 2080Ti GPU和一个Intel® Xeon Silver 4112 [email protected] 的PC上运行。

Image Classification on ImageNet-1K

  • 在这里,本文首先评估核大小对ECA模块的影响,并验证本文的方法自适应地确定核大小的有效性,然后使用ResNet-50、ResNet-101、ResNet-152和MobileNetV2与最先进的同行和CNN模型进行比较。

Effect of Kernel Size (k) on ECA Module

  • 如等式(9)所示。本文的ECA模块涉及一个参数k,即1D卷积的核大小。在这一部分中,本文评估了它对ECA模块的影响,并验证了本文的方法对于自适应选择核大小的有效性。为此,本文采用ResNet-50和ResNet-101作为骨干模型,并通过将k 设置为3到9来用本文的ECA模块训练它们。结果如下图所示,从中得到了以下观察结果:
    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第9张图片

    • 本文的ECA模块使用ResNet-50和ResNet-101作为主干模型,具有不同的k数。这里,本文也给出了自适应选择核大小的ECA模块的结果,并与SENet作为基线进行了比较。

  • 首先,当k在所有卷积块中固定时,ECA模块对于ResNet-50和ResNet-101分别在k = 9和k = 5时获得最佳结果。由于ResNet101有更多控制ResNet-101性能的中间层,因此它可能更喜欢较小的内核大小。此外,这些结果表明,不同的深度细胞神经网络有不同的最佳k值,k值对ECA-Net的性能有明显的影响
  • 此外,ResNet-101的精度波动(∼0.5%)大于ResNet50的精度波动(∼0.15%),本文推测这是因为较深的网络比较浅的网络对固定的核大小更敏感。此外,由等式(12)自适应确定的内核大小。通常优于固定的,同时它可以避免通过交叉验证手动调整参数k。以上结果证明了本文的自适应核大小选择在获得更好和稳定的结果方面的有效性。
  • 最后,具有不同数量k的ECA模块始终优于SE块,验证了避免降维和局部跨通道交互对学习通道注意具有积极影响。

Comparisons Using Different Deep CNNs

  • ResNet-50:本文在ImageNet上使用ResNet-50将本文的ECA模块与几种最先进的注意力方法进行了比较,包括SENet、CBAM 、A2-Nets、AA-Net、GSoP-Net1和GCNet。评估指标包括效率(即,网络参数、每秒浮点运算(FLOPs)和训练/推理速度)和有效性(即,前1/前5的准确性)。

  • 为了比较,本文复制了ResNet和SENet在[senet]中的结果,并在他们的原始论文中报告了其他比较方法的结果。为了测试各种模型的训练/推理速度,本文采用公开可用的比较CNN模型,并在相同的计算平台上运行它们。

  • 结果如下表所示,从中可以看出,本文的ECA-Net与原始ResNet-50具有几乎相同的模型复杂性(即网络参数、FLOPs和速度),而Top-1精度提高了2.28%。与最先进的同类产品(即SENet、CBAM、A2-Nets、AA-Net、GSoP-Net1和GCNet)相比,ECA-Net获得了更好或更具竞争力的结果,同时有利于降低模型复杂性。

    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第10张图片

    • ImageNet上不同注意力方法在网络参数(#.Param .)、每秒浮点运算(FLOPs)、训练或推理速度(每秒帧数,FPS)以及Top-1/Top-5准确度(以%为单位)方面的比较。†:由于A2-Net和AA-Net的源代码和模型不公开,因此不比较它们的运行时间。♦:AA-Net使用初始数据扩充和不同的学习率设置进行训练。

  • ResNet-101:使用ResNet-101作为主干模型,将本文的ECA-Net与SENet、CBAM 和AA-Net进行了比较。从上表中可以看到,ECA-Net在几乎相同的模型复杂度下,性能比原始的ResNet-101高1.8%。在ResNet-50上,ECA-Net也有相同的趋势,但它优于SENet和CBAM,而在模型复杂度较低的情况下,它与AA-Net非常有竞争力。注意,AA-Net是用初始数据扩充和不同的学习率设置来训练的

  • ResNet-152:使用ResNet-152作为主干模型,将本文的ECA-Net与SENet进行比较。从上表中可以看出,ECA-Net在Top-1精度方面比原始ResNet-152提高了约1.3%,而模型复杂度几乎相同。与SENet相比,ECANet以较低的模型复杂度获得了0.5%的Top-1增益。关于ResNet-50、ResNet101和ResNet-152的结果证明了本文的ECA模块在广泛使用的ResNet架构上的有效性。

  • 除了ResNet架构,本文还在轻量级CNN架构上验证了ECA模块的有效性。为此,本文采用MobileNetV2 作为主干模型,并将本文的ECA模块与SE块进行比较。特别地,本文在残差连接位于MobileNetV2的每个“瓶颈”之前在卷积层中集成SE块和ECA模块,并且SE块的参数r被设置为8。所有模型都使用完全相同的设置进行训练。上表中的结果显示,本文的ECA-Net在Top-1准确性方面分别将原始MobileNetV2和SENet提高了约0.9%和0.14%。

  • 此外,本文的ECA-Net比SENet具有更小的模型规模和更快的训练/推理速度。以上结果再次验证了ECA模块的效率和有效性。

Comparisons with Other CNN Models

  • 在这一部分的最后,本文将ECA-Net50和ECA-Net101与其他最先进的CNN模型进行了比较,包括ResNet-200 、Inception-v3 、ResNeXt 、DenseNet。这些CNN模型具有更深更广的架构,它们的结果都是从原始论文中复制的。如下表所示,ECA-Net101优于ResNet-200,表明本文的ECA-Net可以使用少得多的计算成本来提高深度CNN的性能。

    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第11张图片

    • Comparisons with state-of-the-art CNNs on ImageNet.

  • 同时,本文的ECA-Net101与ResNeXt-101相比非常有竞争力,而后者使用了更多的卷积滤波器和昂贵的组卷积。此外,ECA-Net50与DenseNet-264 (k=32)、DenseNet-161 (k=48)和Inception-v3相当,但其模型复杂度更低。所有上述结果表明,本文的ECA-Net性能优于最先进的CNN,同时受益于低得多的模型复杂度。请注意,本文的ECA也有很大的潜力来进一步提高比较CNN模型的性能。

Object Detection on MS COCO

  • 在这一小节中,本文使用faster R-CNN 、Mask R-CNN 和RetinaNet来评估本文的ECA-Net在对象检测任务上的性能。本文主要将ECA-Net与ResNet和SENet进行比较。所有CNN模型都在ImageNet上进行预训练,然后通过微调转移到MS COCO。

Comparisons Using Faster R-CNN

  • 使用faster R-CNN作为基本检测器,本文使用50和101层的ResNets以及FPN 作为主干模型。如下表所示,SE模块或ECA模块的集成可以显著提高目标检测的性能。同时,在使用ResNet-50和ResNet-101的AP方面,本文的ECA分别优于SE block 0.3%和0.7%。
    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第12张图片

    • Object detection results of different methods on COCO val2017.

Comparisons Using Mask R-CNN

  • 本文进一步利用Mask R-CNN来验证ECA-Net在目标检测任务上的有效性。如上表所示,在50层和101层的设置下,本文的ECA模块在AP方面分别优于原始ResNet 1.8%和1.9%。同时,使用ResNet50和ResNet-101作为主干模型,ECA模块分别比SE模块获得0.3%和0.6%的增益。使用ResNet-50,ECA优于一个NL ,并且与使用较低模型复杂性的GC块相当

Comparisons Using RetinaNet

  • 此外,本文使用一级检测器,即RetinaNet,验证了本文的ECA-Net在对象检测上的有效性。如上表所示,在50层和101层网络的AP方面,本文的ECA-Net分别比原始ResNet高出1.8%和1.4%。
  • 同时,ECANet对ResNet-50和ResNet-101的SE-Net分别提高了0.2%和0.4%以上。总之,上表中的结果表明,本文的ECA-Net可以很好地推广到对象检测任务。具体来说,ECA模块带来了对原始ResNet的明显改进,同时使用较低的模型复杂性胜过SE块。特别是,本文的ECA模块对小物体实现了更大的增益,这些小物体通常更难被检测到。

Instance Segmentation on MS COCO

  • 然后,在MS COCO上给出了本文的ECA模块使用Mask R-CNN的实例分割结果。如下表所示,ECA模块与原始ResNet相比获得了显著的增益,同时性能优于SE模块,且模型复杂度较低。对于作为主干的ResNet-50,模型复杂度较低的ECA优于NL,与GC block 相当。这些结果验证了ECA模块对各种任务具有良好的泛化能力。
    • 【读点论文】ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks改进senet_第13张图片

    • COCO val2017上使用Mask R-CNN的不同方法的实例分割结果。

Conclusion

  • 在本文中,本文致力于研究低模型复杂度的深度细胞神经网络的有效通道注意。为此,本文提出了一种高效的信道注意(ECA)模块,该模块通过快速1D卷积产生信道注意,其核大小可以通过信道维度的非线性映射来自适应地确定。
  • 实验结果表明,本文的ECA是一个极其轻量级的即插即用模块,可以提高各种深度CNN架构的性能,包括广泛使用的ResNets和轻量级MobileNetV2。此外,本文的ECA-Net在对象检测和实例分割任务中表现出良好的泛化能力。未来,本文将把ECA模块应用于更多的CNN架构(例如,ResNeXt和Inception ),并进一步研究ECA与空间注意模块的结合

你可能感兴趣的:(论文笔记,深度学习,pytorch,人工智能,注意力机制,tricks)