轻量模块注意力机制ECA-Net(注意力模块+一维卷积)


文章目录

  • ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks(2020)
    • 注意力模块比较
    • ECA模块
      • Avoiding Dimensionality Reduction(避免维度减少)
      • Local Cross-Channel Interaction(局部跨通道交互)
      • Coverage of Local Cross-Channel Interaction(局部跨通道交互覆盖)
        • ECA模块的k如何取值?
      • 实验结果
    • 实验结果
    • 总结
    • 代码

ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks(2020) 注意力模块比较 轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

纵坐标为准确性,横坐标为模型参数量(复杂度)。
ECA模块 【轻量模块注意力机制ECA-Net(注意力模块+一维卷积)】轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

Avoiding Dimensionality Reduction(避免维度减少)
SE-Net
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

SE模块的通道注意力通过下式计算:
ω = σ ( f { W 1 , W 2 } ( g ( χ ) ) ) \omega = \sigma(f_{\{W_1,W_2\}}(g(\chi))) ω=σ(f{W1?,W2?}?(g(χ))),
其中, g ( χ ) = 1 W H ∑ i = 1 , j = 1 W , H χ i j g(\chi) = \frac{1}{WH}\sum^{W,H}_{i=1,j=1}\chi_{ij} g(χ)=WH1?∑i=1,j=1W,H?χij?为全局平均池化函数, σ \sigma σ为Sigmoid函数。
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

在SE-Net中,通道注意力模块通过公式(2)进行降维(简单来说,就是SE-Net模块中的全连接层),这样让通道和权值之间没有直接联系。下表中的SE-Var1(无参数)、SE-Var2(独立学习各通道的权重)、SE-Var3(采用一个FC)均为不降维的变形,表中结果清楚的表明,避免降维的作用。
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

Local Cross-Channel Interaction(局部跨通道交互)
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

对于SE-Var2、SE-Var3,权重式:
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

两者之间区别在于,SE-Var3考虑了不同通道之间的交互,SE-Var2则没有;但是SE-Var3的需要大量参数,这样复杂性较高。
SE-Var2+SE-Var3 → \to →块对角矩阵。
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

每个组包括 C G \frac{C}{G} GC?个通道,有 C 2 G \frac{C^2}{G} GC2?个参数。然而,由上表可以看出,这样做并没有给SE-Var2带来增益,表明它不能捕获局部通道之间的相互作用,而且过多的组卷及将层架内存访问成本,从而降低计算效率。
ECA-Net中利用矩阵如下 W k W_k Wk?,来学习通道注意力:
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

W k W_k Wk?由 k ? C k*C k?C个参数,小于 W G W_G WG?, W k W_k Wk?避免了不同通道之间完全独立,考虑到了不同通道之间的相互作用。
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

所以,如上式仅考虑 y i y_i yi?和它的紧邻的通道之间的相互作用而计算 y i y_i yi?的权重。
加:一种更有效地方式,通过共享相同的学习参数,通过内核大小为k的快速1维卷积来实现(一维卷积和 1 × 1 1\times1 1×1卷积是不同的,一维指的是 1 × k 1\times k 1×k的卷积)
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

如上表,k=3的ECA模块和SE-Var3取得了相似的结果,而且具有更低的模型复杂度。
Coverage of Local Cross-Channel Interaction(局部跨通道交互覆盖)
ECA模块的k如何取值? 通过交叉验证进行手动调整不仅仅会很慢,而且消耗大量计算资源浪费。
ECA-Net采用Group convolutions。分组卷积用于改进CNN架构,其中高维(低维)信道在固定分组数量的情况下包括长(短)卷积。换句话说,就是通道维度 C C C和卷积核大小 k k k成比例。采用非线性函数,而且卷积核数量设为2的 k k k次方(因为通常通道尺寸是2)。公式如下:
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

卷积尺寸:
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

∣ t ∣ o d d \lvert t\rvert_{odd} ∣t∣odd?表示距离 t t t最近的奇数,ECA-Net中 γ \gamma γ和KaTeX parse error: Undefined control sequence: \b at position 1: \?b?分别取2和1.
实验结果
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

上图,网络参数(Param)、每秒浮点运算(FLOPS)、训练/参考速度(FPS)、top-1/top-5准确率。
实验结果 k值的影响如下图,ResNet-50和ResNet-101为主干,对照SENet。可以看出,ECA-Net相较于SENet,准确率有了极大的提升。
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

与不同的CNN对比
轻量模块注意力机制ECA-Net(注意力模块+一维卷积)
文章图片

总结 ECA-Net提出了一种高效的相关性通道(ECA)模块。模块通过非线性自适应确定的一维卷积组成。ECA是一种非常轻量级的即插即用块,可以调高各种CNN的性能。
代码 ECA-Net
论文

    推荐阅读