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

ECA-Net (Efficient Channel Attention for Deep Convolutional Neural Networks)

YEN HUNG CHENG
7 min readMar 19, 2023

以下為 ECA-Net (Efficient Channel Attention for Deep Convolutional Neural Networks) 的網路架構

source

input tensor 經過 Global Average Pooling (全局平均池化)後,接下來會執行一個大小為 k 的一維卷積,最後再與 input tensor 做 element-wise product 得到最終的輸出

其中 k 是自適應確定的,是通過通道維度 C 的映射

減少維度損失同時高效捕獲通道之間的交互十分重要

Comparison of various channel attention modules

source

ResNet-50 作為 ImageNet 上的 backbone (骨幹) 模型

GC:group convolutions (分組卷積)

C1D:1D convolution (1維卷積)

SE Block

SE Block 中通道的權重可以計算公式可以用下方 ω 來表示

source
source

g(X):通過 Global Average Pooling(全局平均池化)所得到的全局特徵

source

f{w1, w2}(y) = W2ReLu(W1y) ,公式的步驟如下

  1. W1 -> FC (Fully-connected layer) C x (C/r)
  2. ReLU
  3. W2 -> FC (Fully-connected layer) (C/r) x C

SE Block 更詳細的說明可以看這一篇

SE-Var1~ Var3

  1. SE-Var1 即通過 GAP 之後,直接使用 Sigmoid
  2. SE-Var2 獨立地為每個通道學習到一個權重參數
  3. SE-Var3 使用單個 FC (Fully-connected layer)

其中三種方式都沒有使用到降維

SE-Var2 parameter matrix

source

SE-Var2:diagonal matrix

SE-Var3 parameter matrix

source

SE-Var3:full matrix

SE-GC1~GC3

通道被分成 G 組,每個組包含 C / G 通道,然後它們在該組 G 內構造一個 SE-Var2 對角線權重矩陣

source

因此,這裡的參數開銷是 G,也正式表示為 k ,如前幾節所述,其中 G 的大小由自適應函數 ψ ( C ) 定義。這些 G 權重在 1D 卷積的所有步幅中共享,因此可以在數學上表示為:σ(C1Dk(y))

ECA-NS

weight of yi is calculated

source

ECA

A more efficient way is to make all channels share the
same learning parameters

source

1D convolution with kernel size of k

source

k = 3

C1D:1D convolution

ECA 與表中的 SE-var3 和 ECA- NS 得到了相似的性能,但模型複雜度要低得多 (只涉及 k 個參數)

k (kernel) 和 C(channel)之間可能存在一種 mapping (映射) φ 關係

source

最簡單的映射是線性函數,即 φ(k) = γ ∗ k − b。 然而,以線性為特徵的關係
功能太有限。 另一方面通道維度 C(即過濾器的數量)通常設置為 2 的倍數。因此,我們通過將線性函數 φ(k) = γ ∗ k − b 擴展為 非線性

給定通道維度 C 後,我們就可以計算出最佳 k (kernel )值

source

k 是自適應產生的

γ = 2, b = 1

|t|odd: 表示最接近的奇數 t

通過映射 ψ,高維通道具有更遠距離的相互作用,而低維的經歷更短程的相互作用使用非線性映射

Experiments

Comparison of different attention methods on ImageNet

source

ECA-Net 與其他網路相比,增加的參數量是最少的,幾乎沒有增加額外的參數量,雖然性能不一定是最優的,但是與表中的 AA-Net 相比,ECA 具有更低的模型複雜度

Results of our ECA module with various numbers of k

source

using ResNet-50 and ResNet-101 as backbone models
ResNet-50 k = 9 和 ResNet-101 k = 5 處得到最佳結果

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

source

ECA-Net 50/101 能夠輕易超越其它深層的網路,增加的成本也最低

Object detection results of different methods on COCO val2017

source

在物件偵測上,也能看到 ECA 也能帶來不錯的性能提升,增加的成本也很低

Instance segmentation results of different

source

methods using Mask R-CNN on COCO val2017

在物體實例分割上,也能看到 ECA 也能帶來不錯的性能提升

Comparison of various attention modules

source

Conclusion

與 SE-Net 相比,ECA-Net 對通過 GAP 的 channel 不做降低維,也能保有高效通道注意力,最終能夠達到付出非常低的成本,達到高效的性能提升,不管是在圖像分類、物體檢測和實例分割等任務上也有非常好的泛化能,而 ECA 是一種非常輕量級的即插即用塊,可以調高各種CNN的性能

GitHub

--

--