(ML) ECA-Net : Efficient Channel Attention for Deep Convolutional Neural Networks
ECA-Net (Efficient Channel Attention for Deep Convolutional Neural Networks)
以下為 ECA-Net (Efficient Channel Attention for Deep Convolutional Neural Networks) 的網路架構
input tensor 經過 Global Average Pooling (全局平均池化)後,接下來會執行一個大小為 k 的一維卷積,最後再與 input tensor 做 element-wise product 得到最終的輸出
其中 k 是自適應確定的,是通過通道維度 C 的映射
減少維度損失同時高效捕獲通道之間的交互十分重要
Comparison of various channel attention modules
ResNet-50 作為 ImageNet 上的 backbone (骨幹) 模型
GC:group convolutions (分組卷積)
C1D:1D convolution (1維卷積)
SE Block
SE Block 中通道的權重可以計算公式可以用下方 ω 來表示
g(X):通過 Global Average Pooling(全局平均池化)所得到的全局特徵
f{w1, w2}(y) = W2ReLu(W1y) ,公式的步驟如下
- W1 -> FC (Fully-connected layer) C x (C/r)
- ReLU
- W2 -> FC (Fully-connected layer) (C/r) x C
SE Block 更詳細的說明可以看這一篇
SE-Var1~ Var3
- SE-Var1 即通過 GAP 之後,直接使用 Sigmoid
- SE-Var2 獨立地為每個通道學習到一個權重參數
- SE-Var3 使用單個 FC (Fully-connected layer)
其中三種方式都沒有使用到降維
SE-Var2 parameter matrix
SE-Var2:diagonal matrix
SE-Var3 parameter matrix
SE-Var3:full matrix
SE-GC1~GC3
通道被分成 G 組,每個組包含 C / G 通道,然後它們在該組 G 內構造一個 SE-Var2 對角線權重矩陣
因此,這裡的參數開銷是 G,也正式表示為 k ,如前幾節所述,其中 G 的大小由自適應函數 ψ ( C ) 定義。這些 G 權重在 1D 卷積的所有步幅中共享,因此可以在數學上表示為:σ(C1Dk(y))
ECA-NS
weight of yi is calculated
ECA
A more efficient way is to make all channels share the
same learning parameters
1D convolution with kernel size of k
k = 3
C1D:1D convolution
ECA 與表中的 SE-var3 和 ECA- NS 得到了相似的性能,但模型複雜度要低得多 (只涉及 k 個參數)
k (kernel) 和 C(channel)之間可能存在一種 mapping (映射) φ 關係
最簡單的映射是線性函數,即 φ(k) = γ ∗ k − b。 然而,以線性為特徵的關係
功能太有限。 另一方面通道維度 C(即過濾器的數量)通常設置為 2 的倍數。因此,我們通過將線性函數 φ(k) = γ ∗ k − b 擴展為 非線性
給定通道維度 C 後,我們就可以計算出最佳 k (kernel )值
k 是自適應產生的
γ = 2, b = 1
|t|odd: 表示最接近的奇數 t
通過映射 ψ,高維通道具有更遠距離的相互作用,而低維的經歷更短程的相互作用使用非線性映射
Experiments
Comparison of different attention methods on ImageNet
ECA-Net 與其他網路相比,增加的參數量是最少的,幾乎沒有增加額外的參數量,雖然性能不一定是最優的,但是與表中的 AA-Net 相比,ECA 具有更低的模型複雜度
Results of our ECA module with various numbers of k
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
ECA-Net 50/101 能夠輕易超越其它深層的網路,增加的成本也最低
Object detection results of different methods on COCO val2017
在物件偵測上,也能看到 ECA 也能帶來不錯的性能提升,增加的成本也很低
Instance segmentation results of different
methods using Mask R-CNN on COCO val2017
在物體實例分割上,也能看到 ECA 也能帶來不錯的性能提升
Comparison of various attention modules
Conclusion
與 SE-Net 相比,ECA-Net 對通過 GAP 的 channel 不做降低維,也能保有高效通道注意力,最終能夠達到付出非常低的成本,達到高效的性能提升,不管是在圖像分類、物體檢測和實例分割等任務上也有非常好的泛化能,而 ECA 是一種非常輕量級的即插即用塊,可以調高各種CNN的性能