最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

通道注意力超強改進,輕量模塊ECANet來了!即插即用,顯著提高CNN性能|已開源

2020-07-02 10:42 作者:極市平臺  | 我要投稿

如何以更有效的方式學(xué)習(xí)通道注意力?基于SENet改進的注意力模塊ECANet,超輕量,高性能,泛化性強。

極市導(dǎo)讀:今天給大家推薦一篇CVPR2020上對通道注意力進行改進的文章---ECANet,ECANet主要對SENet模塊進行了一些改進,提出了一種不降維的局部跨信道交互策略(ECA模塊)和自適應(yīng)選擇一維卷積核大小的方法,從而實現(xiàn)了性能上的提優(yōu)。最近已經(jīng)有很多文章在通道和空間注意力上做改進并取得了性能提升。例如SKNet,SANet,ResNeSt等等,不得不說,注意力機制真的香!

  • 論文鏈接:https://arxiv.org/abs/1910.03151

  • 代碼地址:https://github.com/BangguWu/ECANet

論文摘要

最近,通道注意力機制被證明在改善深度卷積神經(jīng)網(wǎng)絡(luò)(CNNs)的性能方面具有巨大的潛力。然而,現(xiàn)有的方法大多致力于開發(fā)更復(fù)雜的注意力模塊,以實現(xiàn)更好的性能,這不可避免地增加了模型的復(fù)雜性。為了克服性能和復(fù)雜性之間的矛盾,本文提出了一種有效的通道關(guān)注(ECA)模塊,該模塊只增加了少量的參數(shù),卻能獲得明顯的性能增益。通過對SENet中通道注意模塊的分析,作者的經(jīng)驗表明避免降維對于學(xué)習(xí)通道注意力非常重要,適當?shù)目缧诺澜换タ梢栽陲@著降低模型復(fù)雜度的同時保持性能。因此,足者提出了一種不降維的局部跨信道交互策略,該策略可以通過一維卷積有效地實現(xiàn)。進一步,作者又提出了一種自適應(yīng)選擇一維卷積核大小的方法,以確定局部跨信道交互的覆蓋率。?實驗證明,本文提出的ECA模塊是高效的。

本文模塊相對于ResNet50的主干的參數(shù)和計算分別是80比24.37M和4.7e-4 GFLOPs比3.86 GFLOPs,并且性能在Top-1精度方面提升超過2%。本文以ResNets和MobileNetV2為骨干,利用提出的ECA模塊在圖像分類、目標檢測和實例分割方面進行了廣泛的評估。實驗結(jié)果表明,該模塊在性能上優(yōu)于其他模塊,且具有較高的效率。

ECA模塊與其他注意力模塊的比較:這里以ResNets作為骨干模型來進行分類精度,網(wǎng)絡(luò)參數(shù)和FLOPs的比較,以圓來表示。從圖1中,我們可以發(fā)現(xiàn),ECA網(wǎng)絡(luò)模塊獲得了更高的精度,同時有較少的模型復(fù)雜性。

論文簡介

深度卷積神經(jīng)網(wǎng)絡(luò)(CNNs)在計算機視覺領(lǐng)域得到了廣泛的應(yīng)用,在圖像分類、目標檢測和語義分割等領(lǐng)域取得了很大的進展。從開創(chuàng)性的AlexNet開始,為了進一步提高深度cnn的性能,不斷推出新的CNN模型。近年來,將通道注意力引入卷積塊引起了人們的廣泛關(guān)注,在性能改進方面顯示出巨大潛力。其中代表性的方法是SENet,它可以學(xué)習(xí)每個卷積塊的通道注意力,對各種深度CNN架構(gòu)帶來明顯的性能增益。SENet主要是 squeeze 和 excitation 兩大操作,最近,一些研究通過捕獲更復(fù)雜的通道依賴或結(jié)合額外的空間注意來改進SE塊。這些方法雖然取得了較高的精度,但往往帶來較高的模型復(fù)雜度和較大的計算負擔。與前面提到的以更高的模型復(fù)雜度為代價來獲得更好性能的方法不同,本文轉(zhuǎn)而關(guān)注一個問題:能否以更有效的方式學(xué)習(xí)有效的通道注意力?

