姚亮亮,張太紅*,張洋寧,溫釗發
(1.新疆農業大學 計算機與信息工程學院,新疆 烏魯木齊 830052;2.智能農業教育部工程研究中心,新疆 烏魯木齊 830052;3.新疆農業信息化工程技術研究中心,新疆 烏魯木齊 830052)
從計算機視覺任務誕生起始,方法從機器學習主導轉為深度學習主導,而卷積神經網絡也成為計算機視覺中的主要方法。以卷積神經網絡為主干模型的任務包括圖像分類[1-2]、目標檢測[3-4]、圖像分割任務[5-6]等。而現存采用較為廣泛的主干模型包括ResNet[7]系列、MobileNet[8]系列等。而這些模型的成功離不開卷積神經網絡優秀的結構設計。卷積神經網絡結構的設計大致分為兩方面,一個是模型整體[7-8]的設計,另一個是模型中即插即用[9-10]的模塊。因此,網絡設計是深度卷積神經網絡中一個必不可少的因素。
當前,卷積神經網絡的結構變得越來越復雜,模型層數的增加,或者是模型寬度的增加。但是其基本操作都是圍繞卷積為核心,歸一化和激活函數為輔助構成的。隨著網絡深度越來越深,寬度越來越寬,深度卷積神經網絡的表征能力也越來越強,尤其是在大數據上的表現超乎其想象。但是,在小數據集上越深的網絡或越大的網絡,對其效果越不好。大網絡模型由于其神經元超多,也就是參數超多,對待小數據集就會陷入過擬合。所以,為了減少參數量,避免由于神經元過多而產生過飽和這樣的現象,模型的發展往往朝著輕量化發展,同時也是為了適應工業的發展,加快模型的推理速度。伴隨著這一需求的出現,卷積神經網絡的設計成為一個極具挑戰性的問題。
除去卷積神經網絡本身發展的更迭,一種方便提升卷積神經網絡的表征能力的模塊[9-10]也發展得尤為火熱,例如通道注意力模塊。這種模塊獨立于卷積神經網絡,不受神經網絡的約束,可以根據各種神經原理、數學原理方便地計算通道的注意力權重。且這種模塊適用范圍廣,可以方便地應用到計算機視覺的各種任務。
為了更好地改進通道注意力,使之更為精巧,該文主要關注使用一個參數更好地提取到通道的注意力權重。主要貢獻如下:
(1)提出一種即插即用的而非卷積神經網絡新架構的通道注意力模塊(APA)。
(2)在數據集CIFAR-10與CIFAR-100使用該模塊在多個流行的卷積神經網絡主干上進行圖像分類,取得了良好的性能。
在這部分,將敘述卷積神經網絡的設計和卷積神經網絡中注意力模塊的代表性工作。
20世紀60年代,加拿大科學家從貓的視覺中樞發現了感受野、雙眼視覺等視覺功能,這是神經網絡發展的里程碑事件。1980年左右,出現了類似卷積神經網絡的神經認知網絡,用于手寫字符識別和其他識別任務。1998年,Yann LeCuu等人[11]提出了基于梯度下降的學習算法─LeNet,這是卷積神經網絡后續發展的開端。LeNet網絡由簡單卷積層和全連接層組成。2012年,隨著AlexNet[1]的出現,深度卷積神經網絡從此主導了計算機視覺任務,當然計算機硬件資源的提升也功不可沒。AlexNet的突出特點是采用了非線性激活函數Relu和Dropout層,旨在解決梯度消失問題,防止過擬合。然后在2014年,VGG[2]網絡使用了大量的3×3卷積和2×2池來擴展卷積神經網絡的感受野。同年出現了GoogLeNet[12],整個卷積神經網絡由初始模塊組成,其本質是將信道分成幾個感受野不同的信道,從而得到不同的感受野。初始模塊使用了大量的1×1卷積,其主要作用是降低數據的維數,節省計算量。2015年,ResNet[7]網絡的出現,讓卷積網絡更加深入。ResNet主要利用剩余模塊組成整個網絡,其跳轉連接結構在緩解深度網絡梯度消失的同時,極大地提高了網絡特征提取的能力。2016年,DenseNet[13]重用了網絡中各層的特征圖,旨在緩解梯度消失問題,提高網絡表示能力,減少網絡參數。2018年,MobileNet[8]采用深度可分卷積作為網絡的基本模塊,減少了參數數量和計算量,使模型更輕便。
在人類的視覺系統中,人眼總是對感興趣的事物關注度比較高,對不感興趣的事物關注度低,或完全不關注。例如,在電影院中,為了讓觀眾獲得更好的體驗,往往采取關燈的方式,讓觀眾只關注電影屏幕。同樣在卷積神經網絡中,為了讓卷積神經網絡獲得更好的性能,研究者會采用更好的方式去抑制或提高圖像特征塊中通道的重要性,給每個通道賦予一個注意力權重。在深度卷積神經網絡提取特征的過程中,特征圖的不同通道和不同空間位置通常是不同的部分。在計算機視覺的任務中,不同部分的相對重要性是不同的。為了使網絡更有效地學習特征,注意力機制可以通過自適應學習對不同部分賦予不同的權重,這可以看作是一個特征選擇的過程。通道注意力的通用形式可以表述為:
Xo=Xi*f(Xi)
(1)
式中,Xo表示輸出特征向量,Xi表示輸入特征向量,f(·)表示計算注意力權重的方法。從公式(1)中可以看出計算通道注意力的過程分為兩步:
(1)根據輸入特征向量利用計算通道注意力的方法計算出通道注意力權重,也就是式中的f(Xi)。
(2)將計算出的通道注意力權重乘到輸入特征向量的對應通道中,也就是Xi*f(Xi)。
當前,卷積神經網絡中最具有代表性的通道注意力模塊當屬壓縮激勵模塊(SE)[9]。在壓縮激勵網絡這篇文章中首先提出了通道注意力的概念,壓縮激勵模塊計算通道注意力權重的方式分為兩部分:壓縮與激勵。壓縮部分是通過全局平均池化計算通道的全局上下文信息,以獲得通道的依賴關系。激勵部分是通過全連接層去調整通道的依賴關系,以使獲得的通道注意力權重更加準確。至此,每年的計算機視覺頂級會議中都會出現一些通道注意力模塊相關的設計,不過大多數都是壓縮激勵模塊方法的改進。其中,最具有吸引力的是有效的注意力模塊(ECA)[14],這種模塊改進壓縮激勵模塊中的激勵部分,認為獲得更合適的注意力權重,不應該使用降維的方式,遂采取一維卷積來代替激勵部分的全連接層,該模塊簡單有效,且參數量極少。由Gao等人[15]提出的GSoP-Net在壓縮模塊中使用全局二階池(GSoP)來捕獲全局信息,以提高其捕獲高階統計信息的能力。Lee等人[16]提出的SRM模塊采用與信道寬度相同的style pooling和full connection layer (CFC)分別代替壓縮激勵模塊(SE)中的壓縮和激勵部分。Yang等人[17]提出的GCT通過范數捕獲信道的全局信息,并應用一個可學習的向量(α)來縮放該特征。然后采用通道規范化的競爭機制進行通道間的互動。像其他常見的正常歸一化方法一樣,可學習的尺度參數(γ)和部分β用于調整歸一化。最后,tanh激活用于控制注意力載體。同時國內有很多關于通道注意力的應用,如Jiang等人[18]應用壓縮激勵模塊(SE)進行表情識別。Zhang等人[19]利用通道注意力提升表情識別任務的性能。
在這部分先介紹單參數通道注意力(APA)模塊的原理和代碼實現,再討論卷積神經網絡中具有代表性的通道注意力模塊壓縮激勵模塊(SE)[9]和有效的通道注意力模塊(ECA)[14]與APA模塊在操作上的差異以及參數量的對比。文中方法和傳統的通道注意力模塊在計算通道注意力權重的方式上大有不同,但是最終的目的都是為了計算通道注意力權重。
從減少通道注意力模塊參數的角度,該文提出了一種只有單參數通道注意力模塊(APA)。APA在計算通道注意力權重是基于簡單的數學原理。流程如圖1所示。

