文章目录
- 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模块 【轻量模块注意力机制ECA-Net(注意力模块+一维卷积)】
文章图片
Avoiding Dimensionality Reduction(避免维度减少)
SE-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函数。
文章图片
在SE-Net中,通道注意力模块通过公式(2)进行降维(简单来说,就是SE-Net模块中的全连接层),这样让通道和权值之间没有直接联系。下表中的SE-Var1(无参数)、SE-Var2(独立学习各通道的权重)、SE-Var3(采用一个FC)均为不降维的变形,表中结果清楚的表明,避免降维的作用。
文章图片
Local Cross-Channel Interaction(局部跨通道交互)
文章图片
对于SE-Var2、SE-Var3,权重式:
文章图片
两者之间区别在于,SE-Var3考虑了不同通道之间的交互,SE-Var2则没有;但是SE-Var3的需要大量参数,这样复杂性较高。
SE-Var2+SE-Var3 → \to →块对角矩阵。
文章图片
每个组包括 C G \frac{C}{G} GC?个通道,有 C 2 G \frac{C^2}{G} GC2?个参数。然而,由上表可以看出,这样做并没有给SE-Var2带来增益,表明它不能捕获局部通道之间的相互作用,而且过多的组卷及将层架内存访问成本,从而降低计算效率。
ECA-Net中利用矩阵如下 W k W_k Wk?,来学习通道注意力:
文章图片
W k W_k Wk?由 k ? C k*C k?C个参数,小于 W G W_G WG?, W k W_k Wk?避免了不同通道之间完全独立,考虑到了不同通道之间的相互作用。
文章图片
所以,如上式仅考虑 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的卷积)
文章图片
如上表,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)。公式如下:
文章图片
卷积尺寸:
文章图片
∣ 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.
实验结果
文章图片
上图,网络参数(Param)、每秒浮点运算(FLOPS)、训练/参考速度(FPS)、top-1/top-5准确率。
实验结果 k值的影响如下图,ResNet-50和ResNet-101为主干,对照SENet。可以看出,ECA-Net相较于SENet,准确率有了极大的提升。
文章图片
与不同的CNN对比
文章图片
总结 ECA-Net提出了一种高效的相关性通道(ECA)模块。模块通过非线性自适应确定的一维卷积组成。ECA是一种非常轻量级的即插即用块,可以调高各种CNN的性能。
代码 ECA-Net
论文