劉 穎 車 鑫
(1.西安郵電大學圖像與信息處理研究所,陜西西安 710121;2.電子信息現(xiàn)場勘驗應用技術(shù)公安部重點實驗室,陜西西安 710121)
深度學習[1-2]的廣泛應用在計算機視覺等領(lǐng)域取得了巨大進展,但作為一項數(shù)據(jù)驅(qū)動的技術(shù),其性能嚴重依賴于海量帶標簽的圖像數(shù)據(jù),對于圖像數(shù)據(jù)不足的情況,易出現(xiàn)過擬合現(xiàn)象。然而,收集大量的標注數(shù)據(jù)面臨著許多挑戰(zhàn)。一方面,對于公安領(lǐng)域、瀕危物種以及醫(yī)療等領(lǐng)域,由于數(shù)據(jù)的特殊性及安全性,很難獲取大量的圖像樣本。另一方面,對于數(shù)據(jù)的采集、標注需要消耗大量的人力物力資源,這一情況也制約著算法的性能。故此,如何通過少量的訓練數(shù)據(jù)訓練性能優(yōu)良的網(wǎng)絡(luò)模型成為了現(xiàn)階段一個研究熱點。小樣本學習[3]旨在少量帶有標簽的樣本上學習知識,對其余未帶標簽的新樣本進行預測分類,成為解決這類問題的關(guān)鍵技術(shù)。
作為早期的嘗試,樸素貝葉斯近鄰方法[4]和KNN 算法[5]在小樣本學習研究背景下證明了它的有效性,但分類精度有限。而元學習作為當前的研究熱點,能夠利用先前經(jīng)驗快速的學習新任務(wù),不再孤立的考慮新任務(wù),實現(xiàn)了良好的分類性能。元學習又叫做學會學習,它解決的是讓機器像人類一樣具備學會如何學習的能力[6]。常見的元學習方式是將學習算法編碼進卷積神經(jīng)網(wǎng)絡(luò)中,包括基于度量的方法、基于模型的方法和基于優(yōu)化的方法[7]?;诙攘康姆椒ㄊ钱斍皯米顝V泛的方法,它是將圖像映射到一個度量空間并使用某種度量方式計算不同圖像樣本的差異,例如,孿生網(wǎng)絡(luò)[8]使用兩路神經(jīng)網(wǎng)絡(luò)以提取樣本特征,并通過距離度量公式實現(xiàn)分類;Matching Networks[3]通過余弦距離度量支持集樣本和查詢集樣本間的相似性,查詢集樣本屬于和它相似性大的支持集樣本所在的類別;Prototypical Networks[9]對每個類別的樣本提取中心點作為原型,通過歐幾里得距離進行度量;CovaMNet[5]算法是一種基于分布一致性的協(xié)方差度量網(wǎng)絡(luò),通過計算類別和查詢樣本分布之間的一致性來度量類別和查詢樣本之間的關(guān)系。Graph Neural Networks(GNN)[10]是通過圖神經(jīng)網(wǎng)絡(luò)學習節(jié)點之間的關(guān)系,并將其作為度量來對未知樣本進行分類。Simon 等人[11]提出一種自適應子空間算法,該算法通過使用奇異值分解(SVD)為每個類別計算出一個特征空間的子空間,將查詢樣本的特征向量投影到子空間中進行距離度量。GCR(Global Class Representations)[12]提出一種新的小樣本訓練方式,將包含大量樣本的基類別和少量樣本的新類別一起進行訓練,得到每個類別的表征定義為全局類別表征,將支持集類別表征通過注冊模塊得到注冊類的全局表征,最后選出與當前Episode 類別表征最相近的n個類別表征,并使用歐式距離來進行度量。BSNet(Bi-Similarity Network)算法[13]提出一種雙相似性度量網(wǎng)絡(luò),根據(jù)不同特征的兩個相似度度量學習特征圖,能夠?qū)W習到更多有區(qū)別性和更少相似性偏差的特征信息,從而顯著提高模型的泛化能力?;谀P偷姆椒?,如Santoro等人[14]提出基于記憶增強的算法,結(jié)合了LSTM 和額外的內(nèi)存存儲模塊。其優(yōu)勢是減少了網(wǎng)絡(luò)的參數(shù)量,避免了對訓練數(shù)據(jù)的依賴。MetaNet[15]是通過基學習器與元學習器之間的高階信息反饋學習新的任務(wù)。文獻[16]采用更傳統(tǒng)的帶有閉式解的可微分回歸方法(如:嶺回歸、邏輯回歸)來替代K-NN、LSTM 等學習算法,以一種新穎的思路降低數(shù)據(jù)維度的同時保證基學習器的學習能力。文獻[17]提出了一種任務(wù)無偏的思想,通過引入正則化損失項(最大化熵減和最小化不平等性)的方式約束模型,能夠在參數(shù)更新時,減小訓練任務(wù)偏好,提升模型的泛化能力。基于優(yōu)化的方法,如:MAML(model-agnostic meta-Learning)[18]使用少量的梯度迭代步驟就可以學習到適用于新任務(wù)的參數(shù)?;谔卣髟鰪娫獙W習優(yōu)化方法[19],首先利用凸優(yōu)化問題的性質(zhì)來優(yōu)化基學習器,之后使用壓縮雙線性網(wǎng)絡(luò)來增強通道間關(guān)系并實現(xiàn)降維,同時通過空間注意力來增強特征表示。不同于以上基于優(yōu)化的方法,Aravind 等人[20]提出一種優(yōu)化的MAML 算法,該算法的核心是利用隱微分,在求解過程中僅需內(nèi)循環(huán)優(yōu)化的解,而不需要考慮整個內(nèi)循環(huán)優(yōu)化器的優(yōu)化過程,在不增加計算成本的同時,解決梯度消失問題。
由于圖神經(jīng)網(wǎng)絡(luò)在表示樣本間關(guān)系方面的優(yōu)勢,現(xiàn)階段越來越受研究者的廣泛關(guān)注。該網(wǎng)絡(luò)結(jié)構(gòu)由節(jié)點和邊組成,其中節(jié)點表示的是一個樣本圖像,由節(jié)點產(chǎn)生鄰接矩陣表示為邊,即樣本間的關(guān)系,通過迭代地執(zhí)行節(jié)點特征和節(jié)點關(guān)系更新,預測沒有標簽的樣本圖像,從而完成小樣本圖像分類任務(wù)。2018 年,Victor[10]首次將圖神經(jīng)網(wǎng)絡(luò)引入小樣本圖像分類任務(wù)中,提出了一個端到端的GNN,它利用支持集和查詢集進行特征提取,并以此作為圖網(wǎng)絡(luò)的節(jié)點獲得邊作為度量,通過迭代地更新圖的過程構(gòu)建類間和類內(nèi)樣本的關(guān)系完成分類任務(wù)。與之不同,CGA-GNN(Category-relevant Graph Affinity-Graph Neural Network)[21]通過對GNN 加入一種新的類別相關(guān)的圖相似度度量來顯式地描述查詢集樣本與支持集樣本之間的關(guān)系。TPN(Transductive Propagation Network)[22]并未直接使用圖網(wǎng)絡(luò)對未知樣本預測,而是通過圖網(wǎng)絡(luò)輸出的特征將標簽從支持集樣本傳遞到查詢集樣本實現(xiàn)分類。EGNN(Edge-labeling Graph Neural Network)[23]采用邊標記的框架,顯式地建模類內(nèi)相似性和類間差異性,通過迭代更新邊的標簽并用于樣本聚類。
現(xiàn)有算法主要從構(gòu)建有效的圖網(wǎng)絡(luò)結(jié)構(gòu)入手,通過幾個卷積塊提取圖像特征,而未深入挖掘圖像特征對于圖網(wǎng)絡(luò)性能的影響。本文算法通過增強目標顯著性區(qū)域特征來初始化節(jié)點特征,從而獲得樣本間更豐富的關(guān)系型信息來對圖網(wǎng)絡(luò)進行優(yōu)化。具體來說,該模型由圖神經(jīng)網(wǎng)絡(luò)[10],CBAM(Convolutional Block Attention Module)注意力模塊[24],以及標簽傳播模塊[22]構(gòu)成。通過CBAM 模塊增強圖像中有區(qū)別部分的權(quán)重來對圖節(jié)點初始化,有效地提高圖像目標域特征的表征力。之后通過節(jié)點之間的信息傳遞得到圖網(wǎng)絡(luò)的邊作為度量,從而隱式地加強類內(nèi)樣本的相似性,增大類間樣本的差異性。最后使用邊進行標簽傳播來預測未知樣本,提高模型的分類準確性。
本文其余部分結(jié)構(gòu)如下,第2 節(jié)詳細地描述了本文算法;第3 節(jié)給出了實驗結(jié)果和分析;第4 節(jié)對全文進行總結(jié)。
在小樣本圖像分類過程中,數(shù)據(jù)集由訓練集、驗證集和測試集組成。其中,訓練集用于學習不同任務(wù)的分類器,驗證集用于分類器模型的選擇,測試集用于分類器模型的測試,數(shù)據(jù)集之間沒有交集。采用匹配網(wǎng)絡(luò)[8]的定義,將數(shù)據(jù)分為多個子任務(wù)T,每個子任務(wù)T都包含一個支持集S以及一個查詢集Q。從訓練集中隨機采樣N類數(shù)據(jù),每類數(shù)據(jù)再隨機抽取K個樣本作為支持集S==1,2,...,K;n=1,2,...,N},共計ST=N*K個有標注數(shù)據(jù);然后從上述采樣的N類中剩下的樣本中選取b個樣本作為查詢集Q==1,2,...,b,n=1,2,...,N},共計QT=b*N個,其中x和y分別表示圖像和類別標簽。同樣,驗證集與測試集也進行同樣的設(shè)置來模擬小樣本學習的情況。研究目的是要在僅有N×K個樣本的支持集參考下,對查詢集中所有樣本作出正確分類,這樣的問題稱為N-way Kshot問題。
如圖1所示為本文算法框圖。通過突出目標的顯著性區(qū)域來初始化圖節(jié)點特征,增強樣本之間的相關(guān)性。該算法包括嵌入模塊、CBAM 注意力模塊、圖神經(jīng)網(wǎng)絡(luò)模塊和標簽傳播模塊。對于嵌入模塊,我們采用四層卷積塊提取圖像特征。另一方面,為了避免特征冗余,添加了CBAM注意力模塊來增強關(guān)鍵區(qū)域特征權(quán)重,并以此作為初始化節(jié)點特征來提升特征的表示能力。之后根據(jù)圖神經(jīng)網(wǎng)絡(luò)構(gòu)建節(jié)點之間的關(guān)系,并對其使用標簽傳播來預測未知樣本。
2.2.1 嵌入模塊
該嵌入模塊由4 個卷積層構(gòu)成,不同于GNN 算法的嵌入模塊,本文算法的每個卷積層僅具有64個大小為3×3 的卷積核。該操作目的在于減少網(wǎng)絡(luò)的計算參數(shù),加快學習速率。每個卷積層的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
通過如上圖4個相同結(jié)構(gòu)的卷積層提取支持集和查詢集樣本圖像特征,如式(1),其中,F(xiàn)s和Fq分別表示經(jīng)過嵌入模塊提取后的支持集特征和查詢集特征。f(·)表示為具有全連接層的4層卷積神經(jīng)網(wǎng)絡(luò),support和query表示為支持集和查詢集樣本。
2.2.2 CBAM 注意力模塊
為了優(yōu)化圖網(wǎng)絡(luò)節(jié)點特征,本文提出使用CBAM注意力機制來增強顯著性區(qū)域特征。如圖3所示,該注意力模塊結(jié)合了通道注意力(CAM)和空間注意力(SAM)模塊。其中,通道注意力是用來學習需要關(guān)注“什么”的問題;空間注意力是學習需要關(guān)注的“在哪里”的問題。通過結(jié)合兩種注意力來形成一種互補的作用,從而進行圖神經(jīng)網(wǎng)絡(luò)節(jié)點特征初始化。
首先將嵌入模塊獲取的圖像特征映射F∈RC×H×W作為輸入特征,其中C表示通道數(shù),H表示圖像的高,W表示圖像的寬;通道注意力模塊通過利用特征的通道間關(guān)系產(chǎn)生通道關(guān)注,分別進行全局平均池化和最大池化,從而獲得兩個通道描述符∈R1×1×C和∈R1×1×C。將其輸入到具有兩層神經(jīng)網(wǎng)絡(luò)的感知器,并將得到的兩個特征相加后經(jīng)過一個Sigmoid激活函數(shù)得到權(quán)重系數(shù)MC。
其中σ(·)表示為Sigmoid 函數(shù),θC表示為2 層感知器(W)的參數(shù)。最后,使用權(quán)重系數(shù)MC和嵌入模塊獲得的特征F相乘即可得到縮放后的新特征F′。
空間注意力通過利用特征的空間關(guān)系來產(chǎn)生。將F′進行平均池化和最大池化得到兩個通道描述符∈R1×H×W和∈R1×H×W,并將這兩個描述符通道拼接在一起,經(jīng)過一個激活函數(shù)為Sigmoid的7×7的卷積層,得到權(quán)重系數(shù)MS。
其中θS表示卷積層(Conv)的參數(shù),C(,)表示兩個描述符的拼接,σ(·)表示為Sigmoid 激活函數(shù),將權(quán)重系數(shù)MS與F′相乘得到最終細化后的特征圖F″∈RC×H×W。
2.2.3 圖神經(jīng)網(wǎng)絡(luò)
通過將CBAM 模塊提取的圖像特征與相應的獨熱編碼(one-hot Encoding)標簽進行拼接(對于未知樣本,與全零標簽進行拼接)視為圖神經(jīng)網(wǎng)絡(luò)的初始節(jié)點特征,將其作為節(jié)點輸入到如圖4 所示的三層圖網(wǎng)絡(luò)中,并從當前節(jié)點的隱藏信息學習邊的特征表示,即為圖中節(jié)點間的關(guān)系,
其中Zi表示為更新的圖節(jié)點特征,φ為一個對稱函數(shù),它是通過兩個節(jié)點向量差的絕對值疊加多層神經(jīng)網(wǎng)絡(luò)構(gòu)造的。再根據(jù)式(5)更新圖節(jié)點特征,
其中g(shù)(·)表示為更新圖的全連接層,Ai表示為第i個圖中的邊。通過迭代計算三次,不斷進行節(jié)點間信息傳遞,得到一個三層的圖神經(jīng)網(wǎng)絡(luò),提升了圖網(wǎng)絡(luò)的學習性能。
2.2.4 標簽傳播模塊
通過初始化節(jié)點特征,使得圖神經(jīng)網(wǎng)絡(luò)節(jié)點之間的關(guān)系得到了增強。并將節(jié)點之間邊的權(quán)重進行歸一化操作,用來進行對未知樣本的預測。如圖5 所示,根據(jù)圖神經(jīng)網(wǎng)絡(luò)構(gòu)建的樣本間的關(guān)系進行標簽傳播。
首先構(gòu)造一個尺寸為(N×K+Q)×N的非負矩陣M,其中N表示支持集包含的類別數(shù),K表示每個類別包含的樣本數(shù),Q表示查詢集樣本數(shù)。矩陣B∈M通過迭代的方式進行更新:
其中,Bt表示為第t次迭代的預測矩陣,E表示歸一化的邊權(quán)重,即E=,其中D為對角矩陣,A為學習到的邊權(quán)重,α∈(0,1)表示為傳播信息的數(shù)量。Y∈M,若帶有標簽的樣本來自于支持集,則Y=1,否則為0。迭代之后,B將收斂為B*=(I-αE)-1Y,I表示為單位矩陣。并最終利用Softmax 進行概率的預測,實現(xiàn)小樣本圖像分類任務(wù)。
本實驗在以下5個小樣本圖像數(shù)據(jù)集上測試驗證模型的性能,其示例如圖6所示。
miniImageNet[3]:是由Google DeepMind 團隊提出的小樣本學習任務(wù)最常用的基準數(shù)據(jù)集之一。包含100 個類別,每個類別600 張圖像,共計60000張圖像數(shù)據(jù)。64 類作為訓練集、16 類作為驗證集、20類作為測試集。
CUB-200[25]:是由加州理工學院提出的細粒度鳥類圖像數(shù)據(jù)集,包含200 種鳥類,130 類作為訓練集、20 類作為驗證集、30 類作為測試集,共計6033張圖片。
Stanford Dogs[26]:是由斯坦福大學提出的細粒度小狗圖像數(shù)據(jù)集,包含120 種狗,70 類作為訓練集、20 類作為驗證集、30 類作為測試集,共計20580張圖片。
Stanford Cars[27]:是由斯坦福大學提出的細粒度汽車圖像數(shù)據(jù)集,包含196 類汽車,130 類作為訓練集、17 類作為驗證集、30 類作為測試集,共計16185張圖片。
CIIP-TPID[28]:是由西安郵電大學圖像與信息處理研究所建立的輪胎花紋圖像數(shù)據(jù)集,包含67類不同品牌型號的輪胎花紋圖像。其中,表面花紋數(shù)據(jù)集(每類80張)、壓痕花紋數(shù)據(jù)集(每類80張)以及混合花紋數(shù)據(jù)集(每類160張)。44類作為訓練集、10類作為驗證集、13類作為測試集。且該數(shù)據(jù)集為2019年亞洲ACM多媒體挑戰(zhàn)賽提供輪胎花紋圖像數(shù)據(jù)[29]。
本算法采用LeakyReLU 作為激活函數(shù),交叉熵損失函數(shù)作為損失度量,將Batch size 大小設(shè)為10。采用Adam 優(yōu)化器,其初始化的學習率為0.0005,每迭代20000 次使學習率衰減一半,衰減權(quán)重為10-6。且為了較為公平的對比算法性能,所有算法的嵌入模塊均僅由幾個簡單的卷積層構(gòu)成。
實驗中,采用2.1節(jié)所述的N-way K-shot作為評價指標。通過執(zhí)行5-way 1-shot、5-way 5-shot得到分類準確度來驗證本文算法的優(yōu)越性,
實驗一,miniImageNet小樣本圖像分類
如表1 所示,在miniImageNet 數(shù)據(jù)集上執(zhí)行5-way 1-shot、5-way 5-shot 進行測試,圖像輸入尺寸為84 ×84。與兩個經(jīng)典的小樣本圖像分類算法K-NN、NBNN 和基于元學習的小樣本圖像分類算法進行對比測試,驗證本文算法的優(yōu)越性。
表1 在miniImageNet上實現(xiàn)小樣本學習的分類精度Tab.1 Classification accuracy of few-shot learning on miniImageNet
通過實驗發(fā)現(xiàn),本文算法在miniImageNet 數(shù)據(jù)集上實現(xiàn)了優(yōu)良的小樣本圖像分類性能。相對于GNN 算法精度有了明顯的提升,5-way 1-shot、5-way 5-shot 精度分別提高了3.14%和2.52%。在1shot實驗中,本算法精度均高于其他小樣本學習算法,相比于次優(yōu)GCR 算法,精度高出0.26%;但在5shot實驗中,精度低于最優(yōu)算法3.41%,但分類精度與次優(yōu)算法基本持平,驗證了本文算法對于解決經(jīng)典的小樣本學習問題是有效的。
實驗二,小樣本細粒度圖像分類
如表2、表3 所示,分別在三個小樣本細粒度基準數(shù)據(jù)集和自建的輪胎花紋圖像數(shù)據(jù)集上進行實驗,其中,對于表2 數(shù)據(jù)集,輸入圖像尺寸為84 ×84,對于表3 輪胎花紋數(shù)據(jù)集,輸入圖像尺寸為48 ×48。不同于一般的粗粒度圖像分類任務(wù),細粒度的圖像分類任務(wù)更具挑戰(zhàn)性,因為細粒度數(shù)據(jù)集的類間差異較小,類內(nèi)差異較大。同樣,與經(jīng)典的小樣本圖像分類算法和基于元學習的算法對比,驗證本算法同樣適用于小樣本細粒度圖像分類任務(wù)。
表2 在三個細粒度基準數(shù)據(jù)集上的5-way 1-shot和5-way 5-shot分類精度Tab.2 Classification accuracy of 5-way 1-shot and 5-way 5-shot on three fine-grained benchmark datasets
表3 在CIIP-TPID上實現(xiàn)小樣本學習的分類精度Tab.3 Classification accuracy of few-shot learning on CIIP-TPID
通過以上實驗發(fā)現(xiàn),除CUB-200 數(shù)據(jù)集外,本文算法分類結(jié)果均優(yōu)于其他算法,證明本算法在解決小樣本細粒度圖像分類問題上依然是有效的。對于1-shot 任務(wù),比GNN 算法平均提高了1.55%的分類精度;對于5-shot 任務(wù),相較于GNN 算法平均提高了1.2%的分類精度。
實驗三,半監(jiān)督學習實驗
通過以下實驗,我們對本文算法進行半監(jiān)督的5way-5shot 實驗。與監(jiān)督學習相比較,半監(jiān)督學習中支持集樣本的標簽分別隨機用20%、40%、60%的真實標簽標注,如表4所示,為不同數(shù)據(jù)集上進行半監(jiān)督小樣本學習的分類精度。
表4 本算法執(zhí)行半監(jiān)督學習的分類精度Tab.4 Classification accuracy of the algorithm performs semisupervised learning
通過半監(jiān)督實驗發(fā)現(xiàn),本文算法在半監(jiān)督學習下依然適用,能夠在僅有少量標簽信息的圖像分類任務(wù)中保持有效性。如miniImageNet 數(shù)據(jù)集下,僅有60%標簽數(shù)據(jù)的情況下,仍能達到其他算法在全監(jiān)督學習的分類效果。尤其在僅有60%標簽的情況下,平均僅低于全監(jiān)督情況下3.0%的分類精度,驗證了本文算法使用未知查詢集樣本來構(gòu)建圖神經(jīng)網(wǎng)絡(luò)的方法是有效的。
通過以上實驗發(fā)現(xiàn),基于元學習的算法分類精度遠高于傳統(tǒng)的小樣本學習算法,原因在于傳統(tǒng)的小樣本學習算法沒有訓練階段,對新任務(wù)學習能力不足,體現(xiàn)了元學習方法的優(yōu)越性。
其次,通過實驗一和實驗二對比發(fā)現(xiàn),在全監(jiān)督學習下基于元學習的小樣本圖像分類算法在miniImageNet 數(shù)據(jù)集下的分類精度普遍高于細粒度基準數(shù)據(jù)集下的分類精度。這是由于細粒度圖像類間差異小,類內(nèi)差異大,使得分類難度加大。
最后,通過以上三個實驗證明,本算法在全監(jiān)督和半監(jiān)督學習下依然有效,對于1-shot 和5-shot的分類任務(wù)精度均有明顯提升,證明本算法通過對圖節(jié)點優(yōu)化增強了節(jié)點之間邊的度量關(guān)系,即為樣本之間的相關(guān)性,對其使用標簽傳播預測未知樣本標簽,能夠獲得優(yōu)良的分類精度。
本文提出一種基于圖網(wǎng)絡(luò)優(yōu)化及標簽傳播算法來解決小樣本圖像分類任務(wù)。通過引入CBAM注意力模塊增強圖像顯著性區(qū)域特征,獲得更具表征力的目標特征作為初始化節(jié)點來優(yōu)化圖網(wǎng)絡(luò)。之后通過多次迭代來實現(xiàn)節(jié)點之間的信息傳遞得到樣本之間的關(guān)系型信息,即節(jié)點之間的邊,從而隱式地增強樣本之間的相關(guān)性。最后通過標簽傳播來引導未知樣本進行有效分類。通過大量實驗驗證了本算法在全監(jiān)督和半監(jiān)督學習情況下的有效性。