陳耀文 譚曉玲
(重慶三峽學(xué)院,重慶 404130)
圖像分類指的是根據(jù)某種算法判定輸入的圖像的類別,一般的圖像分類步驟包括:圖像預(yù)處理、圖像特征提取和圖像類別判定。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)模仿了生物的視知覺機(jī)制,解決了傳統(tǒng)人工提取特征的繁瑣工程,實(shí)現(xiàn)了從數(shù)據(jù)中自動(dòng)地提取特征。在ImageNet 2012 競賽上,AlexNet[1]遠(yuǎn)超傳統(tǒng)機(jī)器學(xué)習(xí)方法,使用8 個(gè)卷積網(wǎng)絡(luò)層達(dá)到了15.3%的TOP-5 圖像分類錯(cuò)誤率。而隨著對CNN 在圖像分類領(lǐng)域研究的深入,研究者發(fā)現(xiàn)CNN 的特征提取能力可以隨著網(wǎng)絡(luò)的深度和寬度而增加。VGGNet[2]探索了更深地網(wǎng)絡(luò),設(shè)計(jì)了可以重復(fù)堆疊的卷積網(wǎng)絡(luò)模塊,通過堆疊這些網(wǎng)絡(luò)模塊構(gòu)建網(wǎng)絡(luò),并提出多層網(wǎng)絡(luò)模型中特征的等級(jí)會(huì)隨著堆疊層的深度變的更加豐富。InceptionNet[3]探索的更寬的網(wǎng)絡(luò),提出了分支設(shè)計(jì),在一個(gè)網(wǎng)絡(luò)層使用多種卷積核提取多層次特征,使網(wǎng)絡(luò)具有更強(qiáng)的表達(dá)能力,同時(shí)多分支疊加的大通道輸出相比無分支在計(jì)算消耗上更少。ResNet[4]引入的殘差結(jié)構(gòu)解決了網(wǎng)絡(luò)加深導(dǎo)致的網(wǎng)絡(luò)退化問題,使得深度網(wǎng)絡(luò)在學(xué)習(xí)不到新特征時(shí)可以通過殘差結(jié)構(gòu)實(shí)現(xiàn)恒等映射,保證網(wǎng)絡(luò)性能不會(huì)變差,并且殘差結(jié)構(gòu)對各層之間的微小差異更加敏感,特征學(xué)習(xí)能力更強(qiáng)。
然而,在實(shí)際任務(wù)中,受限于計(jì)算能力,常常無法構(gòu)建足夠深和足夠?qū)挼木W(wǎng)絡(luò)去處理和記憶全部的信息,而需要對信息進(jìn)行選擇,因此,研究者嘗試將注意力機(jī)制引入到CNN 中。注意力機(jī)制是當(dāng)前深度學(xué)習(xí)領(lǐng)域比較流行的一個(gè)概念,其模仿人的視覺注意力模式,每次只關(guān)注與當(dāng)前任務(wù)最相關(guān)的源域信息,使得信息的索取更為高效。注意力機(jī)制已在語言模型、圖像標(biāo)注等諸多領(lǐng)域取得了突破進(jìn)展,并且研究者發(fā)現(xiàn)將注意力機(jī)制與CNN 結(jié)合的可以讓網(wǎng)絡(luò)關(guān)注重要特征,提高重要特征關(guān)注點(diǎn)表示,并抑制不必要的特征,減弱不必要特征關(guān)注點(diǎn)表示,并且緩解了CNN 傳統(tǒng)卷積操作的局部感受野缺乏全局信息層次的理解能力,導(dǎo)致提取特征的特征差異性的問題,進(jìn)一步提升CNN的特征提取能力[22]。
本文主要框架如下:在第二章中本文對CNN 注意力模型機(jī)制進(jìn)行了介紹,并且基于典型的幾種CNN 注意力模型詳述了CNN 注意力模型的發(fā)展方向和各模型的特點(diǎn);然后在第三章中本文結(jié)合第二章的分析對CNN 注意力模型存在的挑戰(zhàn)進(jìn)行了概述;最后在第四章對本文進(jìn)行了總結(jié)概括。
CNN 注意力模型是在CNN 的基礎(chǔ)上發(fā)展而來,如圖1 所示,CNN 主要包括輸入層,隱含層和輸出層[23]。在輸入層將圖像輸入到網(wǎng)絡(luò)中,然后在隱含層通過卷積操作或池化操作實(shí)現(xiàn)特征的傳遞,學(xué)習(xí)圖像的分布式特征表示,最后由輸出層將學(xué)習(xí)到的分布式特征表示映射到樣本標(biāo)記空間完成分類輸出。隱含層中特征傳遞的載體為特征圖,在圖像分類領(lǐng)域中特征圖的儲(chǔ)存形式一般為C×H×W,也即通道數(shù)×圖像高度×圖像寬度。
圖1 CNN 網(wǎng)絡(luò)
CNN 注意力模型在上圖的基礎(chǔ)上對特征圖進(jìn)行了注意力學(xué)習(xí),如圖2 所示,CNN 注意力模型可以分為全局上下文建模、依賴關(guān)系轉(zhuǎn)換和特征融合三個(gè)步驟。在全局上下文建模部分對信息進(jìn)行壓縮;在依賴關(guān)系轉(zhuǎn)化部分,基于壓縮的信息學(xué)習(xí)注意力權(quán)重矩陣;最后在特征融合部分,權(quán)重矩陣通過與特征圖相乘或相加等方式得到具有注意力的特征圖。
圖2 注意力模型
注意力機(jī)制決定了權(quán)重矩陣的學(xué)習(xí),可分為軟性注意力(Soft Attention)、硬性注意力(Hard Attention)和自注意力(Self Attention):軟性注意力機(jī)制是指在選擇信息的時(shí)候,不是從N個(gè)信息中只選擇1 個(gè),而是對每個(gè)分配0-1 之間的權(quán)重,計(jì)算N個(gè)輸入信息的加權(quán)平均,再輸入到神經(jīng)網(wǎng)絡(luò)中計(jì)算。相對的,硬性注意力就是指從N 個(gè)信息中選擇1 個(gè)或幾個(gè)信息,對每個(gè)信息權(quán)重分配為0 或1,相比軟性注意力速度更快,但是會(huì)損失一部分信息。自注意力機(jī)制是基于輸入項(xiàng)自身進(jìn)行區(qū)域權(quán)重學(xué)習(xí),進(jìn)行權(quán)重分配,減少了對外部信息的依賴,更擅長捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性,所以大部分CNN 注意力模型都引入了自注意力機(jī)制。
按注意力作用在特征圖上的維度可以分為:通道域注意力、空間域注意力、卷積域注意力和混合域注意力。前兩種CNN 注意力模型主要關(guān)注了特征圖上的某一個(gè)維度,學(xué)習(xí)這一維度上的元素之間的關(guān)系。通道域注意力模型捕獲了通道間的不同特征表示之間的關(guān)系,學(xué)習(xí)了通道上的注意力權(quán)重,然后依據(jù)注意力權(quán)重判斷通道上特征的重要程度,從而關(guān)注更具代表性的特征,提高網(wǎng)絡(luò)分類性能。Momenta 等人[5]提出的壓縮激活網(wǎng)絡(luò)(Squeeze-and-Excitation Networks,SENet),通過向CNN 基礎(chǔ)網(wǎng)絡(luò)中加入一個(gè)SE 模塊,利用CNN 中的通道依賴性建模通道間的相互依賴關(guān)系,自適應(yīng)的校準(zhǔn)通道的特征響應(yīng)。如圖3 中的SE模塊結(jié)構(gòu),輸入的特征圖C×H×W 經(jīng)過一個(gè)全局平均池化和兩層全連接(Full Connect,F(xiàn)C)后,再由sigmoid 激活函數(shù)[24]激活,輸出一個(gè)1×1×C 范圍在[0,1]的通道權(quán)重,最后與特征圖相乘實(shí)現(xiàn)增強(qiáng)重要特征,削弱不重要的特征,使特征提取具有更強(qiáng)的指向性。與通道域注意力模型相似,空間域注意力模型學(xué)習(xí)了特征圖空間像素之間的關(guān)系,區(qū)別在于通道域注意力模型更關(guān)注特征的不同表示,而空間域注意力模型更關(guān)注空間像素之間的長距離依賴,強(qiáng)化空間上的關(guān)鍵信息。如Non-local[6]通過對通道域進(jìn)行壓縮獲取特征圖的空間特征,然后對空間特征進(jìn)行Softmax 歸一化得到空間域權(quán)重,最后與原特征圖相乘得到具有空間域注意力的特征圖??臻g轉(zhuǎn)換網(wǎng)絡(luò)(spatial transformer network,STN)[7]引入空間注意力,基于圖像信息去學(xué)習(xí)一個(gè)空間變換矩陣,經(jīng)過空間變換后生成的圖像局部重要信息可以更好地被卷積框提取出來,從而使網(wǎng)絡(luò)更關(guān)注這個(gè)圖像局部信息??臻g轉(zhuǎn)換機(jī)制設(shè)計(jì)了定位網(wǎng)絡(luò)、網(wǎng)格生成器和采樣器三個(gè)部分。定位網(wǎng)絡(luò)將圖片信息轉(zhuǎn)換為空間轉(zhuǎn)換參數(shù),網(wǎng)格生成器根據(jù)空間轉(zhuǎn)換參數(shù)學(xué)習(xí)構(gòu)建一個(gè)采樣網(wǎng)格,最后由采樣器基于特征圖和采樣網(wǎng)格生成新特征圖。
圖3 不同作用域的注意力模型
與通道域、空間域注意力模型不同,卷積域注意力模型不對特征圖直接分配權(quán)重,而是對卷積核的元素分配權(quán)重,并以此來表示核范圍內(nèi)的區(qū)域重要性。卷積核選擇網(wǎng)絡(luò)(Selective Kernel Networks,SKNet)[8]提出了一種機(jī)制,即卷積核的重要性,它說明了不同的圖像能夠得到具有不同重要性的卷積核。SKNet 對不同圖像使用的卷積核權(quán)重不同,即一種針對不同尺度的圖像動(dòng)態(tài)生成卷積核。網(wǎng)絡(luò)主要由Split、Fuse、Select 三部分組成。Split 部分是特征圖經(jīng)過不同大小的卷積核部分進(jìn)行卷積的過程,也就是待選擇的卷積核,fuse 部分計(jì)算每個(gè)卷積核的權(quán)重,Select 部分是根據(jù)不同權(quán)重的卷積核計(jì)算后得到的新的特征圖的過程。
上述注意力模型只關(guān)注了一個(gè)維度的注意力,而混合域注意力模型結(jié)合多個(gè)維度的注意力,對特征進(jìn)行重標(biāo)定,進(jìn)一步強(qiáng)化關(guān)鍵特征。如圖4,卷積塊注意模塊(Convolutional Block Attention Module,CBAM)[9]將通道注意力模塊和空間注意力模塊串行連接,同時(shí)對網(wǎng)絡(luò)進(jìn)行打分,得到經(jīng)過雙重注意力調(diào)整的特征圖,這迫使網(wǎng)絡(luò)關(guān)注更重要的區(qū)域特征信息。而瓶頸注意力模塊(Bottleneck Attention Module,BAM)[10]則將通道注意力和空間注意力并行連接,然后用特征圖相加的方式使網(wǎng)絡(luò)具有兩個(gè)維度的注意力。
圖4 CBAM
雖然只需要在CNN 上添加一個(gè)注意力模塊就可以使CNN具有注意力,但是在許多大型CNN 上添加注意力模塊,特別是混合域注意力模塊,仍然會(huì)產(chǎn)生大量的計(jì)算消耗。針對這個(gè)問題,許多研究人員提出了改進(jìn)方法使網(wǎng)絡(luò)在學(xué)習(xí)注意力的同時(shí)具有更少的計(jì)算消耗。
此外,許多研究也致力于增強(qiáng)注意力對全局信息的表征能力。GCNET[16]結(jié)合了non-local 和SENet,使用簡化的non-local 進(jìn)行上下文建模后,利用兩個(gè)1×1 卷積學(xué)習(xí)通道上的信息對通道維添加注意力。全局二階池卷積網(wǎng)絡(luò)(Global Second-Order Pooling Convolutional Networks,GSoP-Net)[17]提出二維平均池化代替SENet 中的全局平局池化,并引入?yún)f(xié)方差矩陣表現(xiàn)通道維注意力。雙重注意力網(wǎng)絡(luò)(Double Attention Networks,A2net)[18]提出了一種用于收集和分布長距離特征的二階注意力,對全局關(guān)鍵特征進(jìn)行收集再基于另一種注意力機(jī)制自適應(yīng)地將特征分配到對應(yīng)位置。自校正卷積網(wǎng)絡(luò)(Self-calibrated Convolutions Networks,SCNet)[19]提出一種自校正卷積,采用由一個(gè)卷積核變換的低維嵌入來校準(zhǔn)另一部分中卷積核的卷積變換,自適應(yīng)地在每個(gè)空間位置周圍建立了遠(yuǎn)程空間和通道間依賴關(guān)系。有效通道注意力網(wǎng)絡(luò)(Efficient Channel Attention Networks,ECANet)[20]針對降維操作會(huì)削弱通道注意力學(xué)習(xí)能力的問題,提出了不降維的局部跨信道交互策略。
注意力模型的出現(xiàn)使得CNN 在包括圖像分類等領(lǐng)域的性能表現(xiàn)進(jìn)一步提升,并且它有助于克服CNN 中的一些問題,如數(shù)據(jù)集中類內(nèi)差距大、類間差距小或者全局空間上局部特征聯(lián)系不強(qiáng)導(dǎo)致的分類困難。然而,雖然現(xiàn)在CNN 注意力模型在許多任務(wù)上都取得了很好的效果,但是CNN 注意力模型的研究仍然存在一些不足。
首先,目前CNN 注意力模型的研究已經(jīng)拓展到包括通道、空間、卷積等多個(gè)維度,混合注意力也有很好的性能提升,然而在實(shí)際問題中,對每個(gè)維度都增加注意力來提升網(wǎng)絡(luò)性能在計(jì)算消耗的約束下是難以實(shí)現(xiàn)的,同時(shí),對某些數(shù)據(jù)集增加多一維注意力并不能明顯提升分類準(zhǔn)確率,有時(shí)還會(huì)導(dǎo)致過擬合現(xiàn)象。因此,如何針對數(shù)據(jù)集設(shè)計(jì)注意力機(jī)制是一個(gè)具有現(xiàn)實(shí)意義的問題,可以結(jié)合網(wǎng)絡(luò)結(jié)構(gòu)搜索的方法,在網(wǎng)絡(luò)計(jì)算消耗約束下搜索最適合數(shù)據(jù)集的注意力機(jī)制和添加的注意力模塊的數(shù)量,自適應(yīng)的構(gòu)建注意力模型。
其次,隨著時(shí)代發(fā)展,三維視頻流的處理(如手勢識(shí)別)有了很大的需求,然而目前大部分的注意力網(wǎng)絡(luò)研究都是針對二維圖像設(shè)計(jì),如何在時(shí)間域引入注意力機(jī)制,讓網(wǎng)絡(luò)更加關(guān)注視頻流關(guān)鍵幀,和時(shí)間域注意力如何與空間域和通道域注意力建立顯性聯(lián)系,使網(wǎng)絡(luò)具有更強(qiáng)的視頻流處理能力是一個(gè)值得探索的問題。
最后,相較于SENet、Non-local 等通過全局池化獲取全局信息的方法,TAM、CGC[21]等方法通過旋轉(zhuǎn)、局部池化減少了暴力壓縮產(chǎn)生的信息損失,然而這類避免信息損失的方法還有一定的提升空間,需要更加精細(xì)的注意力。
注意力機(jī)制是強(qiáng)化CNN 圖像分類特征提取能力的重要方式之一,并為CNN 圖像分類提供了一定的可解釋性。本文主要介紹了CNN 注意力模型的主要機(jī)制和發(fā)展過程,并基于現(xiàn)有的CNN 注意力模型分析了CNN 注意力模型存在的不足和可能的研究方向。希望本文可以為未來的CNN 注意力模型研究提供一定的參考。