任佳興,曹玉東,曹 睿,閆 佳
(1.遼寧工業(yè)大學(xué) 電子與信息工程學(xué)院,遼寧 錦州 121001;2.大連交通大學(xué) 自動化與電氣工程學(xué)院,遼寧 大連 116028)
基于深度學(xué)習(xí)的圖像分類算法依賴大量的圖像數(shù)據(jù)集,但部分圖像分類任務(wù)先天的訓(xùn)練樣本量極少,其高昂的數(shù)據(jù)收集與標(biāo)注成本限制著圖像分類算法的廣泛應(yīng)用[1]。如何利用少量的標(biāo)注樣本進行圖像分類,是后深度學(xué)習(xí)時代的研究熱點[2]。小樣本學(xué)習(xí)(Few-shot learning)借鑒了人類大腦的工作機制,利用少量標(biāo)注的數(shù)據(jù)樣本,便可快速學(xué)習(xí)不同子任務(wù)之間的共性[3]。小樣本圖像分類是小樣本學(xué)習(xí)的典型應(yīng)用之一。
基于相似性度量的小樣本圖像分類方法[4]通過優(yōu)化距離度量函數(shù),使同類樣本之間的相似度增大(或距離減小),異類樣本之間的相似度減小(或距離增大),以提高圖像分類器的判別能力,改善其匹配及聚類性能。2015年,KOCH等[5]利用孿生網(wǎng)絡(luò)結(jié)構(gòu)分別提取兩幅圖像特征,采用L1距離度量特征之間的差異,并最終實現(xiàn)分類任務(wù),其分類性能較為一般。SNELL等[6]采用平方歐氏距離作為距離度量方式,取代了常用的余弦距離,使用小批量梯度下降訓(xùn)練法,并在訓(xùn)練過程中使用包含更多類別的樣本,提升了模型目標(biāo)分類性能,卻降低了算法的抗干擾性能。2019年,LI等[7]提出了一種基于度量學(xué)習(xí)的小樣本分類算法的特征學(xué)習(xí)模塊,通過更直接地學(xué)習(xí)類間獨有特征與類內(nèi)共有特征對原有的特征提取網(wǎng)絡(luò)進行了改進,進而提高了小樣本分類的準(zhǔn)確率,但算法的泛化性能較為一般。2020年,PEREZ-RUA等[8]引入了目標(biāo)點網(wǎng)絡(luò)(CentreNet)的結(jié)構(gòu)和思想,并將其拆分為特征提取和目標(biāo)定位兩個部分,采用元學(xué)習(xí)的方式訓(xùn)練編碼生成器,針對每個類別的圖像輸出對應(yīng)的權(quán)重,并利用該權(quán)重完成測試圖像的分類任務(wù),有效地提升了算法的圖像分類性能,但算法的整體復(fù)雜度偏高。深度子空間網(wǎng)絡(luò)(Deep Subspace Networks,DSN)[9]使用截斷奇異值分解(TSVD)將類別特征映射到特定子空間中,通過距離度量公式增大類間距離,得到性能較好的小樣本目標(biāo)分類器,然而截斷奇異值分解的計算成本較高,同時類別特征在投影過程中損失了較多信息,引起分類精度的下降。
由于距離度量關(guān)系和優(yōu)化方式影響了模型的圖像分類精度,因此如何合理表達與優(yōu)化特征向量之間的距離是小樣本圖像分類的研究重點。在上述算法中,直接度量特征向量距離的算法分類精度普遍偏低,且簡單的分離各類特征空間無法獲取其類別細節(jié)信息,影響了模型的泛化性能。筆者提出了一種基于動態(tài)子空間的小樣本圖像分類算法,使用殘差神經(jīng)網(wǎng)絡(luò)(Residual neural Network,ResNet)提取小樣本數(shù)據(jù)集特征,構(gòu)建動態(tài)子空間分類器。
筆者的主要貢獻如下:
(1) 改進了針對圖像特征的投影方法,保留具有區(qū)分性的特征信息,在正交化各類投影子空間的同時增加圖像類間距離,提升子空間的特征差異性。
(2) 提出了一種基于小樣本學(xué)習(xí)的動態(tài)子空間分類器,隨樣本量與樣本相似度的變化動態(tài)更新子空間的類間距離,提升子空間的類間差異性。
(3) 設(shè)計了二元損失函數(shù),以增強同類小樣本的特征相似性,提升算法的抗干擾性能。
如圖1所示,筆者設(shè)計的圖像分類模型分為圖像特征提取和動態(tài)子空間生成兩個部分。首先提取各類小樣本圖像的特征向量。為避免各類特征之間相互干擾,再對分解特征后生成的各類投影子空間進行正交化。通過對模型的多次訓(xùn)練不斷優(yōu)化損失函數(shù)。交叉熵分類損失函數(shù)的迭代,增強了同類樣本的特征相似性;子空間損失函數(shù)的迭代,提升了子空間的類間差異性;隨樣本相似度與采樣量的變化,動態(tài)更新了子空間的類間距離。構(gòu)建基于小樣本學(xué)習(xí)的動態(tài)子空間分類器,使用平方歐氏距離與softmax[10]函數(shù)計算查詢圖像的類別概率,預(yù)測其所屬類別。
圖1 采用動態(tài)子空間的小樣本圖像分類模型
分類模型實現(xiàn)的具體步驟如下。
首先,將各個類別的小樣本圖像數(shù)據(jù)xi輸入訓(xùn)練好的特征提取網(wǎng)絡(luò)ResNet-18,獲得對應(yīng)類別的圖像特征向量f(xi),并計算第m類圖像對應(yīng)的特征向量均值μm:
(1)
(2)
其次,對多個表征圖像類別的投影子空間進行正交化處理。隨著損失函數(shù)的參數(shù)回傳與迭代優(yōu)化,以及模型樣本量與相本相似度的變化動態(tài)更新子空間的類間距離,生成基于小樣本學(xué)習(xí)的動態(tài)子空間分類器。
最后,計算查詢圖像q的特征向量與投影子空間Pm的平方歐氏距離dm(q):
dm(q)=‖(Wm-Mm)(f(q)-μm)‖2,
(3)
(4)
(5)
其中,Wm表示由Xm構(gòu)成的原始空間方陣,Mm表示由Pm構(gòu)成的投影空間方陣,f(q)表示查詢圖像的特征向量。預(yù)測查詢圖像的類別時,計算查詢圖像q與每個投影子空間的距離dm(q),采用softmax函數(shù)計算其類別概率,最高概率對應(yīng)的圖像類別即為算法預(yù)測查詢圖像的所屬類別。查詢圖像屬于第m類圖像的概率pm,q為
(6)
其中,N表示小樣本數(shù)據(jù)集的圖像類別總數(shù)。
綜上,使用ResNet-18網(wǎng)絡(luò)提取圖像特征,利用已知類別的小樣本圖像特征生成動態(tài)子空間分類器,將查詢圖像的特征向量輸入分類器后判斷其所屬類別。利用設(shè)計的二元損失函數(shù),通過網(wǎng)絡(luò)的不斷訓(xùn)練與調(diào)整參數(shù),最終獲得一個小樣本圖像分類模型,并通過實驗驗證了模型的分類性能。
簡單地堆疊卷積層和池化層所搭建的卷積神經(jīng)網(wǎng)絡(luò),常常會出現(xiàn)梯度消失與網(wǎng)絡(luò)退化等現(xiàn)象,嚴(yán)重地影響了網(wǎng)絡(luò)性能。ResNet[12]由多個殘差塊的堆疊構(gòu)成模型框架,同時使用批歸一化(Batch Normalization,BN)提升損失函數(shù)的變化程度,進而避免梯度消失。在小樣本數(shù)據(jù)集上采用較深的網(wǎng)絡(luò)提取圖像特征容易引起模型的過擬合,且模型訓(xùn)練成本過大。筆者選用ResNet-18對小樣本數(shù)據(jù)集提取特征,該網(wǎng)絡(luò)可獲得圖像的細粒度特征,提取到更具圖像特點的語義信息,為后續(xù)的圖像分類任務(wù)提供了優(yōu)質(zhì)的特征信息。典型的ResNet-18網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 ResNet-18網(wǎng)絡(luò)結(jié)構(gòu)
圖像分類器的設(shè)計核心是構(gòu)建動態(tài)子空間。動態(tài)子空間的正交化過程如圖2所示。
圖2 動態(tài)子空間正交化示意圖
利用主成分分析法分解生成的正交矩陣[13],將表征各圖像類別的投影子空間基于中心點進行動態(tài)正交化,使得各類子空間的距離增大,即增加圖像類間距離,減小圖像類內(nèi)距離,增強各類子空間的特征差異性。主成分分析法利用輸入的去均值矩陣X,求得協(xié)方差矩陣C:
(7)
其中,k為矩陣X的樣本個數(shù)。計算協(xié)方差矩陣C的特征值與特征向量,將特征向量按特征值大小排列后取前k行組成矩陣P,具有正交特性的矩陣P即為投影子空間。主成分分析法矩陣分解將原始矩陣的特征信息映射到投影子空間中,可減少特征投影過程中的信息損失,生成數(shù)個表征圖像類別的投影子空間。但不同圖像類別的樣本之間仍會相互干擾,引起分類器對樣本類別的誤識別,造成圖像分類精度下降。
通過損失函數(shù)的參數(shù)回傳與優(yōu)化來構(gòu)建動態(tài)子空間分類器,隨樣本相似度與采樣數(shù)量的變化動態(tài)更新各子空間的類間距離,提升了子空間的類間差異性,引起投影子空間的整體結(jié)構(gòu)動態(tài)調(diào)整。使用格拉斯曼數(shù)[14]計算各類子空間的距離,精準(zhǔn)表示不同子空間的類別差異性。根據(jù)式(3)和式(5),可得出各類投影子空間的距離度量公式為
(8)
其中,Pa和Pb是任意矩陣構(gòu)成的兩個投影子空間,n為子空間內(nèi)元素的總數(shù)。
通過損失函數(shù)的迭代最大化各類子空間的距離,實現(xiàn)子空間分類器的動態(tài)正交化,增加圖像的類間差異性,進而提升算法的分類性能與泛化能力。
使用交叉熵損失函數(shù)作為模型的分類損失函數(shù),增強同類小樣本的特征相似性,減少樣本的類內(nèi)距離。交叉熵分類損失函數(shù)為
(9)
其中,dm(q)表示查詢圖像q與第m類圖像之間的距離,N表示模型所選小樣本數(shù)據(jù)集的圖像類別總數(shù)。
(10)
采用二元損失函數(shù)作為模型的總損失函數(shù)。二元損失函數(shù)由第1項交叉熵分類損失函數(shù)與第2項子空間損失函數(shù)構(gòu)成,權(quán)重α平衡損失函數(shù)前后項的量級與收斂速度,使得模型不易過擬合。二元損失函數(shù)為
(11)
通過在小樣本數(shù)據(jù)集上的多次訓(xùn)練及損失函數(shù)的參數(shù)優(yōu)化,可獲得權(quán)重α的最優(yōu)預(yù)設(shè)值。分類網(wǎng)絡(luò)隨機選取查詢圖像輸入動態(tài)子空間分類器,計算查詢圖像與各類子空間的距離,進而預(yù)測目標(biāo)圖像的所屬類別,獲得一個高效的小樣本圖像分類模型。
基于動態(tài)子空間的小樣本圖像分類算法的偽代碼描述如下。
輸入:將數(shù)據(jù)集Ti分為支持集S和查詢集Q。
輸出:參數(shù)P,X,d。
初始化:P,X,d為零矩陣 。
fortin {Ti,…,TN} do
formin {1,…,N} do
將支持集Sm輸入特征提取網(wǎng)絡(luò)
根據(jù)式(1)計算樣本各類平均值μm
根據(jù)式(2)計算投影矩陣Pm
forqinQdo
根據(jù)式(3)計算查詢樣本與各類子空間距離dm(q)
end for
end for
根據(jù)式(11)計算二元損失函數(shù)Lt
根據(jù)二元損失函數(shù)Lt更新參數(shù)P,X,d
end for。
實驗選用3類經(jīng)典的小樣本數(shù)據(jù)集。編程語言為Python,編程框架采用Pytorch,計算機的顯卡型號為NVIDIA RTX3070,GPU顯存大小為8GB,CPU型號為AMD R7 5800H。
算法基于小樣本數(shù)據(jù)集對圖像進行分類,在不同小樣本數(shù)據(jù)集上進行訓(xùn)練和測試,測試模型的泛化性能。選用mini-ImageNet、CIFAR-100和Pascal VOC2007數(shù)據(jù)集完成訓(xùn)練與測試。mini-ImageNet[15]數(shù)據(jù)集包含60 000幅單標(biāo)簽圖像,共100個圖像類別,每類有600幅大小為84×84的彩色圖像,該數(shù)據(jù)集常用于圖像分類與分割任務(wù)。若多個圖像擁有同一個標(biāo)簽,則認為它們是同類圖像。實驗隨機選擇數(shù)據(jù)集100類中的64、16和20類作為訓(xùn)練集、驗證集和測試集。 CIFAR-100[16]數(shù)據(jù)集包含60 000幅單標(biāo)簽圖像,共100個圖像類別,每類有600幅大小為32×32的彩色圖像,隨機選擇數(shù)據(jù)集100類中的64、16和20類作為訓(xùn)練集、驗證集和測試集。Pascal VOC2007[17]數(shù)據(jù)集選用996幅單標(biāo)簽圖像,共20個圖像類別,隨機選擇數(shù)據(jù)集20類中的12、3和5類作為訓(xùn)練集、驗證集和測試集。訓(xùn)練集、驗證集和測試集不存在重復(fù)使用的情況。
評價指標(biāo)采用N-wayK-shot的平均精度(Average Precision,AP)[4]。最常使用的是5-way 5-shot測度,表示從測試集隨機選取5個類別,每類5幅圖像。首先,將所選圖像輸入特征提取網(wǎng)絡(luò),得到5個去均值后的特征向量集合,對其按主成分分析法分解生成5類投影子空間。然后,隨機選取測試集里15幅屬于5-way的不重復(fù)樣本作為查詢圖像,通過特征提取得到15個特征向量,根據(jù)式(3)和式(6)預(yù)測所有查詢圖像的所屬類別,并與圖像的真實標(biāo)簽比較,計算查詢圖像分類的平均精度值,度量算法的分類性能。平均精度的計算公式為
(12)
其中,J表示查詢圖像總數(shù),一般設(shè)置為15;n表示圖像類別總數(shù),一般設(shè)置為5;q表示查詢圖像的編號;pm,q表示查詢圖像q預(yù)測為m類圖像的概率;δm,q為指示函數(shù),判斷該查詢圖像q的真實標(biāo)簽類別是否為m對應(yīng)的圖像類別。若是,則δ(m)為1;若不是,則δ(m)為0。
采用mini-ImageNet數(shù)據(jù)集,在5-way 5-shot條件下,測試二元損失函數(shù)中超參數(shù)α對平均精度的影響,實驗結(jié)果如圖3所示。當(dāng)α=0.15時,測試集的平均精度值最高,即模型的圖像分類性能最佳,故后續(xù)實驗均令α=0.15。
圖3 在mini-ImageNet數(shù)據(jù)集上參數(shù)α對平均精度的影響
α為設(shè)計的二元損失函數(shù)中第2項的權(quán)重,其大小反映了各類子空間的類間距離在模型訓(xùn)練時的更新比重。通過精細化的參數(shù)預(yù)設(shè)定,提升算法整體的分類精度。
實驗在5-way 5-shot測試條件下,使用隨機梯度下降法[18]優(yōu)化特征提取網(wǎng)絡(luò)。令網(wǎng)絡(luò)訓(xùn)練的初始學(xué)習(xí)率為0.1,比較特征提取網(wǎng)絡(luò)分別使用ResNet-12、ResNet-18和ResNet-34時算法的平均精度值,結(jié)果如表2所示。在mini-ImageNet、CIFAR-100和Pascal VOC2007數(shù)據(jù)集上分別測試,發(fā)現(xiàn)使用特征提取網(wǎng)絡(luò)ResNet-18的模型,平均精度值均高于使用ResNet-34和ResNet-12的模型。在小樣本數(shù)據(jù)集上,較淺的特征提取網(wǎng)絡(luò)表示能力不足,較深的特征提取網(wǎng)絡(luò)容易引起模型的過擬合,影響模型的圖像分類性能。故選擇ResNet-18作為文中算法的特征提取網(wǎng)絡(luò)。
表2 ResNet-12、ResNet-18和ResNet-34的平均精度比較
選擇5-way 1-shot和5-way 5-shot兩種評價指標(biāo)對當(dāng)前流行的小樣本圖像分類算法進行測試。為公平比較,均使用小樣本數(shù)據(jù)集mini-ImageNet。在5-way 1-shot測試條件下,需將1個測試樣本圖像進行翻轉(zhuǎn),生成圖像類別的投影子空間,實驗結(jié)果如表3所示。
表3 在mini-ImageNet數(shù)據(jù)集上的平均精度比較
在5-way 1-shot測試條件下,文中算法的圖像分類性能較主流算法均有提升,且與性能最好的DSN算法相比,平均精度值提升了1.4%;在5-way 5-shot測試條件下,文中算法的圖像分類性能較主流算法均有明顯提升,且與性能最好的DSN算法相比,平均精度值提升了2.3%。實驗結(jié)果驗證了動態(tài)子空間分類方法的優(yōu)越性,其中主成分分析法分解保留了具有區(qū)分性的特征信息,豐富了子空間的類別信息,動態(tài)正交化使得各類子空間隨著采樣數(shù)量動態(tài)更新類間距離,不斷增強了各類子空間的差異性,進而提升了算法的分類性能。
DSN與文中算法的分類性能最為接近,故選擇DSN作為基準(zhǔn)算法與文中算法進行更詳細的分類性能比較。
在5-way 5-shot測試條件下,使用mini-ImageNet、CIFAR-100和Pascal VOC2007這3類數(shù)據(jù)集,分別測試ResNet-18與動態(tài)子空間兩項優(yōu)化方法對模型分類性能的影響,消融實驗結(jié)果如圖4所示。只將DSN(基準(zhǔn)算法)的原特征提取網(wǎng)絡(luò)ResNet-12變更為ResNet-18后,DSN(ResNet-18)在3類數(shù)據(jù)集上的分類性能較DSN基準(zhǔn)算法的略有提升。只將DSN基準(zhǔn)算法中的自適應(yīng)分類替換為動態(tài)子空間分類器,DSN(動態(tài)子空間)在3類數(shù)據(jù)集上的平均精度值較DSN基準(zhǔn)算法的均明顯提升,表明動態(tài)子空間分類方法對算法性能提升的貢獻較大。動態(tài)子空間減少了類別特征投影時的信息損失,通過動態(tài)正交化各類投影子空間,提升了子空間的類間差異性。文中算法采用ResNet-18和動態(tài)子空間分類器,其平均精度值遠高于DSN基準(zhǔn)算法的,在3類小樣本數(shù)據(jù)集上穩(wěn)定的分類表現(xiàn),表明文中算法具有較強的泛化性能。
圖4 在3種小樣本數(shù)據(jù)集上的消融實驗
為測試模型的抗干擾性能,在mini-ImageNet數(shù)據(jù)集上選擇5-way 5-shot的測試條件,與當(dāng)前性能較好的算法DSN進行比較。異常樣本圖像類別未與mini-ImageNet數(shù)據(jù)集的類別重復(fù),測試時選擇多幅異常樣本圖像放入查詢樣本中,且保持15幅查詢圖像總數(shù)不變。令高斯噪聲均值恒定為0且方差分別為0.1、0.2和0.3,將其添加到15幅查詢圖像中,實驗結(jié)果如圖5所示。由分析得到,算法的性能均受到異常值影響。由于異常樣本總被標(biāo)記為負樣本,故異常樣本的數(shù)量增加使兩類算法分類性能均明顯下降,但文中算法的性能始終優(yōu)于算法DSN的。將查詢圖像添加高斯噪聲后,基于動態(tài)子空間的DSN算法(只將自適應(yīng)子空間替換為動態(tài)子空間)平均精度值較DSN原算法的提升明顯,且文中算法的分類性能所受影響較小,其平均精度值始終高于算法DSN的,驗證了動態(tài)子空間的優(yōu)越性。通過兩類對樣本的干擾實驗,表明文中算法具有較強的抗干擾性能。
圖5 在小樣本數(shù)據(jù)集mini-ImageNet上的抗干擾性能比較
綜合以上實驗結(jié)果,筆者提出算法的性能優(yōu)于當(dāng)前主流的小樣本圖像分類算法。分析其主要原因,是應(yīng)用了動態(tài)子空間分類器,通過動態(tài)正交化更新投影子空間的類間距離,提升子空間的特征差異性。同時,筆者提出的算法具有較強的泛化性能與抗干擾能力,可滿足在不同小樣本數(shù)據(jù)集下進行準(zhǔn)確的圖像分類任務(wù)要求。
筆者提出了一種采用動態(tài)子空間的小樣本圖像分類算法,通過圖像特征提取和動態(tài)子空間生成兩個階段構(gòu)建高效的圖像分類模型。算法選用ResNet-18提取圖像特征,更適合在小樣本數(shù)據(jù)集上進行訓(xùn)練,有助于模型完成分類任務(wù)。設(shè)計了一種動態(tài)子空間分類器,通過對主成分分析法分解生成的各類投影子空間進行動態(tài)正交化,并使用二元損失函數(shù)對子空間進行優(yōu)化與迭代,樣本量與樣本相似度的變化動態(tài)增加子空間的類間距離,提升了子空間的類間差異性。在mini-ImageNet、CIFAR-100和Pascal VOC2007數(shù)據(jù)集上,筆者提出算法的圖像分類性能均優(yōu)于當(dāng)前主流小樣本圖像分類算法的,且有較強的泛化性能與抗干擾能力。在下一步工作中,將研究多尺度的特征表示方法,進一步提升模型的分類性能。