美文网首页
ECA-Net: Efficient Channel Atten

ECA-Net: Efficient Channel Atten

作者: 晨光523152 | 来源:发表于2020-07-18 18:10 被阅读0次

这是发在 CVPR 2020 上的文章。

Abstract

最近,通道注意力机制被证明在提高深度CNNs表现上具有很高的前景。但是,大多数现有方法都致力于开发更复杂的注意力模块以实现更好的性能,这不可避免地会增加模型的复杂性。

为了平衡表现性和复杂性,这篇文章提出了一个有效的通道注意力模型(Efficient Channel Attention,ECA),它仅涉及少数几个参数,同时带来明显的性能提升。通过剖析SENet中的通道注意模块,我们从经验上表明避免降维对于学习通道注意很重要,并且适当的跨通道交互可以在保持性能的同时显着降低模型的复杂性。

因此,提出了一个没有降维的局部的跨通道交互策略,其可以通过1D卷积有效的实施。此外,开发了一种方法来自适应选择一维卷积的核大小,确定局部跨通道交互的覆盖范围。

1. Introduction

近来,将通道注意力纳入卷积块引起了广泛的兴趣,显示出在性能改进方面的巨大潜力。其中代表性的方法之一是 squeeze-and-excitation 网络(SENet),它可以学习每个卷积块的通道注意力,从而为各种深层的CNN架构带来明显的性能提升。

在SENet设置挤压(即特征聚合)和激励(即特征重新校准)之后,一些研究者通过捕获更复杂的成对依赖的通道或者是联合空间注意力来增强SE块。尽管这些方法获得了更高的准确率,但是他们往往带来了更复杂的模型,并且带来了更重的计算负担。

与前面提到的以更高的模型复杂度为代价来实现更好的性能的方法不同,本文重点关注的问题是:是否可以以一种更有效的方式来学习有效的渠道注意力?

为了回答这个问题,首先重新访问SENet中的通道关注模块。具体来说,给定输入功能,SE块首先为每个通道依赖采用全局平均池,然后是两个具有非线性的全连接(FC)层,然后是Sigmoid函数用于生成通道权重。这两个FC层被设计捕获非线性跨通道交互,其中涉及降维以控制模型复杂性。尽管这个策略被广泛使用,作者的经验研究认为降维为通道注意力带来了负面影响,并且它对捕获所以通道的依赖性来说不是有效也不是必要的。

因此,这篇文章提出了ECA,旨在以一个有效的方式来捕获跨通道交互并且避免降维。

如图2所示,没有降维,在对通道对进行全局平均池化之后,文章的ECA通过考虑每一个通道和其k邻居来捕获一个局部跨通道交互。

image.png

其中GAP是全局平均池化,把一个特征图求平均值,从一个H\times W\times C变成1\times 1\times C

注意到ECA能够通过核为k的快速1D卷积有效实现,其中k表示这个局部交叉跨通道交互的范围,即,多少邻居参与一个通道的注意力预测。为了避免通过交叉验证手动调整k,作者开发了一种自适应确定k的方法,其中交互作用的覆盖范围(即内核大小k)与通道成比例。

image.png image.png

如图1和表3所示,相对对于骨干模型,带有我们的ECA模块(称为ECA-Net)的深层CNN引入了很少的附加参数和可忽略的计算,同时带来了显着的性能提升。

例如,对于ResNet-50,24.37M参数和3.86 GFLOP,ECA-Net50的附加参数和计算分别为80和4.7e-4GFLOP;同时,在Top-1准确性方面,ECA-Net50优于ResNet-50 2.28%。

表1总结了现有的关注模块,包括渠道降维(DR),跨渠道互动和轻量级模型方面,可以看到,ECA模块通过避免渠道降维而捕获了有效的渠道关注,同时以极轻量的方式捕获了跨渠道互动方式。

这篇文章的贡献:

  • 剖析SE块,并凭经验证明避免尺寸减小和适当
    跨渠道互动对于有效学习非常重要和有效的渠道关注度。
  • 基于以上分析,尝试通过提出一种有效的通道注意(ECA)来为深层CNN开发一种极其轻量级的通道注意模块,该模块在提高模型复杂性的同时却带来了明显的改进。
  • 在ImageNet-1K和MS COCO上的实验结果表明,文章的方法具有较低的模型复杂度的同时实现非常有竞争力的性能的。