為了回答這個問題,我們首先回顧一下SENet中的通道注意模塊。具體來說,在給定輸入特征的情況下,SE塊首先對每個通道單獨使用全局平均池化,然后使用兩個具有非線性的完全連接(FC)層,然后使用一個Sigmoid函數(shù)來生成通道權(quán)值。兩個FC層的設(shè)計是為了捕捉非線性的跨通道交互,其中包括降維來控制模型的復(fù)雜性。雖然該策略在后續(xù)的通道注意模塊中得到了廣泛的應(yīng)用,但作者的實驗研究表明,降維對通道注意預(yù)測帶來了副作用,捕獲所有通道之間的依賴是低效的,也是不必要的。

因此,本文提出了一種針對深度CNN的高效通道注意(ECA)模塊,該模塊避免了降維,有效捕獲了跨通道交互的信息。如下圖2所示:

在不降低維數(shù)的通道級全局平均池化之后,ECA通過考慮每個通道及其k個鄰居來捕獲局部跨通道交互信息。實踐證明,該方法保證了模型效率和計算效果。需要注意的是,ECA可以通過大小為k的快速1D卷積來有效實現(xiàn),其中卷積核大小為k代表了局部跨信道交互的覆蓋率,即,該通道附近有多少鄰居參與了這個信道的注意力預(yù)測,為了避免通過交叉驗證對k進行手動調(diào)優(yōu),本文提出了一種方法來自適應(yīng)地確定k,其中交互的覆蓋率(即卷積核大小 k)與通道維數(shù)成正比。

與主干模型相比,帶有ECA模塊的深度CNNs(稱為ECA- net)引入了很少的額外參數(shù)和幾乎可以忽略的計算,同時帶來了性能增益。例如,對于具有24.37M參數(shù)和3.86 GFLOPs的ResNet-50來說, ECA-Net50的附加參數(shù)和計算分別為80和4.7e-4 GFLOPs;與此同時,ECA-Net50在Top 1 Accuracy方面比ResNet-50高出2.28%。表1 總結(jié)了現(xiàn)有的注意模塊,包括是否降低通道維度(DR)、跨通道交互和輕量級模型。從表中可以看出,ECA模塊通過避免降低通道維度來學(xué)習(xí)有效的通道注意力,同時以極其輕量級的方式獲取跨通道的交互信息。


本文的貢獻總結(jié)如下:

  1. 對SE模塊進行了剖析,并分別證明了避免降維和適當?shù)目缤ǖ澜换τ趯W(xué)習(xí)高性能和高效率的通道注意力是重要的。

  2. 在以上分析的基礎(chǔ)上,提出了一種高效通道注意模塊(ECA),在CNN網(wǎng)絡(luò)上提出了一種極輕量的通道注意力模塊,該模塊增加的模型復(fù)雜度小,提升效果顯著。

  3. 在ImageNet-1K和MS COCO上的實驗結(jié)果表明,本文提出的方法具有比目前最先進的CNN模型更低的模型復(fù)雜度,與此同時,本文方法卻取得了非常有競爭力的結(jié)果。

ECA模塊介紹

下面我們主要來介紹一下ECA的模塊,首先由公式2:

我們知道通道與其權(quán)值之間的對應(yīng)關(guān)系是間接的。為了驗證它的效果,作者比較了原始SE塊和它的三個變體(即 SE-Var1, SE-Var2和SE-Var3),所有這些都沒有進行降維操作。具體效果如下表2所示:

無參數(shù)的SE-Var1仍然優(yōu)于原始網(wǎng)絡(luò),說明channel attention具有提高深度CNNs性能的能力。而SE- Var2通過獨立學(xué)習(xí)各通道的權(quán)值,在參數(shù)較少的情況下略優(yōu)于SE模塊。這說明通道與其權(quán)值需要直接對應(yīng),從而通過避免降維可以比考慮非線性通道之間的相關(guān)性更為重要。此外,SE模塊采用單個FC層的SE- var3性能優(yōu)于降維的兩層FC層。以上結(jié)果清楚地表明,避免降維有助于學(xué)習(xí)有效的通道注意。因此,作者提出了不降低通道維數(shù)來進行跨通道信息交互的ECA模塊。

在本文中,作者提出了一種新的捕捉局部跨通道信息交互的方法(ECA模塊),旨在保證計算性能和模型復(fù)雜度。作者用 W_{k}來表示學(xué)習(xí)到的通道注意力:

W_{k}涉及K*C個參數(shù),并且W_{K}避免了不同group的完全獨立,正如在上表2中所示,本文提出的這種方法叫做ECA-NS,他比SE-GC性能要更優(yōu)。對于權(quán)重y_{i},本文只考慮y_{i}和它的k個鄰居之間的信息交互,計算公式如下:

為了進一步提高性能,還可以讓所有的通道共享權(quán)重信息,即:

根據(jù)上面的分析,提出一種新的方法,該方法可以通過卷積核大小為K的一維卷積來實現(xiàn)通道之間的信息交互:

這里,C1D代表一維卷積,這種方法稱之為ECA模塊,它只涉及K個參數(shù)信息,當k=3時,ECA模塊可以實現(xiàn)與SE-Var3同樣的效果但卻有更低的模型復(fù)雜度。因此,這種捕捉跨通道信息交互的方法保證了性能結(jié)果和模型效率。

由于ECA模塊旨在適當捕獲局部跨道信息交互,因此需要確定通道交互信息的大致范圍(即1D卷積的卷積核大小k)。雖然可以針對各種CNN架構(gòu)中具有不同通道數(shù)的卷積塊進行手動優(yōu)化設(shè)置信息交互的最佳范圍,但是通過手動進行交叉驗證調(diào)整將花費大量計算資源。而且分組卷積已成功地用于改善CNN架構(gòu),在固定group數(shù)量的情況下,高維(低維)通道與長距離(短距離)卷積成正比。同理,跨通道信息交互作用的覆蓋范圍(即一維卷積的內(nèi)核大小k)與通道維數(shù)C應(yīng)該也是成正比的。換句話說,在k和C之間可能存在映射φ:

最簡單的映射方式就是線性映射,但由于線性函數(shù)對于某些相關(guān)特征的局限性,再由于通道維數(shù)通常是2的指數(shù)倍,所以,這里采用以2為底的指數(shù)函數(shù)來表示非線性映射關(guān)系:

所以,給定通道維數(shù)C,那么卷積核大小(k)便可根據(jù)下面公式計算得到:

ECA模塊的代碼實現(xiàn)

import?torch
from?torch?import?nn
from?torch.nn.parameter?import?Parameter