圖1 單參數的通道注意力(APA)模塊流程
計算通道注意力的方式同傳統的通道注意力一樣,也分為兩部分。設輸入特征向量為F[C,H,W],其中C,H,W分別代表輸入特征向量的通道數以及高和寬。第一部分如公式(2),先將F[C,H,W]的通道求和,然后在得到的向量上加一個參數(b)得到特征向量(F[1,H,W])。第二部分如公式(3),將第一部分得到的特征向量和輸入特征向量的每個通道求取余弦相似度,然后通過Sigmoid激活函數進行非線性激活,最后得到了通道注意力權重。再將得到的通道注意力權重乘到輸入通道向量的對應通道中,如公式(4)。
(2)
Attention=Sigmoid(cos(F[1,H,W],F[i,H,W]))=
i=1,2,…,C
(3)
Foutput=Attention×F[C,H,W]
(4)
接下來,解釋一下這樣做的原因。之所以對通道求和是因為求和這項操作會將通道的依賴關系隱式映射到F[1,H,W]上,而添加b是因為要利用余弦相似度去度量F[C,H,W]與F[1,H,W]的相似度,余弦相似度是為了度量兩個向量在方向上的關系。b的改變會導致F[1,H,W]在方向上發生改變,如圖2所示,從而達到動態調整通道依賴關系的目的,以使得到的通道注意力權重更加適合各個卷積神經網絡以及各類視覺任務。

圖2 參數(b)對向量(S)在方向上的影響
為了說明APA的簡單性,圖3給出了APA模塊基于Pytorch框架的實現代碼。