2. Related Work

注意力机制被证明是提高深度CNNs的一个方法。SENet首次提出了一种有效的机制来学习通道注意力并获得有希望的性能。

注意力机制能够被分为两个方向:

  • 增强特征聚合;
  • 通道和空间关注度的结合。
image.png

3. Proposed Method

3.1 Revisiting Channel Attention in SE Block

X\in R^{W\times H\times C}是一个卷积块的输出。

在SE块中,通道的权重计算方式是:


image.png

其中,g(X)=\frac{1}{WH}\sum_{i=1,j=1}^{W,H}X_{ij}是通道对的全局平均池化(GAP)并且\sigma是 Sigmoid 函数。

y=g(X),f_{w_{1},w_{2}}来自于

image.png

为了避免高的模型复杂性,W_{1},W_{2}的大小分别是C\times (\frac{C}{r})(\frac{C}{r})\times C。我们能够看见f_{W_{1},W_{2}}包含了所有参数。而等式(2)中的降维可以减少模型的复杂性,它破坏了通道与其权重之间的直接对应关系。

3.2. Efficient Channel Attention (ECA) Module

3.2.1 Avoiding Dimensionality Reduction

为了验证以上的分析,比较了原始SE具有三个变体(即SE-Var1,SE-Var2和SEVar3)的块,它们都不执行降维。

image.png

3.2.2. Local Cross-Channel Interaction

让这个增强的特征y\in R^{C}没有降维,通道特征能够被学习为:

image.png
其中。

特别地,对于SE-Var2以及SE-Vae3

image.png

这个主要不同在于,SE-Var3考虑道路跨通道交互,而SE-Var2没有,因此,SE-Var3的效果好。

这个结果说明了跨通道交互对于学习通道注意力有利。

然而SE-Var3要求的参数多,导致了高的复杂度。

SE-Var2和SE-Var3之间可能的折衷方案是将W_{var2}扩展到块对角矩阵,即把通道数变成G个图,每一个图包含C/G个通道数。

image.png

包含了C^{2}/G个参数。

SE-Var2,SE-Var3,公式5分别属于深度可分离卷积,FC,块卷积(group convolutions)。

然而,过多的快卷积会增加内存,访问成本,从而降低了计算效率。

在本文中,探索了另一种捕获本地跨渠道交互的方法,旨在保证效率和有效性。

具体来说,我们采用波段矩阵W_{k}来学习通道关注度,并且W_{k}

image.png
包含了个参数。
这个方法叫做。

至于式(6),仅通过考虑y_{i}与它的k个邻居之间的相互作用来计算y_{i}的权重,即

image.png

其中,Ωki表示yi的k个相邻通道的集合。

一个更有效的方法是让所有通道分享权重,

image.png
这个策略能被核为的快速1D卷积实现:
image.png

其中,C1D 指的是1D卷积。该方法只有k个参数。

3.2.3 Coverage of Local Cross-Channel Interaction

需要确定1D卷积核的大小k

通过交叉验证需要花费大量的计算资源。

块卷积已成功地用于改善CNN架构,在给定固定组数的情况下,高维(低维)通道涉及长距离(短程)卷积。

共享相似的原理,交互作用的覆盖范围(即一维卷积的内核大小k)与通道维C成正比是合理的。换句话说,存在一个在kC之间的映射\phi

image.png

最简单的映射是线性函数,也就是\phi(k)=r * k - b。但是线性函数有很多限制。另一方面,众所周知,信道尺寸C(即滤波器的数量)通常被设置为2的幂。因此:

image.png
那么为:
image.png

其中,|t|_{odd}表示与t最近的奇数。

在这篇文章中,r为2,b为1。

3.3. ECA Module for Deep CNNs

image.png

参考资料:
ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks

相关文章

网友评论

      本文标题:ECA-Net: Efficient Channel Atten

      本文链接:https://www.haomeiwen.com/subject/azxfkktx.html