張宸嘉,朱 磊,俞 璐
陸軍工程大學 通信工程學院,南京 210007
隨著信息技術(shù)的發(fā)展,海量繁雜的信息向人們不斷襲來,信息無時無刻充斥在四周。然而人類所能接收的信息則是有限的,科研人員發(fā)現(xiàn)人類視覺系統(tǒng)在有限的視野之下卻有著龐大的視覺信息處理能力。在處理視覺數(shù)據(jù)的初期,人類視覺系統(tǒng)會迅速將注意力集中在場景中的重要區(qū)域上,這一選擇性感知機制極大地減少了人類視覺系統(tǒng)處理數(shù)據(jù)的數(shù)量,從而使人類在處理復雜的視覺信息時能夠抑制不重要的刺激,并將有限的神經(jīng)計算資源分配給場景中的關鍵部分,為更高層次的感知推理和更復雜的視覺處理任務(如物體識別、場景分類、視頻理解等)提供更易于處理且更相關的信息[1]。借鑒人類視覺系統(tǒng)的這一特點,科研人員提出了注意力機制的思想。對于事物來說特征的重要性是不同的,反映在卷積網(wǎng)絡中即每張?zhí)卣鲌D的重要性是具有差異性的[2]。注意力機制的核心思想是通過一定手段獲取到每張?zhí)卣鲌D重要性的差異,將神經(jīng)網(wǎng)絡的計算資源更多地投入更重要的任務當中,并利用任務結(jié)果反向指導特征圖的權(quán)重更新,從而高效快速地完成相應任務[3]。
近兩年,注意力模型(Attention Model)被廣泛使用在自然語言處理、圖像識別、語音識別等各種不同類型的深度學習任務當中,如SANet[4](Structure-Aware Networks)與VSG-Net[5](Visual-Spatial-Graph Network)等,是深度學習技術(shù)中最值得關注與深入了解的核心技術(shù)之一[6]。
圖1展示了人類在看到一幅圖像時是如何高效分配有限注意力資源的,其中紅色區(qū)域表明視覺系統(tǒng)更關注的目標。很明顯對于圖1所示的場景,人們會把注意力更多投入到人的臉部、文本的標題以及文章首句等位置。
圖1 視覺注意力機制Fig.1 Mechanism of visual attention
深度學習中的注意力機制從本質(zhì)上講和人類的選擇性視覺注意力機制類似,核心目標也是從眾多信息中選擇出對當前任務目標更為關鍵的信息[7]。
注意力機制最初在2014年作為RNN(Recurrent Neural Network)中編碼器-解碼器框架的一部分來編碼長的輸入語句,后續(xù)被廣泛運用在RNN中[8]。例如在機器翻譯中通常是用一個RNN編碼器讀入上下文,得到一個上下文向量(RNN的最后一個隱狀態(tài)),一個RNN解碼器以這個隱狀態(tài)為起始狀態(tài),依次生成目標的每一個單詞[9]。但這種做法的缺點是:無論之前的上下文有多長,包含多少信息量,最終都要被壓縮成一個幾百維的向量。這意味著上下文越大,最終的狀態(tài)向量會丟失越多的信息。輸入語句長度增加后,最終解碼器翻譯的結(jié)果會顯著變差。事實上,因為上下文在輸入時已知,一個模型完全可以在解碼的過程中利用上下文的全部信息,而不僅僅是最后一個狀態(tài)的信息,這就是注意力機制的基礎思想。
但是在CNN(Convolutional Neural Networks)中,沒有了狀態(tài),注意力機制作用在特征圖之上,試圖獲取特征圖中的可用注意力信息,達到更好的任務效果[10]。接下來本文將對CNN中的注意力獲取手段進行詳細介紹和分析。
1.1.1 SE-Net(SqueezeandExcitation)
2018年內(nèi),CVPR(Computer Vision and Pattern Recognition)收錄的論文中提出了SE-Net(Squeeze-and-Excitation Network),SE-Net是Momenta胡杰團隊(WMW)提出的新的網(wǎng)絡結(jié)構(gòu),該團隊利用SE-Net,獲得了ImageNet 2017競賽圖像分類任務的冠軍,在ImageNet數(shù)據(jù)集上將top-5 error降低到2.251%,對比于以往的最好成績2.991%有了較大的提升[11]。
SE-Net中的關鍵結(jié)構(gòu)SE-Net block利用了注意力機制的思想,顯式地建模特征圖之間的相互依賴關系,并通過學習的方式來自適應地獲取到每張?zhí)卣鲌D的重要性[12],然后依照這個重要程度去對原數(shù)據(jù)進行更新。SE-Net通過這種方式提升有用的特征重要程度同時降低無用特征的重要性,并以不同通道的重要性為指導,將計算資源合理地投入不同通道當中。實驗證明該方法在各種任務中都有著不錯的表現(xiàn)。
通俗地來說SENet的核心思想在于通過網(wǎng)絡根據(jù)損失函數(shù)值loss去學習特征權(quán)重,使得對于任務更為效果明顯的特征圖權(quán)重變大,無效果或效果不明顯的特征圖權(quán)重變小的方式來訓練模型從而達到更好的結(jié)果[13]。SE-Net block并不是一個完整的網(wǎng)絡結(jié)構(gòu),而是一個即插即用的輕量級模塊,通過將此模塊嵌入網(wǎng)絡之中,可以在小幅度提升參數(shù)量的代價下更加合理地分配神經(jīng)網(wǎng)絡的計算資源,大幅提升網(wǎng)絡性能。
在SE-Net block中,每張?zhí)卣鲌D通過全局平均池化操作進行擠壓,將每一張?zhí)卣鲌D擠壓成一個實數(shù)(見公式(1)),這個實數(shù)具有特征圖上的全局信息,每張?zhí)卣鲌D的擠壓結(jié)果組合成一個向量作為每組特征圖的權(quán)重,其中H和W分別為特征圖的高和寬,u為卷積后的結(jié)果,z為對應特征圖的全局注意力信息,將此向量通過全連接層與激活函數(shù)(見公式(2)),訓練結(jié)果用來放大對于識別任務更加重要特征圖的權(quán)重,縮小不重要特征圖的權(quán)重,其中σ為relu激活函數(shù),δ代表sigmoid激活函數(shù),W1與W2代表兩個不同的全連接操作。得到的向量s代表每張?zhí)卣鲌D的重要性程度。向量s通過公式(3)激勵原特征圖,指導特征圖不斷向著有利于識別任務的方向更新,擠壓激勵操作結(jié)構(gòu)如圖2所示。
圖2 擠壓激勵操作Fig.2 Squeeze and excitation operation
1.1.2 ECA-Net(EfficientChannelAttention)
2020年,CVPR收錄的論文中提出了ECA-Net[14](Efficient Channel Attention Network)來對SE-Net進行改進,它實現(xiàn)了對SE-Net block的改進,提出了一種不降維的局部跨信道交互策略(ECA block)和自適應選擇一維卷積核大小的方法,通過一維卷積層匯總跨信道信息的方法獲取更加精確的注意力信息。ECA block的思想建立在作者認為跨通道的信息交互是很有必要的,而SE-Net block只注重通道內(nèi)部信息的綜合,沒有考慮到相鄰信道信息的重要性。ECA block的結(jié)構(gòu)如圖3所示。公式(4)表示最終的權(quán)重是綜合了各個相鄰通道的信息獲得,其中σ為激活函數(shù),y i代表通道,wi為通道y i的權(quán)重,Ω代表與y i相鄰的k個通道,k的值是隨著學習自適應變化的。為了實現(xiàn)這一想法,作者利用了一維卷積層來進行實現(xiàn),通過核為k的一維卷積對通道與其相鄰的k-1個通道信息進行綜合,如公式(5)所示,C1D k表示核為k的一維卷積操作,y表示通道。
圖3 ECA-Net模塊Fig.3 ECA-Net module
1.2.1 SK-Net(SelectiveKernelNetworks)
2019年,CVPR收錄的論文中提出了SK-Net(Selective Kernel Networks),SK-Net基于卷積核的注意力機制,即卷積核的重要性,即不同的圖像經(jīng)過不同卷積核的重要性是不同的,其結(jié)構(gòu)如圖4所示。整個SK-Net結(jié)構(gòu)由Split、Fuse、Select三部分組成[15]。Split的任務是將輸入的特征圖X進行不同卷積核大小的卷積操作。如圖4所示,對X進行Kernel3×3和Kernel5×5的卷積操作,得到輸出U1與U2。而在Fuse部分將對U1與U2進行element-wise summation,得到輸出特征圖U,通過全局平均池化與全連接層獲取特征圖的注意力信息,并創(chuàng)建了一個緊湊的特征z∈Rd×1,以便為精確和自適應選擇提供指導如公式(6)所示,其中δ是ReLU函數(shù),B表示批量標準化,W表示全連接層且W∈Rd×C。公式(7)表明為了研究d對模型效率的影響,文章使用下降參數(shù)r來控制其值,L表示d的最小值。在Select部分中,將這個緊湊特征z向量重新分為兩個(本文情況)或多個(更多的情況)特征向量,然后分別與相應的split之后的特征圖進行相應通道的相乘操作,然后再通過這種加權(quán)共同構(gòu)成輸入到下一個神經(jīng)元的特征向量。兩個特征向量a c、b c的生成如公式(8)、(9)所示,其中A,B∈RC×d,a、b分別表示U1與U2的注意力向量,A c∈R1×d表示A的第c行,ac表示a的第c個元素值,對于向量B同理。
圖4 SK-Net模塊Fig.4 SK-Net module
1.2.2 ResNeSt
2020年,亞馬遜、加州大學戴維斯分校的張航、李沐、Smola等研究者進一步改進了ResNet[16](Deep Residual Network),提出了ResNeSt,其中利用ResNet、SE-Net與SKNet的思想,提出了Split-Attention block[17]。在ResNeSt block中,整體大框架運用了殘差網(wǎng)絡的結(jié)構(gòu),通過將網(wǎng)絡的輸入Input輸入k個Cardinal分支當中,公式(10)表述了每個Cardinal的輸入,其中R代表每個Cardinal中split后的分支數(shù),k代表第k個Cardinal,U代表著split后每個分支的輸入。公式(11)表述了每個Cardinal模塊的輸出,V代表攜帶了通道權(quán)重的Cardinal輸出,a(c)是由softmax計算得到的權(quán)重,計算方法如公式(12)所示,其中G代表每個split的權(quán)重。在經(jīng)過Cardinal模塊后對最后的k個輸出進行拼接,以達到綜合k個Cardinal輸出信息的目的,如公式(13)所示,并將拼接后的輸出與原本的輸入進行element-wise summation,得到最后的輸出,其結(jié)構(gòu)如圖5所示。
圖5 ResNeSt block結(jié)構(gòu)Fig.5 ResNeSt block structure
在每個Cardinal中,又利用了SE-Net與SK-Net的思想,使用Split模塊對每個Cardinal的輸入切分為r個分支,通過SE-Net中的擠壓激勵操作獲取每個分支的注意力信息作為Fuse模塊,最后在Select模塊中使得具有注意力信息的向量與其對應的分支特征圖相乘,并通過element-wise summation綜合r個分支的輸出作為最終的Cardinal輸出,Cardinal結(jié)構(gòu)如圖6所示。
圖6 Cardinal結(jié)構(gòu)Fig.6 Cardinal structure
1.2.3 CBAM(ConvolutionalBlockAttentionModule)
2018年,ECCV(European Conference on Computer Vision)收錄的論文中提出了卷積注意力模塊CBAM(Convolutional Block Attention Module Network),它的創(chuàng)新在于,它認為對于卷積網(wǎng)絡中的特征圖來說,不僅通道中蘊含著豐富的注意力信息[18],通道內(nèi)部,即特征圖像素點間也具有大量的注意力信息,而以往的注意力機制只關注了通道上的注意力信息,這對于空間上的注意力信息是一種浪費[19]。CBAM通過構(gòu)建兩個子模塊,空間注意力模塊SAM(Spatial Attention Module),通道注意力模塊CAM(Channel Attention Module)分別匯總空間和通道兩方面的注意力信息,并將信息進行一定程度的綜合,從而獲得更全面可靠的注意力信息[20],對計算資源的分配進行更合理的指導,其結(jié)構(gòu)如圖7所示。
圖7 CBAM結(jié)構(gòu)Fig.7 CBAM structure
通道注意力模塊將輸入的特征圖F(H×W×C)分別經(jīng)過基于寬和高的global max pooling(全局最大池化)和global average pooling(全局平均池化),得到兩個1×1×C的特征圖,接著,再將它們分別送入一個兩層的神經(jīng)網(wǎng)絡(MLP),第一層神經(jīng)元個數(shù)為C/r(r為減少率),激活函數(shù)為Relu,第二層神經(jīng)元個數(shù)為C,這個兩層的神經(jīng)網(wǎng)絡是共享的。而后,將MLP輸出的特征進行基于element-wise的加和操作,再經(jīng)過sigmoid激活操作,生成最終的通道注意力特征,即公式(14)中的Mc(F),其中Favg為特征圖經(jīng)過全局平均池化的結(jié)果,F(xiàn)max為經(jīng)過全局最大池化的結(jié)果,整個通道門注意力模塊結(jié)構(gòu)如圖8所示。
圖8 CAM結(jié)構(gòu)Fig.8 CAM structure
空間注意力模塊將通道注意力模塊輸出的特征圖F作為本模塊的輸入特征圖[21]。首先做一個基于通道的全局最大池化和全局平均池化,得到兩個尺寸為H×W×1的特征圖,然后將這兩個特征圖基于通道做拼接操作。然后經(jīng)過一個7×7卷積操作,降維為H×W×1,再經(jīng)過sigmoid生成空間注意力特征,即公式(15)中的M s(F),其中f代表卷積操作,[]代表通道拼接操作,最后將該向量和該模塊的輸入特征圖做乘操作,得到最終生成的特征。整個空間注意力模塊結(jié)構(gòu)如圖9所示。
圖9 SAM結(jié)構(gòu)Fig.9 SAM structure
1.2.4 雙注意力網(wǎng)絡(DualAttentionNetwork)
2019年CVPR收錄的論文中提出了DA-Net(Dual Attention Network),與CBAM相似的是,它的思想也是綜合通道和空間兩路的注意力信息,但不同的是CBAM的兩路注意力信息的獲取是串行的,而DA-Net中的兩路注意力信息的獲取是并行的,且獲取注意力信息的方式也有很大差別。DA-Net從通道與空間兩個分支通過對特征圖進行矩陣操作構(gòu)建特征圖的相關性矩陣S和X,兩個矩陣分別用來表征通道之間的相關性和通道內(nèi)像素點之間的相關性,用此矩陣對特征圖的更新進行引導,增大關鍵特征的權(quán)重,使得將更多的注意力放在更易于進行區(qū)分的優(yōu)秀特征之上。雙注意力模塊結(jié)構(gòu)如圖10所示。
圖10 雙注意力網(wǎng)絡Fig.10 Dual attention network
其中PAM(Position Attention Module)是空間分支,其結(jié)構(gòu)如圖11所示,CAM(Channel Attention Module)是通道分支,其結(jié)構(gòu)如圖12所示,這兩個分支通過對于特征圖的處理分別構(gòu)建出了關于特征圖通道與空間位置的相關性矩陣X(尺寸為C×C)與S(尺寸為(H×W)×(H×W)),其中H、W、C分別為特征圖的高、寬與通道數(shù),并用此兩個相關性矩陣來引導特征圖不同通道與空間位置權(quán)重的更新方向,DA-Net捕捉了空間和通道維度中的全局特征依賴關系,使用位置注意力模塊來學習特征的空間相互依賴性,通道注意力模塊來模擬通道相互依賴性[22]。
圖11 空間分支Fig.11 Spatial branching
圖12 通道分支Fig.12 Channel branching
1.2.5 金字塔特征注意力網(wǎng)絡(PyramidFeature AttentionNetwork)
2019年CVPR收錄的論文中提出了金字塔特征注意力網(wǎng)絡,同樣是利用特征圖在通道間與通道內(nèi)部像素點都富含大量的注意力信息的思想[23],其結(jié)構(gòu)如圖13所示。其中CA模塊(Channel Attention Module)為通道注意力模塊,CA分支的結(jié)構(gòu)與SE-Net的思想是相同的,都是通過全局平均池化提取通道注意力信息,利用全連接獲取各個通道的權(quán)重,如圖14所示,SA模塊(Spatial Attention Module)為空間注意力模塊,它利用了交替的卷積核相同的卷積層來提取通道內(nèi)部像素位置之間的注意力信息,獲得通道內(nèi)部不同像素位置之間的相關性與重要程度等信息[24],其結(jié)構(gòu)如圖15所示。兩個模塊分別從通道與空間兩個方向提取特征圖中的注意力信息,提取不同通道與空間中不同像素位置的權(quán)重信息,并對特征圖進行自適應的更新。
圖13 金字塔特征注意力網(wǎng)絡Fig.13 Pyramid feature attention network
圖14 通道注意力模塊Fig.14 Channel attention module
圖15 空間注意力模塊Fig.15 Spatial attention module
本次實驗中采用的是實驗室采集的5類同型號電臺輻射源實測數(shù)據(jù),實驗目標是運用此數(shù)據(jù)進行同型號的輻射源個體識別任務。
在實驗室環(huán)境當中,利用6臺同型號USRP(Universal Software Radio Peripheral)設備,其中5臺作為發(fā)送設備,1臺作為接收設備,5臺輻射源設備同時發(fā)送主頻為1 GHz的輻射源信號,將所接收到的5臺輻射源設備的信號通過LabVIEW軟件進行數(shù)據(jù)處理,接收端接收的信號如圖16所示,其中白線為I路信號振幅,紅線為Q路信號振幅。
圖16 接收端接收的信號Fig.16 Signal received by receiver
將經(jīng)過處理后的5類輻射源信號作為數(shù)據(jù)集,分別以傳統(tǒng)手動特征提取方法,普通深度神經(jīng)網(wǎng)絡方法,本文提出的深度注意力神經(jīng)網(wǎng)絡方法進行輻射源個體識別實驗。輸入網(wǎng)絡中數(shù)據(jù)的尺寸為2×128,樣本數(shù)為100 000,其中90%作為訓練集,10%作為測試集,網(wǎng)絡的batch size為128,訓練100輪次,損失函數(shù)為交叉熵函數(shù),使用Adam算法來優(yōu)化網(wǎng)絡。
基于注意力機制的輕量與即插即用的特性,設計實驗所用的深度網(wǎng)絡模型為數(shù)據(jù)預處理層、特征提取層與數(shù)據(jù)分類層的組合,其結(jié)構(gòu)如圖17所示。其中在數(shù)據(jù)預處理層對信號進行降噪處理,特征提取層通過卷積層與注意力模塊的組合實現(xiàn)信號特征的合理有效提取。保持網(wǎng)絡結(jié)構(gòu)不變,僅替換不同的注意力模塊,實現(xiàn)對5類同型號電臺輻射源信號的分類任務。
圖17 網(wǎng)絡模型結(jié)構(gòu)Fig.17 Network model structure
本文針對五個同型號電臺輻射源信號作為數(shù)據(jù)集進行仿真實驗,利用本文介紹的七種不同注意力模塊,在相同網(wǎng)絡條件下分別對每一種注意力模塊與不使用注意力模塊對數(shù)據(jù)集進行分類任務,實驗結(jié)果如圖18和表1所示。
表1 實驗結(jié)果Table 1 Experimental results
圖18 實驗結(jié)果Fig.18 Experimental results
從實驗結(jié)果中可以看出,對比普通神經(jīng)網(wǎng)絡,當在網(wǎng)絡中使用注意力模塊時,分類任務將更快地達到收斂,且具有更優(yōu)的分類效果,不使用注意力模塊時識別率為83.52%,而在使用注意力模塊后分類效果都有著不同程度的提升,其中當使用CBAM模塊時效果最優(yōu)為93.23%(+9.71%)。而在提升分類任務識別效果與收斂速度的同時,注意力模塊因其輕量的特征,僅給網(wǎng)絡帶來少量參數(shù)量的提升,整體的訓練速度也幾乎保持不變。
綜上所述,注意力機制在為網(wǎng)絡帶來極小負擔的條件下對網(wǎng)絡的速度與任務效果帶來大幅度的提升,同時其即插即用的特性為程序設計人員帶來了極大的便利性,是深度學習中高效且實用性較高的機制之一。
近幾年,注意力機制的思想被廣泛應用在各種深度學習任務中,如計算機視覺、圖像分割、自然語言處理等[25]。大量實驗證明了注意力機制是行之有效且節(jié)省資源的,當注意力機制的思想運用于卷積神經(jīng)網(wǎng)絡中時,需要著眼于卷積網(wǎng)絡中所特有的特征圖中的關鍵信息。當前注意力機制的主流方法是將特征圖中的潛在注意力信息進行深度挖掘,最常見的是通過各種手段獲取各個特征圖通道間的通道注意力信息與特征圖內(nèi)部像素點之間的空間注意力信息,獲取的方法也包括但不僅限于卷積操作,矩陣操作構(gòu)建相關性矩陣等,其共同的目的是更深層次、更全面地獲取特征圖中完善的注意力信息[26],于是如何更深地挖掘,從哪里去挖掘特征圖的注意力信息,將極有可能會成為未來注意力方法發(fā)展的方向之一。
目前,獲取注意力的方法基本基于通道間的注意力信息、空間像素點之間的注意力信息和卷積核選擇的注意力信息,是否能夠從新的方向去獲取特征圖更豐富的注意力信息,或者以新的方式或手段去獲取更精準的注意力信息也是未來需要關注的一個重點[27]。
ECA-Net論文中的實驗證明了跨通道的信息交互對于注意力信息的獲取是有積極作用的,這也從側(cè)面驗證了不同通道之間并不是相互獨立的,其內(nèi)部是存在許多有利的有價值的信息的[28],那么著眼于不同通道內(nèi)部的其他信息的提取,如不同特征圖中像素點的空間注意力信息或其他跨通道信息是否對于獲取更加精準的注意力分布有著正確的導向作用也是一個值得探索的方向[29]。
注意力機制作為一個輕量級的模塊[30],有著即插即用的特點,但是即使其本身參數(shù)量并不高[31],在深度學習一些任務當中,注意力模塊往往會被反復多次的調(diào)用,當注意力模塊調(diào)用次數(shù)過多時仍然會對網(wǎng)絡整體造成一定的負擔[32],如何優(yōu)化模塊結(jié)構(gòu),降低模塊參數(shù)量或減少模塊調(diào)用次數(shù),更快地獲取更精準的注意力信息,對于以后注意力機制在其他任務中的推廣有著舉足輕重的作用[33],也是未來需要研究的重要內(nèi)容之一。
卷積網(wǎng)絡中的注意力機制的核心在于深度挖掘特征圖中所含有的信息[34],而目前所發(fā)現(xiàn)的注意力獲取渠道相對較少,但是注意力機制已經(jīng)被廣泛證明其針對大量深度學習任務不僅具有參數(shù)量小[35],即插即用的便捷性[36],還可以較為明顯地提升任務效果。說明未來對于注意力機制的深度研究是必要且意義非凡的[37],將對深度學習任務產(chǎn)生重大的影響。
隨著信息技術(shù)的不斷發(fā)展,人類必將面臨著大量而繁雜的信息,針對如此龐雜的信息去完成各項深度學習任務將變得更為困難[38]。當數(shù)據(jù)量無法任意改變的情況下,如何高效率地完成任務就變得尤為重要[39]。注意力機制便是提升深度學習任務效率的重要方法之一。當深度學習方法較為低效時,在深度學習任務中引入注意力機制將會實現(xiàn)“曲線救國”[40],利用其低成本、高收益[41]的特點,大幅提升信息處理的效率,在未來的深度學習任務中大放異彩[42]。
注意力機制在深度學習任務中得到了廣泛的使用,運用注意力機制進一步提升深度學習的任務效果是常用且有效的一種手段,也成為了當前的研究熱點之一[43]。本文針對卷積網(wǎng)絡中注意力機制的相關研究方法進行了簡要總結(jié),并對該技術(shù)的實現(xiàn)方法以及其創(chuàng)新之處進行了詳細介紹。同時本文對于注意力機制的未來發(fā)展方向與可挖掘的創(chuàng)新方式進行了分析[44],指出了需要當前亟待解決的瓶頸與問題,為后續(xù)卷積神經(jīng)網(wǎng)絡中注意力機制的進一步研究提供了指導作用[45]。