class?eca_layer(nn.Module):
????"""Constructs a ECA module.
????Args:
????????channel: Number of channels of the input feature map
????????k_size: Adaptive selection of kernel size
????"""
????def?__init__(self, channel, k_size=3):
????????super(eca_layer, self).__init__()
????????self.avg_pool = nn.AdaptiveAvgPool2d(1)
????????self.conv = nn.Conv1d(1,?1, kernel_size=k_size, padding=(k_size -?1) //?2, bias=False)
????????self.sigmoid = nn.Sigmoid()

????def?forward(self, x):
????????# x: input features with shape [b, c, h, w]
????????b, c, h, w = x.size()

????????# feature descriptor on the global spatial information
????????y = self.avg_pool(x)

????????# Two different branches of ECA module
????????y = self.conv(y.squeeze(-1).transpose(-1,?-2)).transpose(-1,?-2).unsqueeze(-1)

????????# Multi-scale information fusion
????????y = self.sigmoid(y)

????????return?x * y.expand_as(x)


實驗結(jié)果

作者分別在ImageNet和MS COCO數(shù)據(jù)集上,對提出的ECA模塊在圖像分類、目標檢測和實例分割方面進行了實驗評估,具體來說,首先評估卷積核大小對ECA模塊的影響,并與ImageNet上最先進的模型進行了比較。然后,將網(wǎng)絡(luò)模塊分別結(jié)合Faster R-CNN、Mask R-CNN和RetinaNet驗證了在MS COCO數(shù)據(jù)集上的有效性。

表3比較了不同的注意力方法在ImageNet數(shù)據(jù)集上的網(wǎng)絡(luò)參數(shù)(param),浮點運算每秒(FLOPs),訓(xùn)練或推理速度(幀每秒,F(xiàn)PS), Top-1/Top-5的準確性(%)。

下面,主要討論一下卷積核大小對ECA模塊的影響。這部分實驗評估了它對ECA模塊的影響,并驗證了本文方法在自適應(yīng)選擇內(nèi)核大小方面的有效性。為此,本文采用ResNet-50和ResNet-101作為骨干模型,將k分別設(shè)為3 - 9,用ECA模塊進行實驗。結(jié)果如圖4所示,從中我們可以觀察到以下情況:

首先,當k在所有卷積塊中都固定時,對于ResNet-50和ResNet-101, ECA模塊分別在k = 9和k = 5處取得最佳結(jié)果。由于ResNet-101有更多的中間層來支配ResNet-101的性能,因此它可能更喜歡較小的卷積核。此外,這些結(jié)果表明,不同深度cnn具有不同的最優(yōu)k值,k值對ECA-Net性能有明顯影響。此外,ResNet-101的準確率波動(約0.5%)要大于ResNet-50的準確率波動(約0.15%),作者推測原因是更深層次的網(wǎng)絡(luò)比更淺層次的網(wǎng)絡(luò)對固定的卷積核大小更敏感。此外,由Eq.(12)自適應(yīng)確定的卷積核大小通常優(yōu)于固定的卷積核大小,但可以避免通過交叉驗證手動調(diào)整參數(shù)k。以上結(jié)果證明了本文的自適應(yīng)選擇卷積核大小是可以取得較好且穩(wěn)定的結(jié)果。最后,不同k個數(shù)的ECA模塊始終優(yōu)于SE block,驗證了避免降維和局部跨通道交互對學(xué)習(xí)通道注意力是有積極作用的。

作者將ECA-Net50和ECA-Net101與其他最先進的CNN模型進行比較,包括ResNet-200, Inception-v3, ResNeXt,DenseNet等等。這些CNN模型有更深更廣的架構(gòu),它們的結(jié)果都是復(fù)制自原始論文。如上表4所示,ECA-Net101的性能優(yōu)于ResNet-200,這表明ECA-Net可以用更少的計算成本提高深度CNNs的性能。同時,ECA-Net101與ResNeXt-101相比具有更強的競爭力,而ResNeXt-101使用了更多的卷積濾波器和昂貴的群卷積。此外,ECA-Net50可與DenseNet-264 (k=32)、DenseNet-161 (k=48)和 Inception-v3相媲美,但模型復(fù)雜度較低。以上結(jié)果表明,ECA-Net在性能上優(yōu)于最先進的CNNs,同時具有更低的模型復(fù)雜度。ECA也有很大的潛力來進一步提高CNN模型的性能。

本文使用Faster R-CNN[26]、Mask R-CNN[10]和RetinaNet[22]在目標檢測任務(wù)上評估ECA-Net。主要將ECA-Net與ResNet和SENet進行比較。所有的CNN模型都是在ImageNet上預(yù)先訓(xùn)練好的,然后通過在MS COCO數(shù)據(jù)集上進行微調(diào)。具體實驗效果如下所示:

在實例分割上的效果展示:

Conclusion

本文著重研究了低模型復(fù)雜度的深度網(wǎng)絡(luò)的高效通道注意力問題。為此,作者提出了一種高效的通道注意(ECA)模塊,該模塊通過快速的一維卷積生成通道注意力,其卷積核大小可由通道維數(shù)的非線性映射自適應(yīng)確定。實驗結(jié)果表明,ECA是一個非常輕量級的即插即用模塊,可以提高各種深度CNN架構(gòu)的性能,包括廣泛使用的ResNets和輕量級的MobileNetV2。此外,ECA-Net在目標檢測和實例分割任務(wù)中表現(xiàn)出良好的泛化能力。在未來,將把ECA模塊應(yīng)用到更多CNN架構(gòu)中(如ResNeXt和Inception),并進一步研究ECA與空間注意模塊的結(jié)合。


◎作者檔案
Murufeng,一個緊跟前沿、樂于分享最新技術(shù)干貨的DLer!個人公眾號:深度學(xué)習(xí)技術(shù)前沿歡迎大家聯(lián)系極市小編(微信ID:fengcall19)加入極市原創(chuàng)作者行列


通道注意力超強改進,輕量模塊ECANet來了!即插即用,顯著提高CNN性能|已開源的評論 (共 條)

分享到微博請遵守國家法律
临颍县| 霍城县| 鲜城| 云霄县| 岑巩县| 凤庆县| 建德市| 东兰县| 竹溪县| 竹山县| 大石桥市| 怀宁县| 开鲁县| 江达县| 洛隆县| 徐闻县| 黄骅市| 甘洛县| 博客| 永昌县| 门头沟区| 蒲江县| 名山县| 芦山县| 当雄县| 靖远县| 华阴市| 明光市| 蒙自县| 黄龙县| 德庆县| 通渭县| 清镇市| 揭西县| 新竹市| 城市| 南城县| 耿马| 扬中市| 宁乡县| 商南县|