目录
引言
信道注意机制已被证明在提高深度卷积神经网络(CNNs)的性能方面具有巨大潜力
(1)
大多数现有的方法都致力于开发更复杂的注意力模块以获得更好的性能,这不可避免地增加了模型的复杂性
为了克服性能和复杂性权衡的矛盾,本文提出了一种高效通道注意力(ECA)模块,该模块只涉及少数参数,同时带来明显的性能增益。
通过剖析SENet中的通道注意力模块,避免降维对于学习通道注意力很重要,适当的跨通道交互可以在显著降低模型复杂性的同时保持性能。
(2)
提出了一种不降维的局部跨通道交互策略,该策略可以通过一维卷积有效地实现
此外,我们还开发了一种自适应选择一维卷积核大小的方法,以确定局部跨通道相互作用的覆盖范围。
模块对ResNet50主干的参数和计算量分别为80 vs. 24.37M和4.7e-4 GFLOPs vs. 3.86 GFLOPs,在Top-1精度方面性能提升超过2%。评估了我们的ECA模块,ResNets和MobileNetV2的主干
SENet: Jie Hu, Li Shen, and Gang Sun. Squeeze-and-excitation networks. In CVPR, 2018.
挤压和激励网络(SENet),它学习每个卷积块的通道注意力,为各种深度CNN架构带来清晰的性能增益,设置了挤压(即特征聚合)和激发(即特征重新校准)
(3)
以更高的模型复杂度为代价获得更好性能的方法不同,本文关注的是一个问题:一个模型能否以更有效的方式学习有效的通道注意力?
本文贡献
(1)剖析了SE块,并实证证明避免降维和适当的跨通道交互对于学习有效和高效的通道注意分别很重要
(2)提出了一种高效通道注意(ECA),尝试为深度cnn开发一种极轻量级的通道注意模块,该模块增加的模型复杂性很小,但有明显的改进
(3)在ImageNet-1K和MS COCO上的实验结果表明,该方法具有较低的模型复杂度,同时具有较好的性能
结论
(1)本文主要研究低模型复杂度深度cnn的有效信道注意学习问题
(2)提出了一种高效的通道注意(ECA)模块,该模块通过快速一维卷积产生通道注意,其核大小可以通过通道维数的非线性映射自适应确定。
(3)ECA是一个非常轻量级的即插即用模块
(4)可以提高各种深度CNN架构的性能,包括广泛使用的ResNets和轻量级的MobileNetV2
(5)我们的ECA-Net在目标检测和实例分割任务中表现出良好的泛化能力。
(6)未来,我们将把ECA模块应用到更多的CNN架构中(例如ResNeXt和Inception[31]),并进一步研究ECA与空间注意模块的结合。
介绍
比较以ResNets为骨干模型的各种注意力模块(SENet[14]、CBAM[33]、A2-Nets[4]和ECA-Net)在分类精度、网络参数和FLOPs(以圆半径表示)方面的差异。ECA-Net获得了更高的精度,同时具有更低的模型复杂性。【分类精度、网络参数和FLOPs(以圆半径表示)方面的差异】
通道注意力纳入卷积块引起了很多关注,在性能改进方面显示出巨大的潜力
一些研究通过捕捉更复杂的通道相关性[33,4,9,7]或通过与额外的空间注意力相结合[33,13,7]来改进SE块。
原始SENet的通道注意力方法存在的问题
SENet的通道注意力模块
给定输入特征
SE块首先独立地对每个信道使用全局平均池
然后使用具有非线性的两个全连接(FC)层(两个FC层被设计用于捕捉非线性跨通道交互,其中涉及降维以控制模型复杂性。)
然后使用Sigmoid函数来生成信道权重
将归一化权重和原输入特征图逐通道相乘,生成加权后的特征图
尽管这种策略在随后的渠道注意力模块中被广泛使用[33,13,9]
但实证研究表明,降维会对渠道注意力预测产生副作用,并且捕获所有渠道的依赖关系是低效且不必要的
本文提出的ECA块
该模块避免了降维,并以高效的方式捕捉跨通道交互
(1)在没有降维的信道全局平均池之后
(2)ECA通过考虑每个信道及其k个邻居来捕获局部跨信道交互
这种方法已被证明可以保证效率和有效性
ECA可以通过大小为k的快速1D卷积来有效地实现,其中内核大小k表示局部跨信道交互的覆盖范围,即有多少邻居参与一个信道的注意力预测
k不是手动调整,发了一种自适应确定k的方法,交互的覆盖范围(即内核大小k)与通道维度成正比
通道降维,跨通道交互,轻量级,进行对比
ECA模块通过避免通道降维来学习有效的通道注意力,同时以极轻量级的方式捕获跨通道交互
相关工作
注意力机制的发展方向
(1)增强特征聚合
(2)渠道和空间关注的结合
最新的相关模型
CBAM[33]同时使用平均池和最大池来实现特征提取
CBAM[33]和scSE[27]使用核大小为k × k的二维卷积计算空间注意力,然后将其与通道注意力结合
GSoP [9] 引入了二阶池化技术,以实现更有效的特征聚合。
GE[13]使用深度卷积[5]探索空间扩展来聚合特征
GCNet[2]与非局部神经网络(Non-Local neural networks, NL)有着相似的理念[32],它开发了一个简化的NL网络,并与SE块集成在一起,形成了一个轻量级模块来建模远程依赖关系
双注意网络(A2-Nets)[4]为用于图像或视频识别的NL块引入了一种新的关系函数。
双注意网络(Dual Attention Network, DAN)[7]同时考虑了基于自然语言的通道和空间注意进行语义分割
然而,大多数以上基于神经网络的注意力模块由于其高模型复杂性,只能用于单个或几个卷积块。
上述所有方法都侧重于开发复杂的注意力模块,以获得更好的表现。
我们的ECA旨在以较低的模型复杂度学习有效的渠道关注
模型结构
通过分析降维和跨信道交互的影响
SE Block的通道注意力机制
一个卷积块的输出为X ∈W、H、C分别为宽度、高度和通道尺寸
SE块中通道的权重
Xij是信道全局平均池化(GAP), σ是Sigmoid函数
令y = g(X)
W1和W2的大小分别设置为和
问题:
虽然降维可以降低模型复杂性,但它破坏了通道与其权重之间的直接对应关系。
例如,单个FC层使用所有信道的线性组合来预测每个信道的权重。但是Eq.(2)首先将通道特征投射到一个低维空间中,然后再将它们映射回来,使得通道与其权重之间的对应关系是间接的。
有效通道注意ECA Block
1 本章的对比结果表格
ps:在ImageNet上以ResNet-50为骨干模型的各种通道注意力模块的比较
y: 全局池化
GC:群卷积,划分通道组
C1D:1-D卷积
2 避免降维的重要性
(1)将原始SE块与其三个变体(即SE- var1, SE- var2和SEVar3)进行了比较
所有这些变体都不执行降维
(2)采用单个 FC 层的 SEVar3 在降维方面的表现优于采用两个 FC 层的 SEVar3
结论一:无参数的SE-Var1仍优于原始网络,说明信道关注具有提高深度cnn性能的能力。
结论二:通道和其权重需要直接对应,同时避免二元对立,比考虑非线性信道依赖性更重要。
结论三:单个FC层的SEVar3比采用两个FC层的SE Block性能更好
3 本地跨通道交互的重要性,分通道群卷积不有效
未降维的特征
通过(W是一个C × C参数矩阵)
(1)SE-Var2
W是一个对角矩阵
参数量为C
(2)SE-Var3
W是全矩阵
参数量C^2
区别:
SE-Var3考虑了跨通道交互,而SEVar2没有,因此SE-Var3的性能更好
SEVar3需要大量的参数,导致模型的高复杂性,特别是对于大通道数
结论一:跨渠道互动有利于渠道注意的学习
折中方案:
SE-Var2 和 SE-Var3 之间可能的折中方案是将 Wvar2 扩展为块对角矩阵:
方法:
通道划分为G组,每组包含C/G通道,并独立学习每组中的通道注意,以局部方式捕捉跨通道交互,所有参数量是
SE-Var2、SEVar3和WG分别可以看作是一个深度可分离卷积、一个FC层卷积和一个群卷积
群卷积的SE块(SE- GC):
用表示
群卷积的问题:
(1)过多的群卷积会增加内存访问成本,从而降低计算效率。
(2)如表所示,与 SE-Var2 相比,不同组别的 SE-GC 没有带来任何增益,这表明它不是一种有效的
(3)表明它不是捕捉局部跨信道相互作用的有效方案。原因可能是 SE-GC 完全摒弃了不同组间的依赖关系
4 本文的地跨通道交互的方法
探索了另一种捕获本地跨通道交互的方法,旨在保证效率和有效性。具体来说,我们使用一个频带矩阵Wk来学习频道注意力
参数量:Wk涉及k × C参数
(1)仅考虑yi与其k个邻居之间的相互作用
表示yi的k个相邻通道的集合
(2)更有效的方法是让所有通道共享相同的学习参数
这种策略可以很容易地通过核大小为k的快速1D卷积实现
方法由ECA (efficient channel attention)模块调用,该模块只涉及k个参数
对比
ECA-NS优于SE-GC(频带矩阵好于块矩阵)
KxC的卷积策略不如K=3的策略
k = 3的ECA模块获得了与SE-var3,同时具有更低的模型复杂性
通过适当捕获本地跨通道交互来保证效率和有效性
5 本地跨通道交互的覆盖范围,,自适应确定ECA参数的方法
ECA模块旨在适当地捕获局部跨通道相互作用,因此需要确定相互作用的覆盖范围(即1D卷积的核大小k)
(1)在不同的CNN体系结构中,可以针对不同频道数的卷积块手动调整优化后的交互覆盖,然而,通过交叉验证进行手动调优将消耗大量计算资源
(2)群卷积已被成功用于改进 CNN 架构 [36, 34, 16],其中高维(低维)信道涉及长程(短程)卷积组,秉承类似的理念,交互的覆盖范围(即一维卷积的核大小 k)与通道维度 C 成正比是合理的。
所有,存在:
对应关系
推导公式:
假设存在存在线性对应关系
众所周知,通道维度C(即滤波器的数量)通常被设置为2的幂:
推广为非线性函数来引入一种可能的解
结论:
给定通道维数C,内核大小k:
其中:表示t最接近的奇数
实验中:所有实验中分别将γ和b设为2和1
通过非线性映射的映射ψ,高维通道具有较长的距离相互作用,而低维通道具有较短的距离相互作用。
深度cnn的ECA Block与代码
ECA模块在不降维的情况下使用GAP对卷积特征进行聚合后,首先自适应确定核大小k,然后进行1D卷积,再进行Sigmoid函数学习通道关注
将ECA应用于深度CNN,我们按照SENet[14]论文中相同的配置用ECA模块替换SE块
由此产生的网络由ECA-Net命名,ECA的PyTorch代码
实验
数据集:
我们分别使用ImageNet[6]和MS COCO[23]对所提出的方法进行大规模图像分类、目标检测和实例分割。
过程
(1)首先评估内核大小对ECA模块的影响,并与ImageNet上最先进的对应模块进行比较
(2)使用Faster R-CNN[26]、Mask R-CNN[10]和RetinaNet[22]验证了ECA-Net在MS COCO上的有效性。
Faster R-CNN:
Shaoqing Ren, Kaiming He, Ross B. Girshick, and Jian Sun.
Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Trans. Pattern Anal. Mach.
Intell., 39(6):1137–1149, 2017.Mask R-CNN:
Kaiming He, Georgia Gkioxari, Piotr Dollar, and Ross B. ´
Girshick. Mask R-CNN. In ICCV, pages 2980–2988, 2017.RetinaNet:
Tsung-Yi Lin, Priya Goyal, Ross B. Girshick, Kaiming He,
and Piotr Dollar. Focal loss for dense object detection. In ´
ICCV, 2017.
实验细节
所有程序均在个人电脑配备了四个 RTX 2080Ti GPU 和英特尔(R)至强 Silver 4112 CPU@2.60GHz。
实验一:评估ECA-Net对ImageNet分类的影响
采用了四种广泛使用的cnn作为骨干模型,包括ResNet-50[11]、ResNet-101[11]、ResNet-512[11]和MobileNetV2[28]。对于使用ECA训练ResNets,我们采用了与[11,14]完全相同的数据增强和超参数设置。
(1)输入图像被随机裁剪为224×224,随机水平翻转。
(2)用随机梯度下降法(SGD)对网络参数进行优化,权重衰减为1e-4,动量为0.9,小批量大小为256
(3)初始学习率设置为0.1,在100个epoch内训练所有模型,每30个epoch降低10倍
(4)对于使用ECA训练MobileNetV2,遵循[28]中的设置,其中使用SGD在400 epoch内训练网络,权重衰减为4e-5,动量为0.9,小批量大小为96。初始学习率设置为0.045,并以0.98的线性衰减率降低。
实验二:在MS COCO上进一步评估
使用Faster R-CNN[26]、Mask R-CNN[10]和RetinaNet[22]对比,其中ResNet-50和ResNet-101以及FPN[21]被用作骨干模型。
(1)通过使用MMDetection工具包[3]实现所有检测器,并采用默认设置。具体来说,将输入图像的短边调整为800,然后使用SGD优化所有模型,权重衰减为1e-4,动量为0.9,mini-batch大小为8(4个GPU,每个GPU 2张图像)。
(2)学习率初始化为0.01,分别在8次和11次epoch后降低10倍。
(3)我们在COCO的train2017上训练了12个epoch内的所有检测器,并将结果报告在val2017上进行比较。
基于ImageNet-1K的图像分类、
(1)首先评估内核大小对ECA模块的影响,并验证方法自适应确定内核大小的有效性
(2)然后我们使用ResNet-50、ResNet-101、ResNet-152和MobileNetV2与最先进的同类模型和CNN模型进行比较
核尺寸(k)对ECA模块的影响
ECA模块涉及一个参数k,即1D卷积的核大小,评估了它对我们的ECA模块的影响,并验证了我们的方法自适应选择核大小的有效性。
(1)采用ResNet-50和ResNet-101作为骨干模型
(2)将k设为3 ~ 9,用我们的ECA模块进行训练。从中我们得到以下观察结果:
(1)当k在所有卷积块中固定时:
对于ResNet-50和ResNet-101,ECA模块分别在k = 9和k = 5时获得最佳结果
由于ResNet101有更多的中间层,这些中间层支配着ResNet-101的性能,所以它可能更喜欢小的内核大小。
(2)这些结果表明,不同深度cnn具有不同的最优k, k对ECA-Net的性能有明显的影响
(3)精度波动:
ResNet-101 的精度波动(∼0.5%)比 ResNet- 50 的准确度波动(∼0.15%)更大
我们推测其原因是较深的网络比较浅的网络对固定内核大小更敏感
(4)自适应确定的内核大小通常优于固定的内核大小
自适应核大小选择可以获得更好、更稳定的结果
(5)不同 k 数的 ECA 模块始终优于 SE 模块,验证了避免降维和局部跨信道交互对学习信道注意力的积极作用。
使用不同深度cnn的比较
关于ResNet-50, ResNet101和ResNet-152的结果证明了我们的ECA模块在广泛使用的ResNet架构上的有效性
1.ResNet-50
(1)ECA模块与ImageNet上使用ResNet-50的几种最先进的注意力方法进行了比较
(2)对比的模型:
SENet[14]、CBAM[33]、A2-Nets[4]、AA-Net[1]、GSoP-Net1[9]和GCNet[2]
(3)评估指标:
效率(即网络参数、每秒浮点运算(FLOPs)和训练/推理速度)
有效性(即Top-1/Top5的准确性)。
(4)为了测试各种模型的训练/推理速度,我们使用了公开的比较cnn模型,并在同一计算平台上运行它们
ps:由于 A2-Nets 和 AA-Net 的源代码和模型均未公开,我们不对其运行时间进行比较。
结论:
(1)ECA-Net与原始的ResNet-50具有几乎相同的模型复杂性(即网络参数,FLOPs和速度),同时在Top-1精度上获得2.28%的提升。
(2)与SENet、CBAM、A2-Nets、AA-Net、GSoP-Net1和GCNet等同类技术相比,ECA-Net在模型复杂度较低的同时,获得了更好的或具有竞争力的结果
2.ResNet-101
将ECA-Net与SENet[14]、CBAM[33]和AA-Net[1]进行了比较
结论:
(1)在几乎相同的模型复杂度下,ECA-Net比原始的ResNet-101性能高出1.8%
(2)优于SENet和CBAM,但与模型复杂度较低的AA-Net具有很强的竞争力。
3.ResNet-152
结论:
比较了ECA-Net与SENet[14]
(1)ECA-Net在几乎相同的模型复杂度下,在Top-1精度方面比原始ResNet-152提高了约1.3%
(2)与SENet相比,ECANet在Top-1方面实现了0.5%的增益,并且模型复杂度更低
4.MobileNetV2
验证了ECA模块在轻量级CNN架构上的有效性
采用MobileNetV2[28]作为主干模型
将SE块和ECA模块集成在卷积层中,SE块的参数r设为8。所有模型都使用完全相同的设置进行训练
结论:
(1)ECA-Net在Top-1精度方面分别提高了原始MobileNetV2和SENet约0.9%和0.14%。
(2)ECA-Net具有比SENet更小的模型尺寸和更快的训练/推理速度
与其他CNN模型的比较
将ECA-Net50和ECA-Net101与其他最先进的CNN模型进行了比较,包括ResNet-200[12]、Inception-v3[31]、ResNeXt[34]、DenseNet[15]
这些CNN模型具有更深入和更广泛的架构,其结果都是从原始论文中复制的。
结论:
(1)ECA-Net101优于ResNet-200,这表明我们的ECA-Net可以用更少的计算成本提高深度cnn的性能
(2)ECA-Net101与ResNeXt-101相比非常有争力,而后者使用了更多的卷积滤波器和昂贵的群卷积。
(3)ECA-Net50与DenseNet-264 (k=32)、DenseNet-161 (k=48)和Inception-v3相当,但其模型复杂度较低。
ECA-Net与最先进的cnn相比表现良好,同时受益于更低的模型复杂性
MS COCO上的目标检测
使用Faster R-CNN[26]、Mask R-CNN[10]和RetinaNet[22]来评估ECA-Net在目标检测任务上的性能
我们主要比较ECA-Net与ResNet和SENet
所有CNN模型在ImageNet上进行预训练,然后通过微调转移到MS COCO上
1.与Faster R-CNN比较
用50层和101层的ResNets以及FPN[21]作为骨干模型
如表5所示,无论是SE模块还是我们的ECA模块的集成,都可以明显提高目标检测的性能
我们的ECA在使用ResNet-50和ResNet-101的AP方面分别优于SE块0.3%和0.7%
2.与Mask R-CNN比较
Mask R-CNN 验证了 ECA-Net 在物体检测任务中的有效性
如表 5 所示,在 50 层和 101 层的设置下,ECA 模块的 AP 值分别比原始 ResNet 高出 1.8% 和 1.9%。同时,ECA 模块
模块比以 ResNet- 50 和 ResNet-101 为骨干的 SE 模块分别提高了 0.3% 和 0.6%
ResNet-50 和 ResNet-101 作为骨干模型时,ECA 模块分别比 SE 模块提高了 0.3% 和 0.6%
在使用 ResNet-50 时,ECA 优于一个 NL [32],在使用较低模型复杂度时,ECA 可与 GC 块 [2] 相媲美。
3.与RetinaNet比较
使用一级检测器(即RetinaNet)验证了ECA-Net在目标检测上的有效性
ECA-Net在50层和101层网络的AP方面分别比原始ResNet高出1.8%和1.4%
同时,ECANet比ResNet-50和ResNet-101分别提高了0.2%和0.4%
我们的ECA-Net可以很好地推广到目标检测任务。具体来说,ECA模块比原来的ResNet有了明显的改进,同时使用更低的模型复杂度优于SE模块。特别是,我们的ECA模块在小物体上获得了更多的收益,而小物体通常更难被检测到。
基于MS COCO的实例分割
MS COCO上使用Mask R-CNN给出ECA模块的实例分割结果
ECA模块比原始ResNet获得了显著的增益,同时比SE模块性能更好,模型复杂度更低。以ResNet-50为主干,模型复杂度较低的ECA优于NL[32],与GC块[2]相当。这些结果验证了我们的ECA模块对各种任务具有良好的泛化能力