張宸逍,潘 慶,王效靈
(浙江工商大學信息與電子工程學院,浙江 杭州 310018)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)的誕生使極具挑戰(zhàn)的圖像識別任務(wù)取得了遠遠超越人類的準確性。ILSVRC作為計算機視覺領(lǐng)域最具影響力的競賽,誕生了包括AlexNet[1]、VGG[2]、GoogleNet[3]、ResNet[4]和SENet[5]在內(nèi)的許多經(jīng)典模型。然而,CNN前所未有的準確性能的背后,網(wǎng)絡(luò)模型的層數(shù)逐漸變得更深更寬,更深更寬的層數(shù)帶來了更高的計算成本和大量的參數(shù),這使得在資源受限的情況下部署CNN變得非常困難。
為了更好地權(quán)衡速度與精度,出現(xiàn)了專門為移動設(shè)備和資源受限的環(huán)境而設(shè)計的緊湊型卷積神經(jīng)網(wǎng)絡(luò),如MobileNets[6-8]、ShuffleNets[9-10],使用深度可分離卷積的方式,在盡可能保持模型性能的情況下大大降低了計算成本。此外,人們發(fā)現(xiàn)在CNN中引入注意力機制可以在參數(shù)量增加不大的情況下明顯地提高網(wǎng)絡(luò)性能。
然而,對于深層CNN而言,現(xiàn)有包括SENet、CBAM[11]、SKNet[12]、GENet[13]在內(nèi)的大多數(shù)注意力機制帶來的計算和參數(shù)開銷相對較小,但對于緊湊型CNN而言,這種性能的提高所帶來的計算和參數(shù)開銷代價是難以忍受的。
本文繼承ULSAM[14]中使用子空間注意機制來提高緊湊型CNN效率的嘗試,改進特征子空間的空間校準方式,在特征子空間引入注意連接[15],實現(xiàn)了前后特征子空間的信息流動,相比ULSAM,DCSAM可以更好地學習各個子空間的不同注意映射,實現(xiàn)了多尺度、多頻率的特征學習,在細粒度圖像分類上取得了比ULSAM更優(yōu)秀的表現(xiàn),在ImageNet數(shù)據(jù)集上也實現(xiàn)了更好的性能。
本文的工作主要體現(xiàn)在以下2個方面:
1)提出了一種新的用于緊湊型CNN的注意模塊DCSAM,它可以高效地學習特征子空間的注意映射,并建立前后特征子空間的連接。
2)通過以MobileNetV1和MobileNetV2為骨干網(wǎng)絡(luò)在ImageNet-1K數(shù)據(jù)集和2個細粒度圖像分類數(shù)據(jù)上的大量實驗,驗證了DCSAM的有效性。
計算機視覺中的注意力機制從本質(zhì)上和人類的選擇性視覺注意力類似,目的都是為了從龐大信息中凸顯出更為關(guān)鍵的信息。目前注意力機制應用在視覺模型中的方法主要有3種:通道注意力、空間注意力和自注意力。
通道注意力針對通道的相互依賴關(guān)系,SENet使用了一種全新的“特征重標定”策略,重新對每個通道的權(quán)重進行標定,自適應地調(diào)整通道間的特征響應。在其基礎(chǔ)上,SKNet利用多卷積核分支在不同尺度下自適應地學習特征圖注意力,從而聚焦重要的尺度特征。
空間注意力針對空間上的像素級成對關(guān)系,BAM[16]和CBAM在關(guān)注通道注意力的同時添加了空間注意力模塊,自適應地加權(quán)關(guān)鍵區(qū)域的特征表達,同時弱化背景區(qū)域,相比單一的關(guān)注通道注意力取得了更好的效果。
自注意力探索輸入特征之間的相互依賴關(guān)系,通過對輸入數(shù)據(jù)賦予不同的權(quán)重,使網(wǎng)絡(luò)能夠自行從復雜的數(shù)據(jù)中學習到值得關(guān)注的區(qū)域。NLNet[17]利用自注意力建模遠程依賴關(guān)系,提出了一種非局部信息統(tǒng)計的注意力機制,GCNet[18]在其基礎(chǔ)上結(jié)合SENet機制提出了新的全局上下文建模框架,有效節(jié)省了計算量。
為了有效節(jié)省參數(shù)和計算量,使用深度可分離卷積的緊湊型CNN的冗余度相比常規(guī)的卷積模型較低。顯然,緊湊型CNN更加需要一種能夠在低參數(shù)量和低計算量的情況下高效學習語義和空間信息的注意力機制。
子空間注意機制的主要思想是將輸入特征圖分解成若干組,每組子空間獨立地進行空間上的重新校準,最后將子空間依次拼接成輸出特征圖。其中子空間指的是特征圖的一部分特征,它是由網(wǎng)絡(luò)中某一層的特征圖按照通道維度分組得到的。包括SENet、CBAM、SKNet等前文所述的注意力模塊都致力于更好地提高CNN的表征能力,然而這些注意力機制的計算和參數(shù)開銷代價[14]對緊湊型CNN來說是難以忍受的。圖1為MobileNetV2應用DCSAM和其他注意模塊的參數(shù)量和計算量的對比圖。
圖1 注意模塊參數(shù)量和計算量對比圖
本文提出的DCSAM注意模塊在參數(shù)量和計算量方面都遠低于其他注意模塊,并且高效地實現(xiàn)了特征子空間跨通道依賴關(guān)系的學習。此外,這種模塊與現(xiàn)有的視覺模型中的注意力機制是正交和互補的。
雖然殘差連接已經(jīng)被廣泛應用在CNN模型中,但將殘差連接的概念集成到注意力機制的做法直到最近才引起人們的關(guān)注。在文獻[19]中,RANet在注意模塊內(nèi)部引入了殘差連接,利用殘差連接來更好地學習注意區(qū)域。
在文獻[15]中,研究了注意塊之間的殘差連接,提出了一種連接相鄰注意力模塊的注意連接機制,通過相鄰注意力模塊的前饋信息流動來指導注意學習。該注意連接機制實現(xiàn)了對所有注意塊的聯(lián)合訓練,注意力學習的能力得到了明顯提升,驗證了注意力模塊間信息交流的重要性。
特征子空間注意模塊的思想是將輸入特征圖分解成若干互斥的組,再對每組子空間特征重新校準,最后將所有校準后的特征依次拼接到一起。但ULSAM子空間校準僅依靠最大池化和Pointwise卷積整合跨通道信息,這雖然在一定程度上減少了計算量,但沒有很好地學習到子空間的跨通道依賴關(guān)系。為了盡可能減少計算量,使特征子空間在空間層面上更好地加權(quán)關(guān)鍵區(qū)域的特征表達,同時弱化背景區(qū)域,DCSAM利用子空間特征的空間關(guān)系生成空間注意圖,即對輸入通道分別在通道維度上做平均池化和最大池化操作,接著將得到的2個一維的特征圖按通道維度拼接在一起,再對通道數(shù)為2的輸出特征圖使用傳統(tǒng)卷積進行跨通道信息的整合,實現(xiàn)對子空間的重新校準。
對于給定的輸入特征圖F,定義經(jīng)過通道維度上的最大池化和平均池化操作后的特征圖為Favg∈1×H×W,F(xiàn)max∈1×H×W。該部分的數(shù)學處理可以用以下公式表示:
M(F)=softmax(Conv7×7[(AP(F);MP(F))])
=softmax(Conv7×7([Favg;Fmax]))
(1)
其中,softmax代表Softmax激活函數(shù),Conv7×7代表使用卷積核為7×7的卷積,AP和MP分別代表通道維度上的平均池化和最大池化。
此外,DCSAM能夠多尺度、多頻率地學習跨通道信息。這種使用特征子空間進行注意力學習的方法,不同于采用不同感受野濾波器的多尺度特征學習方法,是一種多尺度特征學習方法的補充。此外,DCSAM可以更為精細地賦予圖像中低頻和高頻分量不同的權(quán)重,更適合高度關(guān)注高頻特征的細粒度分類任務(wù)。
現(xiàn)有注意機制的設(shè)計主要是將注意塊插入到某個卷積塊后面,這使得每個注意塊只能學習到當前特征圖的信息而不能將學習到的關(guān)鍵信息傳遞到其他注意塊中,即單一的注意塊不能有效地決定關(guān)注什么區(qū)域。文獻[15]認為現(xiàn)有注意機制的協(xié)作不足,因而設(shè)計了一種連接機制來允許注意塊相互協(xié)作。
借鑒注意力連接機制的原理,DCSAM將前一子空間唯一生成的單通道特征圖Ct-1和當前子空間的特征圖進行拼接、融合,之后生成當前子空間的單通道特征圖Ct,Ct將作為后一子空間的輸入的連接特征圖。這種設(shè)計也保證了所有注意塊之間的信息流以一種前饋的方式流動,防止前后注意信息變化過大,實現(xiàn)了前后特征子空間注意塊的相互協(xié)作。當然,第一次進入特征子空間時不存在上一環(huán)節(jié)輸出的連接特征圖,將跳過合并這一操作。
考慮需要更好地適配緊湊型CNN,DCSAM僅將通道數(shù)為1的注意力特征圖與之后的子空間進行連接學習。值得強調(diào)的是,雖然特征圖會被劃分為若干特征子空間,但前后子空間的連接是一一對應的。子空間注意連接融合方式如圖2所示。
圖2 DCSAM子空間網(wǎng)絡(luò)結(jié)構(gòu)
由于CNN生成的特征圖不同,與之相應生成的注意力圖也不同,因此在連接子空間注意力時,會遇到通道匹配和空間分辨率匹配的問題。對于通道匹配,DCSAM僅輸出單通道特征圖用于連接學習,通過直接拼接在后一子空間輸入特征圖,再調(diào)整通道數(shù),可以很輕易地解決通道匹配的問題。對于空間分辨率匹配,為了節(jié)省參數(shù),DCSAM使用平均池化來調(diào)整,而沒有使用引入更多參數(shù)的卷積操作。
結(jié)合前文提出的子空間校準和子空間注意連接,DCSAM子空間網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,首先對于給定的輸入特征圖F被分成g個互斥的組[F1,F2,…,Fn,…,Fg],每組包含G個特征圖。設(shè)Fn∈G×h×w為其中一組特征圖,G為輸入的通道數(shù),h、w是特征圖的空間維度。DCSAM對Fn進行如下操作:
(2)
(3)
(4)
在上述公式中,DW1×1代表卷積核為1×1的Depthwise卷積,PW1×1代表卷積核為1×1的Pointwise卷積,Ct-1代表前一子空間輸出的注意連接特征圖,?代表element-wise product,⊕代表element-wise summation,最終的輸出是通過將g組的特征圖拼接得到的。
DCSAM通過3種情況來考量分組數(shù)g的大小:
1)如果分組數(shù)為1,即g=1。此時只有一個子空間,且該子空間包含特征圖的全部特征信息,直觀地講,只通過一張注意力圖很難完整地學習到整個特征空間的復雜關(guān)系。
2)如果增加分組數(shù)g,即1 3)如果分組數(shù)等于通道數(shù),即g=m。此時子空間內(nèi)只有單通道的特征圖,在該子空間內(nèi)學習到的注意力圖不包含任何跨通道信息。顯然,此時注意力圖能學習的特征很少,注意力圖的生成過程淪為了特征圖本身的非線性變換。 為了驗證本文提出的DCSAM,在ImageNet-1K[20]和細粒度分類數(shù)據(jù)集Stanford Cars[21]和Stanford Dogs[22]上進行圖像分類實驗。在實驗中,使用Pytorch深度學習框架,以MobileNetV1(簡稱MV1)和MobileNetV2(簡稱MV2)作為基線網(wǎng)絡(luò)。實驗所用GPU為2塊TITAN XP。為了盡可能公平地比較,將MV1和以MV1作為基線的模型的batch設(shè)置為128,SGD優(yōu)化器的動量設(shè)置為0.9,在ImageNet-1K數(shù)據(jù)集訓練90個epoch,在細粒度圖像分類數(shù)據(jù)集訓練150個epoch,初始學習率為0.1,每30個epoch后下降到原來的1/10。類似地,將MV2和以MV2作為基線的模型的batch設(shè)置為98,設(shè)置0.9動量和4e-5權(quán)值衰減的SGD優(yōu)化器,細粒度圖像數(shù)據(jù)集上訓練200個epoch。初始學習率設(shè)為0.045,每一個epoch后衰減98%。 在應用注意力模塊時,網(wǎng)絡(luò)的深層相比初始層能更好地學習全局特征。且由于網(wǎng)絡(luò)深層的特征圖空間更小,在深層應用自注意力機制比初始層計算量更小[23]。為了更好地適配緊湊型CNN,需要選擇DCSAM插入的位置。如表1和表2所示,發(fā)現(xiàn)網(wǎng)絡(luò)中存在許多重復的卷積層,其中MV1網(wǎng)絡(luò)中重復的8~12卷積層浮點計算數(shù)量占其總數(shù)的46%,MV2網(wǎng)絡(luò)也存在大量相同配置的逆殘差塊。因此,為了更有效地學習跨通道信息,對于這些帶來大量計算開銷的重復層,將把DCSAM插入到某一層后面,或直接替換掉某一層。例如,在MV1中的第8、9層后插入DCSAM,將第11層替換為DCSAM,在表中就表示為(8:1,9:1,11)。 表1 MV1網(wǎng)絡(luò)結(jié)構(gòu) 表2 MV2網(wǎng)絡(luò)結(jié)構(gòu) 通過實驗,在細粒度數(shù)據(jù)集上與子空間注意模塊ULSAM進行對比的實驗結(jié)果如表3~表5所示。 表3 MV1插入位置(8:1,9:1,11)在Cars數(shù)據(jù)集上的實驗結(jié)果 表4 MV2插入位置(14,17)在Cars和Dogs數(shù)據(jù)集上的實驗結(jié)果 表5 MV2插入位置(13,14,16,17)在Cars和Dogs數(shù)據(jù)集上的實驗結(jié)果 MV1+DCSAM在Cars數(shù)據(jù)集上的對比實驗結(jié)果如表3所示。 對于MV1,將DCSAM分別插入第8層和第9層后面,同時替換掉第11層。通過替換重復卷積層,使得網(wǎng)絡(luò)的參數(shù)量和浮點運算數(shù)都有了明顯的下降。對比基線網(wǎng)絡(luò),MV1+DCSAM在參數(shù)量和浮點運算數(shù)普遍下降的同時,Top-1準確率提高超過了4個百分點。其中,MV1+DCSAM(g=4)對比基線網(wǎng)絡(luò),在參數(shù)量減少1.4%和浮點運算數(shù)減少4%的情況下,Top-1準確率提高了7.4個百分點。對比同類型ULSAM,MV1+DCSAM在保持輕量化的同時,由于分組數(shù)的不同,Top-1準確率提高達到了1~4個百分點。其中,MV1+DCSAM(g=8)在參數(shù)量僅提高1×105的情況下,Top-1準確率提高超過了4個百分點。MV1+DCSAM(g=4)的Top-1準確率最高,達到了65.69%。 MV2+DCSAM在Cars和Dogs數(shù)據(jù)集上,應用在不同位置的對比實驗結(jié)果如表4和表5所示。 MV2用DCSAM替換掉第14層和第17層(表4),對比基線網(wǎng)絡(luò),網(wǎng)絡(luò)在參數(shù)量和浮點運算數(shù)明顯下降的同時,Cars數(shù)據(jù)集上Top-1準確率提高了2~4個百分點。其中,MV2+DCSAM(g=4)對比基線網(wǎng)絡(luò),在參數(shù)量減少12%的情況下,Top-1準確率提高了4個百分點以上。對比同類型ULSAM,DCSAM在保持輕量化的同時,由于分組數(shù)的不同,Cars和Dogs數(shù)據(jù)集上Top-1準確率提高了1~3個百分點。 MV2應用DCSAM替換掉第13層、第14層、第16層和第17層(表5),對比基線網(wǎng)絡(luò),網(wǎng)絡(luò)參數(shù)量減少25%的情況下,Top-1準確率提高了1~4個百分點。其中,MV2+DCSAM(g=4)的Top-1準確率提高了4.71個百分點。對比同類型ULSAM,DCSAM在參數(shù)量幾乎不增加的情況下,Top-1準確率普遍超過ULSAM。 實驗結(jié)果表明,在MV1和MV2中插入DCSAM確實獲得了更高的準確率,尤其是當g=4時,DCSAM往往能取得最高的性能提升,表明此時生成的注意力圖高效利用了相應子空間的跨通道信息。當g≥8時,增加分組數(shù)并不能進一步提高模型預測性能,反而略有下降,表明分組過多導致子空間內(nèi)注意力圖能夠提取的跨通道信息減少,預測性能提升不多。 為進一步驗證本文算法的有效性,在ImageNet-1K數(shù)據(jù)集上對應用不同注意模塊的MV2網(wǎng)絡(luò)進行了實驗,將MV2插入DCSAM時選用了性能提升最多的分組,即g=4。實驗結(jié)果如表6所示。 表6 MV2應用不同注意模塊在ImageNet-1K數(shù)據(jù)集上的實驗結(jié)果 MV2應用子空間注意模塊的組合在參數(shù)量和計算量上明顯少于其他類型的注意模塊。與基線網(wǎng)絡(luò)對比,MV2+DCSAM(g=4)在參數(shù)量和計算量分別減少了12%和24%的情況下,Top-1準確率提高了0.48個百分點。與添加了SE模塊和CBAM模塊的組合對比,在參數(shù)量和計算量明顯降低的情況下,準確率相仿。與同類型ULSAM對比,在參數(shù)量和浮點運算數(shù)相仿的情況下,Top-1準確率提高了0.21個百分點。 通過實驗進一步驗證了本文提出的DCSAM注意模塊的有效性。DCSAM能夠使緊湊型CNN網(wǎng)絡(luò)在更為輕量化的基礎(chǔ)上高效地進行多尺度、多頻率特征的學習。 圖3利用可視化工具Grad-CAM++[24]展示了MV2網(wǎng)絡(luò)上應用ULSAM和DCSAM注意模塊的熱力圖。通過對比能夠發(fā)現(xiàn),DCSAM更能聚焦目標圖像,這更好地解釋了DCSAM的有效性。 圖3 Grad-CAM++可視化 本文提出了一種新的子空間注意模塊,它能夠使網(wǎng)絡(luò)在保持更為輕量化的基礎(chǔ)上進行多尺度、多頻率特征的學習。這種注意力機制十分適合插入到緊湊型CNN網(wǎng)絡(luò)中,且與現(xiàn)有的注意力機制是正交和互補的。 但本文提出的方法也存在一定不足,本文方法更關(guān)注通道的相互依賴關(guān)系,對于空間上的像素級成對關(guān)系利用得還不夠。下一步工作中,將試圖找到一種結(jié)合通道注意力和空間注意力的算法來提高子空間注意模塊的性能。3 實驗結(jié)果與分析
3.1 數(shù)據(jù)集及實驗設(shè)置
3.2 細粒度分類實驗結(jié)果
3.3 ImageNet-1K分類實驗結(jié)果
3.4 可視化
4 結(jié)束語