【CV中的Attention機(jī)制】ShuffleAttention
【GiantPandaCV導(dǎo)語】這個系列已經(jīng)好幾個月沒有更新了,開始繼續(xù)更這個方向論文,19年、20年又出現(xiàn)了很多關(guān)于Attention的研究,本文SA-Net:shuffle attention for deep convolutional neural networks 發(fā)表在ICASSP 21,傳承了SGE的設(shè)計理念的同時,引入Channel Shuffle,達(dá)到了比較好的效果,有理有據(jù)。
1. 摘要
目前注意力機(jī)制主要可以分為兩類,空間注意力機(jī)制和通道注意力機(jī)制,兩者目標(biāo)用于捕獲成對的像素級關(guān)系和通道間依賴關(guān)系的。同時使用兩種注意力機(jī)制可以達(dá)到更好的效果,但是不可避免地增加了模型的計算量。
本文提出了Shuffle Attention(SA)模塊來解決這個問題,可以高效地結(jié)合兩種注意力機(jī)制。具體來講:
SA對通道特征進(jìn)行分組,得到多個組的子特征。 對每個子特征使用SA Unit同時使用空間和通道間注意力機(jī)制。 最后,所有的子特征會被匯集起來,然后使用Channel Shuffle操作讓不同組的特征進(jìn)行融合。
實驗結(jié)果:在ImageNet-1k數(shù)據(jù)集上,SA結(jié)果要比ResNet50的top 1高出1.34%。同時在MS COCO數(shù)據(jù)集上進(jìn)行了目標(biāo)檢測和目標(biāo)分割的實驗,在模型復(fù)雜度比較低的情況下,達(dá)到了SOTA。
這個實驗思路可以看出和SENet如出一轍,分組處理的思想在SGE中提到過,SA-Net添加了Channel Shuffle的操作參考ShuffleNet系列論文,有理有據(jù),實現(xiàn)也很簡單。

2. 設(shè)計思想
多分支結(jié)構(gòu)
多分支結(jié)構(gòu)比如最初的InceptionNet系列、ResNet系列等都是多分支結(jié)構(gòu),遵從的是‘Split - Transform - Merge’的操作模式,這樣的設(shè)計可以讓模型變得更深、更易于訓(xùn)練。
Attention 模塊的設(shè)計方面也有很多工作引入了多分支,比如SKNet、ResNeSt、SGENet等。
組特征
最初將特征劃分為不同的組可以追溯到AlexNet,由于當(dāng)時的顯存太小,所以需要將模型分成兩組,每組使用一塊顯卡進(jìn)行處理,這是為了解決使用更多計算資源的問題。
之后的MobileNet系列、ShuffleNet系列等使用組特征是為了降低模型的計算量,加快運算速度。
CapsuleNet則是將每個組的神經(jīng)元視為一個膠囊Capsule,其中,激活的膠囊中的神經(jīng)元活動代表了圖像中特定實體的各種屬性。
注意力機(jī)制
注意力模塊已經(jīng)成為網(wǎng)絡(luò)設(shè)計的不得不考慮的重要組成部分。注意力模塊可以有側(cè)重點的關(guān)注有用的特征信息,抑制不重要的特征。self-attention方法是計算一個位置和其上下文的信息作為一個權(quán)重,施加到整個圖像中。SE對通道間關(guān)系進(jìn)行建模,使用了兩個全鏈接網(wǎng)絡(luò)進(jìn)行自學(xué)習(xí)。ECA則使用了1-D卷積來生成通道間注意力機(jī)制,降低了SE的計算量。CBAM,GCNet,SGE等模型結(jié)合了空間注意力機(jī)制和通道注意力機(jī)制。DANet通過將來自不同分支的兩個注意模塊相加,自適應(yīng)地整合了局部特征及其全局依賴關(guān)系
3. Shuffle Attention
SA的設(shè)計思想結(jié)合了組卷積(為了降低計算量),空間注意力機(jī)制(使用GN實現(xiàn)),通道注意力機(jī)制(類似SENet),ShuffleNetV2(使用Channel Shuffle融合不同組之間的信息)。

如上圖所示:
首先將tensor劃分為g個組,每個組內(nèi)部使用SA Unit進(jìn)行處理。 SA內(nèi)部分為空間注意力機(jī)制,如藍(lán)色部分所示,具體實現(xiàn)使用的是GN。 SA內(nèi)部使用的通道注意力機(jī)制,如綠色部分所示,具體實現(xiàn)和SE類似。 SA Unit通過Concate的方式將組內(nèi)部的信息進(jìn)行融合。 最后使用Channel Shuffle操作對組進(jìn)行重排,不同組之間進(jìn)行信息流通。
GN實現(xiàn)的空間注意力
一般來說,空間注意力機(jī)制作用是找到圖片中具體哪一塊更重要。SA中使用了GroupNorm來獲取空間維度的信息。這部分比較特別,但是作者通過消融實驗證明了該模塊有效性?;蛟S有更好的Spatial Attention?畢竟也沒有比較類似CBAM的這種空間注意力方法,所以并不知道GN作為空間注意力是否有優(yōu)越性。


4. 實驗結(jié)果
可以看到,要比ECA-Net等模型效果更好,并且要比baseline ResNet50的top1高出1.34%。同樣的在ResNet-101為基礎(chǔ)添加SA模塊,也要比baseline 的top1要高出了0.76%。

目標(biāo)檢測上的實驗對比:

可以看出實驗提升還是比較大的,AP大約提升了2-3個百分點。
實例分割任務(wù)上的實驗結(jié)果對比:

5. 結(jié)論
SA是的核心思想都有跡可循,通過引入組卷積降低計算量,再對每個分組使用空間注意力和通道注意力,最后使用Channel Shuffle操作將不同組之間的信息進(jìn)行流通。
6. 參考
代碼鏈接:https://github.com/wofmanaf/SA-Net
論文鏈接:https://arxiv.org/pdf/2102.00240.pdf
對文章內(nèi)容有疑問或者想加入交流群,可以添加筆者微信,注明來意。
