姚亮亮,張?zhí)t*,張洋寧,溫釗發(fā)
(1.新疆農(nóng)業(yè)大學(xué) 計算機與信息工程學(xué)院,新疆 烏魯木齊 830052;2.智能農(nóng)業(yè)教育部工程研究中心,新疆 烏魯木齊 830052;3.新疆農(nóng)業(yè)信息化工程技術(shù)研究中心,新疆 烏魯木齊 830052)
從計算機視覺任務(wù)誕生起始,方法從機器學(xué)習(xí)主導(dǎo)轉(zhuǎn)為深度學(xué)習(xí)主導(dǎo),而卷積神經(jīng)網(wǎng)絡(luò)也成為計算機視覺中的主要方法。以卷積神經(jīng)網(wǎng)絡(luò)為主干模型的任務(wù)包括圖像分類[1-2]、目標(biāo)檢測[3-4]、圖像分割任務(wù)[5-6]等。而現(xiàn)存采用較為廣泛的主干模型包括ResNet[7]系列、MobileNet[8]系列等。而這些模型的成功離不開卷積神經(jīng)網(wǎng)絡(luò)優(yōu)秀的結(jié)構(gòu)設(shè)計。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計大致分為兩方面,一個是模型整體[7-8]的設(shè)計,另一個是模型中即插即用[9-10]的模塊。因此,網(wǎng)絡(luò)設(shè)計是深度卷積神經(jīng)網(wǎng)絡(luò)中一個必不可少的因素。
當(dāng)前,卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)變得越來越復(fù)雜,模型層數(shù)的增加,或者是模型寬度的增加。但是其基本操作都是圍繞卷積為核心,歸一化和激活函數(shù)為輔助構(gòu)成的。隨著網(wǎng)絡(luò)深度越來越深,寬度越來越寬,深度卷積神經(jīng)網(wǎng)絡(luò)的表征能力也越來越強,尤其是在大數(shù)據(jù)上的表現(xiàn)超乎其想象。但是,在小數(shù)據(jù)集上越深的網(wǎng)絡(luò)或越大的網(wǎng)絡(luò),對其效果越不好。大網(wǎng)絡(luò)模型由于其神經(jīng)元超多,也就是參數(shù)超多,對待小數(shù)據(jù)集就會陷入過擬合。所以,為了減少參數(shù)量,避免由于神經(jīng)元過多而產(chǎn)生過飽和這樣的現(xiàn)象,模型的發(fā)展往往朝著輕量化發(fā)展,同時也是為了適應(yīng)工業(yè)的發(fā)展,加快模型的推理速度。伴隨著這一需求的出現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計成為一個極具挑戰(zhàn)性的問題。
除去卷積神經(jīng)網(wǎng)絡(luò)本身發(fā)展的更迭,一種方便提升卷積神經(jīng)網(wǎng)絡(luò)的表征能力的模塊[9-10]也發(fā)展得尤為火熱,例如通道注意力模塊。這種模塊獨立于卷積神經(jīng)網(wǎng)絡(luò),不受神經(jīng)網(wǎng)絡(luò)的約束,可以根據(jù)各種神經(jīng)原理、數(shù)學(xué)原理方便地計算通道的注意力權(quán)重。且這種模塊適用范圍廣,可以方便地應(yīng)用到計算機視覺的各種任務(wù)。
為了更好地改進(jìn)通道注意力,使之更為精巧,該文主要關(guān)注使用一個參數(shù)更好地提取到通道的注意力權(quán)重。主要貢獻(xiàn)如下:
(1)提出一種即插即用的而非卷積神經(jīng)網(wǎng)絡(luò)新架構(gòu)的通道注意力模塊(APA)。
(2)在數(shù)據(jù)集CIFAR-10與CIFAR-100使用該模塊在多個流行的卷積神經(jīng)網(wǎng)絡(luò)主干上進(jìn)行圖像分類,取得了良好的性能。
在這部分,將敘述卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計和卷積神經(jīng)網(wǎng)絡(luò)中注意力模塊的代表性工作。
20世紀(jì)60年代,加拿大科學(xué)家從貓的視覺中樞發(fā)現(xiàn)了感受野、雙眼視覺等視覺功能,這是神經(jīng)網(wǎng)絡(luò)發(fā)展的里程碑事件。1980年左右,出現(xiàn)了類似卷積神經(jīng)網(wǎng)絡(luò)的神經(jīng)認(rèn)知網(wǎng)絡(luò),用于手寫字符識別和其他識別任務(wù)。1998年,Yann LeCuu等人[11]提出了基于梯度下降的學(xué)習(xí)算法─LeNet,這是卷積神經(jīng)網(wǎng)絡(luò)后續(xù)發(fā)展的開端。LeNet網(wǎng)絡(luò)由簡單卷積層和全連接層組成。2012年,隨著AlexNet[1]的出現(xiàn),深度卷積神經(jīng)網(wǎng)絡(luò)從此主導(dǎo)了計算機視覺任務(wù),當(dāng)然計算機硬件資源的提升也功不可沒。AlexNet的突出特點是采用了非線性激活函數(shù)Relu和Dropout層,旨在解決梯度消失問題,防止過擬合。然后在2014年,VGG[2]網(wǎng)絡(luò)使用了大量的3×3卷積和2×2池來擴展卷積神經(jīng)網(wǎng)絡(luò)的感受野。同年出現(xiàn)了GoogLeNet[12],整個卷積神經(jīng)網(wǎng)絡(luò)由初始模塊組成,其本質(zhì)是將信道分成幾個感受野不同的信道,從而得到不同的感受野。初始模塊使用了大量的1×1卷積,其主要作用是降低數(shù)據(jù)的維數(shù),節(jié)省計算量。2015年,ResNet[7]網(wǎng)絡(luò)的出現(xiàn),讓卷積網(wǎng)絡(luò)更加深入。ResNet主要利用剩余模塊組成整個網(wǎng)絡(luò),其跳轉(zhuǎn)連接結(jié)構(gòu)在緩解深度網(wǎng)絡(luò)梯度消失的同時,極大地提高了網(wǎng)絡(luò)特征提取的能力。2016年,DenseNet[13]重用了網(wǎng)絡(luò)中各層的特征圖,旨在緩解梯度消失問題,提高網(wǎng)絡(luò)表示能力,減少網(wǎng)絡(luò)參數(shù)。2018年,MobileNet[8]采用深度可分卷積作為網(wǎng)絡(luò)的基本模塊,減少了參數(shù)數(shù)量和計算量,使模型更輕便。
在人類的視覺系統(tǒng)中,人眼總是對感興趣的事物關(guān)注度比較高,對不感興趣的事物關(guān)注度低,或完全不關(guān)注。例如,在電影院中,為了讓觀眾獲得更好的體驗,往往采取關(guān)燈的方式,讓觀眾只關(guān)注電影屏幕。同樣在卷積神經(jīng)網(wǎng)絡(luò)中,為了讓卷積神經(jīng)網(wǎng)絡(luò)獲得更好的性能,研究者會采用更好的方式去抑制或提高圖像特征塊中通道的重要性,給每個通道賦予一個注意力權(quán)重。在深度卷積神經(jīng)網(wǎng)絡(luò)提取特征的過程中,特征圖的不同通道和不同空間位置通常是不同的部分。在計算機視覺的任務(wù)中,不同部分的相對重要性是不同的。為了使網(wǎng)絡(luò)更有效地學(xué)習(xí)特征,注意力機制可以通過自適應(yīng)學(xué)習(xí)對不同部分賦予不同的權(quán)重,這可以看作是一個特征選擇的過程。通道注意力的通用形式可以表述為:
Xo=Xi*f(Xi)
(1)
式中,Xo表示輸出特征向量,Xi表示輸入特征向量,f(·)表示計算注意力權(quán)重的方法。從公式(1)中可以看出計算通道注意力的過程分為兩步:
(1)根據(jù)輸入特征向量利用計算通道注意力的方法計算出通道注意力權(quán)重,也就是式中的f(Xi)。
(2)將計算出的通道注意力權(quán)重乘到輸入特征向量的對應(yīng)通道中,也就是Xi*f(Xi)。
當(dāng)前,卷積神經(jīng)網(wǎng)絡(luò)中最具有代表性的通道注意力模塊當(dāng)屬壓縮激勵模塊(SE)[9]。在壓縮激勵網(wǎng)絡(luò)這篇文章中首先提出了通道注意力的概念,壓縮激勵模塊計算通道注意力權(quán)重的方式分為兩部分:壓縮與激勵。壓縮部分是通過全局平均池化計算通道的全局上下文信息,以獲得通道的依賴關(guān)系。激勵部分是通過全連接層去調(diào)整通道的依賴關(guān)系,以使獲得的通道注意力權(quán)重更加準(zhǔn)確。至此,每年的計算機視覺頂級會議中都會出現(xiàn)一些通道注意力模塊相關(guān)的設(shè)計,不過大多數(shù)都是壓縮激勵模塊方法的改進(jìn)。其中,最具有吸引力的是有效的注意力模塊(ECA)[14],這種模塊改進(jìn)壓縮激勵模塊中的激勵部分,認(rèn)為獲得更合適的注意力權(quán)重,不應(yīng)該使用降維的方式,遂采取一維卷積來代替激勵部分的全連接層,該模塊簡單有效,且參數(shù)量極少。由Gao等人[15]提出的GSoP-Net在壓縮模塊中使用全局二階池(GSoP)來捕獲全局信息,以提高其捕獲高階統(tǒng)計信息的能力。Lee等人[16]提出的SRM模塊采用與信道寬度相同的style pooling和full connection layer (CFC)分別代替壓縮激勵模塊(SE)中的壓縮和激勵部分。Yang等人[17]提出的GCT通過范數(shù)捕獲信道的全局信息,并應(yīng)用一個可學(xué)習(xí)的向量(α)來縮放該特征。然后采用通道規(guī)范化的競爭機制進(jìn)行通道間的互動。像其他常見的正常歸一化方法一樣,可學(xué)習(xí)的尺度參數(shù)(γ)和部分β用于調(diào)整歸一化。最后,tanh激活用于控制注意力載體。同時國內(nèi)有很多關(guān)于通道注意力的應(yīng)用,如Jiang等人[18]應(yīng)用壓縮激勵模塊(SE)進(jìn)行表情識別。Zhang等人[19]利用通道注意力提升表情識別任務(wù)的性能。
在這部分先介紹單參數(shù)通道注意力(APA)模塊的原理和代碼實現(xiàn),再討論卷積神經(jīng)網(wǎng)絡(luò)中具有代表性的通道注意力模塊壓縮激勵模塊(SE)[9]和有效的通道注意力模塊(ECA)[14]與APA模塊在操作上的差異以及參數(shù)量的對比。文中方法和傳統(tǒng)的通道注意力模塊在計算通道注意力權(quán)重的方式上大有不同,但是最終的目的都是為了計算通道注意力權(quán)重。
從減少通道注意力模塊參數(shù)的角度,該文提出了一種只有單參數(shù)通道注意力模塊(APA)。APA在計算通道注意力權(quán)重是基于簡單的數(shù)學(xué)原理。流程如圖1所示。
圖1 單參數(shù)的通道注意力(APA)模塊流程
計算通道注意力的方式同傳統(tǒng)的通道注意力一樣,也分為兩部分。設(shè)輸入特征向量為F[C,H,W],其中C,H,W分別代表輸入特征向量的通道數(shù)以及高和寬。第一部分如公式(2),先將F[C,H,W]的通道求和,然后在得到的向量上加一個參數(shù)(b)得到特征向量(F[1,H,W])。第二部分如公式(3),將第一部分得到的特征向量和輸入特征向量的每個通道求取余弦相似度,然后通過Sigmoid激活函數(shù)進(jìn)行非線性激活,最后得到了通道注意力權(quán)重。再將得到的通道注意力權(quán)重乘到輸入通道向量的對應(yīng)通道中,如公式(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)
接下來,解釋一下這樣做的原因。之所以對通道求和是因為求和這項操作會將通道的依賴關(guān)系隱式映射到F[1,H,W]上,而添加b是因為要利用余弦相似度去度量F[C,H,W]與F[1,H,W]的相似度,余弦相似度是為了度量兩個向量在方向上的關(guān)系。b的改變會導(dǎo)致F[1,H,W]在方向上發(fā)生改變,如圖2所示,從而達(dá)到動態(tài)調(diào)整通道依賴關(guān)系的目的,以使得到的通道注意力權(quán)重更加適合各個卷積神經(jīng)網(wǎng)絡(luò)以及各類視覺任務(wù)。
圖2 參數(shù)(b)對向量(S)在方向上的影響
為了說明APA的簡單性,圖3給出了APA模塊基于Pytorch框架的實現(xiàn)代碼。
圖3 “APA代碼”形式表現(xiàn)
表1展現(xiàn)了文中模塊(APA)和壓縮激勵(SE)、有效的注意力模塊(ECA)在操作上的差異以及參數(shù)量的對比。
表1 SE,ECA,APA模塊操作以及參數(shù)的對比
表2 不同通道注意力模塊的實驗結(jié)果。
APA是一個即插即用的靈活模塊,可以插入到當(dāng)前流行卷積神經(jīng)網(wǎng)絡(luò)模型中,以此來增強模型對圖像通道特征的表征能力。APA在ResNet系列及其改進(jìn)系列(PreResNet,WideResNet),插入其卷積網(wǎng)絡(luò)模塊的示意如圖4所示。
圖4 單參數(shù)通道注意力模塊(APA)嵌入ResNet系列的示意圖
在這部分,先敘述一下實驗環(huán)境與數(shù)據(jù)集情況,再討論一下文中模塊在當(dāng)前流行的卷積神經(jīng)網(wǎng)絡(luò)主干上進(jìn)行圖像分類的實驗結(jié)果。
該文的參數(shù)設(shè)置遵循所有模型的標(biāo)準(zhǔn)訓(xùn)練流程[20]。具體來說,每張圖像進(jìn)行零填充,每側(cè)4個像素,并從該填充圖像或其水平翻轉(zhuǎn)中隨機裁剪一個32 ×32的圖像供訓(xùn)練使用。評價過程中,所有模型均使用原始測試集圖像進(jìn)行測試。優(yōu)化通過動量為0.9,批量大小為128,權(quán)重衰減為0.000 5的SGD[21]優(yōu)化器完成。所有網(wǎng)絡(luò)都在單個GPU上進(jìn)行訓(xùn)練。學(xué)習(xí)率以0.1開始,在32 000和48 000次迭代(在64 000次迭代時停止劃分)時除以10。
該文使用作者提供的公共代碼,因為所有方法具有隨機性,所以實驗均是進(jìn)行3次重復(fù)后取平均值得出的結(jié)果。
實驗顯卡為一塊24G的NVIDIA GeForce RTX 3090。
所采用的數(shù)據(jù)集是圖像分類中的公開數(shù)據(jù)集CIFAR-10[22]與CIFAR-100[22]。CIFAR-10源自一個共有8 000萬張微小圖像的數(shù)據(jù)集。CIFAR-10共有6萬張32×32的彩色圖像,其中5萬張圖像用于訓(xùn)練,1萬張圖像用于測試。
共有10個類別,每個類別6 000張圖像。CIFAR-100同CIFAR-10一樣是8 000萬微小圖像微小數(shù)據(jù)集的子集。CIFAR-100也有6萬張32×32的彩色圖像,其中5萬張用于訓(xùn)練,1萬張用于測試,不同的是CIFAR-100有100個類,每個類有600張圖像。
實驗所采用的評價指標(biāo)有TOP-1準(zhǔn)確率(預(yù)測概率排名第一的類別與實際標(biāo)簽相符的準(zhǔn)確率)、插入到卷積網(wǎng)絡(luò)模型的模型參數(shù)、相比較基礎(chǔ)模型的額外參數(shù)、推理速度(FPS)。推理速度(FPS)表示每秒預(yù)測圖像的張數(shù),實驗結(jié)果中的推理速度是采用NVIDIA GeForce RTX 3060的6G顯存版本在1萬張圖像上平均所得。
文中模塊(APA)在CIFAR-10與CIFAR-100上進(jìn)行了圖像分類任務(wù),并與同類方法壓縮激勵模塊(SE)與有效的通道注意力模塊(ECA)進(jìn)行比較。由于文中方法是卷積神經(jīng)網(wǎng)絡(luò)即插即用的模塊,所以要嵌入到卷積神經(jīng)網(wǎng)絡(luò)主干中進(jìn)行實驗。實驗的卷積神經(jīng)網(wǎng)絡(luò)主干包括ResNet-20,ResNet-56,ResNet-110,PreResNet-20,PreResNet-56,PreResNet-110,WideResNet-20×10,MobileNet-v2[23]。從實驗結(jié)果可以看出,APA以絕對的準(zhǔn)確率優(yōu)勢戰(zhàn)勝基線模塊,分別在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百分點,表明注意力模塊在卷積神經(jīng)網(wǎng)絡(luò)中是非??扇〉?。且與同類方法相比,該文以絕對的參數(shù)優(yōu)勢取得了較好的精確率,較基線只有9,18,36,9,18,36,25,19的額外參數(shù),也說明了文中模塊是簡單且有用的通道注意力模塊。從推理速度(FPS)上看APA模塊的推理速度和SE模塊相近,略低于ECA模塊。但是,SE模塊和ECA模塊具有復(fù)雜的超參數(shù)設(shè)置,需要經(jīng)過大量的實驗去尋找相對于各類任務(wù)的最優(yōu)超參數(shù)。而APA模塊沒有額外的超參數(shù)需要設(shè)置,不需要大量時間調(diào)優(yōu)去適應(yīng)視覺任務(wù)。
該文提出了一種只有單參數(shù)注意力模塊(APA),相比較同類模塊,模塊參數(shù)量極少,例如在ResNet-20上只有9個額外參數(shù)、mobileNet-v2上只有19個附加參數(shù),而在更深的網(wǎng)絡(luò)ResNet-110上也只有36個額外參數(shù)。且APA模塊在準(zhǔn)確率上和同類方法相比也有絕對的優(yōu)勢。綜上所述,APA是一個在結(jié)構(gòu)上簡單、在模型上有效的通道注意力模塊,且該模塊有更多的機會應(yīng)用到更多的計算機視覺任務(wù)中,如目標(biāo)檢測、圖像分割。