圖3 “APA代碼”形式表現
表1展現了文中模塊(APA)和壓縮激勵(SE)、有效的注意力模塊(ECA)在操作上的差異以及參數量的對比。

表1 SE,ECA,APA模塊操作以及參數的對比

表2 不同通道注意力模塊的實驗結果。
APA是一個即插即用的靈活模塊,可以插入到當前流行卷積神經網絡模型中,以此來增強模型對圖像通道特征的表征能力。APA在ResNet系列及其改進系列(PreResNet,WideResNet),插入其卷積網絡模塊的示意如圖4所示。

圖4 單參數通道注意力模塊(APA)嵌入ResNet系列的示意圖
在這部分,先敘述一下實驗環境與數據集情況,再討論一下文中模塊在當前流行的卷積神經網絡主干上進行圖像分類的實驗結果。
該文的參數設置遵循所有模型的標準訓練流程[20]。具體來說,每張圖像進行零填充,每側4個像素,并從該填充圖像或其水平翻轉中隨機裁剪一個32 ×32的圖像供訓練使用。評價過程中,所有模型均使用原始測試集圖像進行測試。優化通過動量為0.9,批量大小為128,權重衰減為0.000 5的SGD[21]優化器完成。所有網絡都在單個GPU上進行訓練。學習率以0.1開始,在32 000和48 000次迭代(在64 000次迭代時停止劃分)時除以10。
該文使用作者提供的公共代碼,因為所有方法具有隨機性,所以實驗均是進行3次重復后取平均值得出的結果。
實驗顯卡為一塊24G的NVIDIA GeForce RTX 3090。
所采用的數據集是圖像分類中的公開數據集CIFAR-10[22]與CIFAR-100[22]。CIFAR-10源自一個共有8 000萬張微小圖像的數據集。CIFAR-10共有6萬張32×32的彩色圖像,其中5萬張圖像用于訓練,1萬張圖像用于測試。
共有10個類別,每個類別6 000張圖像。CIFAR-100同CIFAR-10一樣是8 000萬微小圖像微小數據集的子集。CIFAR-100也有6萬張32×32的彩色圖像,其中5萬張用于訓練,1萬張用于測試,不同的是CIFAR-100有100個類,每個類有600張圖像。
實驗所采用的評價指標有TOP-1準確率(預測概率排名第一的類別與實際標簽相符的準確率)、插入到卷積網絡模型的模型參數、相比較基礎模型的額外參數、推理速度(FPS)。推理速度(FPS)表示每秒預測圖像的張數,實驗結果中的推理速度是采用NVIDIA GeForce RTX 3060的6G顯存版本在1萬張圖像上平均所得。
文中模塊(APA)在CIFAR-10與CIFAR-100上進行了圖像分類任務,并與同類方法壓縮激勵模塊(SE)與有效的通道注意力模塊(ECA)進行比較。由于文中方法是卷積神經網絡即插即用的模塊,所以要嵌入到卷積神經網絡主干中進行實驗。實驗的卷積神經網絡主干包括ResNet-20,ResNet-56,ResNet-110,PreResNet-20,PreResNet-56,PreResNet-110,WideResNet-20×10,MobileNet-v2[23]。從實驗結果可以看出,APA以絕對的準確率優勢戰勝基線模塊,分別在CIFAR-10與CIFAR-100中以ResNet-20,ResNet-56,ResNet-110,PreResNet-20,PreResNet-56,PreResNet-110,WideResNet-28×10,MobileNet-v2為主干提升了0.3百分點、-0.3百分點、0.57百分點、1.97百分點、0.3百分點、0.21百分點、0.15百分點、0.06百分點、0.26百分點、2.28百分點、0.65百分點、0.65百分點、0.31百分點、-0.64百分點、0.36百分點、1.83百分點,表明注意力模塊在卷積神經網絡中是非常可取的。且與同類方法相比,該文以絕對的參數優勢取得了較好的精確率,較基線只有9,18,36,9,18,36,25,19的額外參數,也說明了文中模塊是簡單且有用的通道注意力模塊。從推理速度(FPS)上看APA模塊的推理速度和SE模塊相近,略低于ECA模塊。但是,SE模塊和ECA模塊具有復雜的超參數設置,需要經過大量的實驗去尋找相對于各類任務的最優超參數。而APA模塊沒有額外的超參數需要設置,不需要大量時間調優去適應視覺任務。
該文提出了一種只有單參數注意力模塊(APA),相比較同類模塊,模塊參數量極少,例如在ResNet-20上只有9個額外參數、mobileNet-v2上只有19個附加參數,而在更深的網絡ResNet-110上也只有36個額外參數。且APA模塊在準確率上和同類方法相比也有絕對的優勢。綜上所述,APA是一個在結構上簡單、在模型上有效的通道注意力模塊,且該模塊有更多的機會應用到更多的計算機視覺任務中,如目標檢測、圖像分割。