任佳興,曹玉東,曹 睿,閆 佳
(1.遼寧工業大學 電子與信息工程學院,遼寧 錦州 121001;2.大連交通大學 自動化與電氣工程學院,遼寧 大連 116028)
基于深度學習的圖像分類算法依賴大量的圖像數據集,但部分圖像分類任務先天的訓練樣本量極少,其高昂的數據收集與標注成本限制著圖像分類算法的廣泛應用[1]。如何利用少量的標注樣本進行圖像分類,是后深度學習時代的研究熱點[2]。小樣本學習(Few-shot learning)借鑒了人類大腦的工作機制,利用少量標注的數據樣本,便可快速學習不同子任務之間的共性[3]。小樣本圖像分類是小樣本學習的典型應用之一。
基于相似性度量的小樣本圖像分類方法[4]通過優化距離度量函數,使同類樣本之間的相似度增大(或距離減小),異類樣本之間的相似度減小(或距離增大),以提高圖像分類器的判別能力,改善其匹配及聚類性能。2015年,KOCH等[5]利用孿生網絡結構分別提取兩幅圖像特征,采用L1距離度量特征之間的差異,并最終實現分類任務,其分類性能較為一般。SNELL等[6]采用平方歐氏距離作為距離度量方式,取代了常用的余弦距離,使用小批量梯度下降訓練法,并在訓練過程中使用包含更多類別的樣本,提升了模型目標分類性能,卻降低了算法的抗干擾性能。2019年,LI等[7]提出了一種基于度量學習的小樣本分類算法的特征學習模塊,通過更直接地學習類間獨有特征與類內共有特征對原有的特征提取網絡進行了改進,進而提高了小樣本分類的準確率,但算法的泛化性能較為一般。2020年,PEREZ-RUA等[8]引入了目標點網絡(CentreNet)的結構和思想,并將其拆分為特征提取和目標定位兩個部分,采用元學習的方式訓練編碼生成器,針對每個類別的圖像輸出對應的權重,并利用該權重完成測試圖像的分類任務,有效地提升了算法的圖像分類性能,但算法的整體復雜度偏高。深度子空間網絡(Deep Subspace Networks,DSN)[9]使用截斷奇異值分解(TSVD)將類別特征映射到特定子空間中,通過距離度量公式增大類間距離,得到性能較好的小樣本目標分類器,然而截斷奇異值分解的計算成本較高,同時類別特征在投影過程中損失了較多信息,引起分類精度的下降。
由于距離度量關系和優化方式影響了模型的圖像分類精度,因此如何合理表達與優化特征向量之間的距離是小樣本圖像分類的研究重點。在上述算法中,直接度量特征向量距離的算法分類精度普遍偏低,且簡單的分離各類特征空間無法獲取其類別細節信息,影響了模型的泛化性能。筆者提出了一種基于動態子空間的小樣本圖像分類算法,使用殘差神經網絡(Residual neural Network,ResNet)提取小樣本數據集特征,構建動態子空間分類器。
筆者的主要貢獻如下:
(1) 改進了針對圖像特征的投影方法,保留具有區分性的特征信息,在正交化各類投影子空間的同時增加圖像類間距離,提升子空間的特征差異性。
(2) 提出了一種基于小樣本學習的動態子空間分類器,隨樣本量與樣本相似度的變化動態更新子空間的類間距離,提升子空間的類間差異性。
(3) 設計了二元損失函數,以增強同類小樣本的特征相似性,提升算法的抗干擾性能。
如圖1所示,筆者設計的圖像分類模型分為圖像特征提取和動態子空間生成兩個部分。首先提取各類小樣本圖像的特征向量。為避免各類特征之間相互干擾,再對分解特征后生成的各類投影子空間進行正交化。通過對模型的多次訓練不斷優化損失函數。交叉熵分類損失函數的迭代,增強了同類樣本的特征相似性;子空間損失函數的迭代,提升了子空間的類間差異性;隨樣本相似度與采樣量的變化,動態更新了子空間的類間距離。構建基于小樣本學習的動態子空間分類器,使用平方歐氏距離與softmax[10]函數計算查詢圖像的類別概率,預測其所屬類別。

圖1 采用動態子空間的小樣本圖像分類模型
分類模型實現的具體步驟如下。
首先,將各個類別的小樣本圖像數據xi輸入訓練好的特征提取網絡ResNet-18,獲得對應類別的圖像特征向量f(xi),并計算第m類圖像對應的特征向量均值μm:
(1)

(2)
其次,對多個表征圖像類別的投影子空間進行正交化處理。隨著損失函數的參數回傳與迭代優化,以及模型樣本量與相本相似度的變化動態更新子空間的類間距離,生成基于小樣本學習的動態子空間分類器。
最后,計算查詢圖像q的特征向量與投影子空間Pm的平方歐氏距離dm(q):
dm(q)=‖(Wm-Mm)(f(q)-μm)‖2,
(3)
(4)
(5)
其中,Wm表示由Xm構成的原始空間方陣,Mm表示由Pm構成的投影空間方陣,f(q)表示查詢圖像的特征向量。預測查詢圖像的類別時,計算查詢圖像q與每個投影子空間的距離dm(q),采用softmax函數計算其類別概率,最高概率對應的圖像類別即為算法預測查詢圖像的所屬類別。查詢圖像屬于第m類圖像的概率pm,q為
(6)
其中,N表示小樣本數據集的圖像類別總數。
綜上,使用ResNet-18網絡提取圖像特征,利用已知類別的小樣本圖像特征生成動態子空間分類器,將查詢圖像的特征向量輸入分類器后判斷其所屬類別。利用設計的二元損失函數,通過網絡的不斷訓練與調整參數,最終獲得一個小樣本圖像分類模型,并通過實驗驗證了模型的分類性能。
簡單地堆疊卷積層和池化層所搭建的卷積神經網絡,常常會出現梯度消失與網絡退化等現象,嚴重地影響了網絡性能。ResNet[12]由多個殘差塊的堆疊構成模型框架,同時使用批歸一化(Batch Normalization,BN)提升損失函數的變化程度,進而避免梯度消失。在小樣本數據集上采用較深的網絡提取圖像特征容易引起模型的過擬合,且模型訓練成本過大。筆者選用ResNet-18對小樣本數據集提取特征,該網絡可獲得圖像的細粒度特征,提取到更具圖像特點的語義信息,為后續的圖像分類任務提供了優質的特征信息。典型的ResNet-18網絡結構如表1所示。

表1 ResNet-18網絡結構
圖像分類器的設計核心是構建動態子空間。動態子空間的正交化過程如圖2所示。

圖2 動態子空間正交化示意圖
利用主成分分析法分解生成的正交矩陣[13],將表征各圖像類別的投影子空間基于中心點進行動態正交化,使得各類子空間的距離增大,即增加圖像類間距離,減小圖像類內距離,增強各類子空間的特征差異性。主成分分析法利用輸入的去均值矩陣X,求得協方差矩陣C:
(7)
其中,k為矩陣X的樣本個數。計算協方差矩陣C的特征值與特征向量,將特征向量按特征值大小排列后取前k行組成矩陣P,具有正交特性的矩陣P即為投影子空間。主成分分析法矩陣分解將原始矩陣的特征信息映射到投影子空間中,可減少特征投影過程中的信息損失,生成數個表征圖像類別的投影子空間。但不同圖像類別的樣本之間仍會相互干擾,引起分類器對樣本類別的誤識別,造成圖像分類精度下降。
通過損失函數的參數回傳與優化來構建動態子空間分類器,隨樣本相似度與采樣數量的變化動態更新各子空間的類間距離,提升了子空間的類間差異性,引起投影子空間的整體結構動態調整。使用格拉斯曼數[14]計算各類子空間的距離,精準表示不同子空間的類別差異性。根據式(3)和式(5),可得出各類投影子空間的距離度量公式為
(8)
其中,Pa和Pb是任意矩陣構成的兩個投影子空間,n為子空間內元素的總數。
通過損失函數的迭代最大化各類子空間的距離,實現子空間分類器的動態正交化,增加圖像的類間差異性,進而提升算法的分類性能與泛化能力。
使用交叉熵損失函數作為模型的分類損失函數,增強同類小樣本的特征相似性,減少樣本的類內距離。交叉熵分類損失函數為
(9)
其中,dm(q)表示查詢圖像q與第m類圖像之間的距離,N表示模型所選小樣本數據集的圖像類別總數。
(10)
采用二元損失函數作為模型的總損失函數。二元損失函數由第1項交叉熵分類損失函數與第2項子空間損失函數構成,權重α平衡損失函數前后項的量級與收斂速度,使得模型不易過擬合。二元損失函數為
(11)
通過在小樣本數據集上的多次訓練及損失函數的參數優化,可獲得權重α的最優預設值。分類網絡隨機選取查詢圖像輸入動態子空間分類器,計算查詢圖像與各類子空間的距離,進而預測目標圖像的所屬類別,獲得一個高效的小樣本圖像分類模型。
基于動態子空間的小樣本圖像分類算法的偽代碼描述如下。
輸入:將數據集Ti分為支持集S和查詢集Q。
輸出:參數P,X,d。
初始化:P,X,d為零矩陣 。
fortin {Ti,…,TN} do
formin {1,…,N} do
將支持集Sm輸入特征提取網絡
根據式(1)計算樣本各類平均值μm
根據式(2)計算投影矩陣Pm
forqinQdo
根據式(3)計算查詢樣本與各類子空間距離dm(q)
end for
end for
根據式(11)計算二元損失函數Lt
根據二元損失函數Lt更新參數P,X,d
end for。
實驗選用3類經典的小樣本數據集。編程語言為Python,編程框架采用Pytorch,計算機的顯卡型號為NVIDIA RTX3070,GPU顯存大小為8GB,CPU型號為AMD R7 5800H。
算法基于小樣本數據集對圖像進行分類,在不同小樣本數據集上進行訓練和測試,測試模型的泛化性能。選用mini-ImageNet、CIFAR-100和Pascal VOC2007數據集完成訓練與測試。mini-ImageNet[15]數據集包含60 000幅單標簽圖像,共100個圖像類別,每類有600幅大小為84×84的彩色圖像,該數據集常用于圖像分類與分割任務。若多個圖像擁有同一個標簽,則認為它們是同類圖像。實驗隨機選擇數據集100類中的64、16和20類作為訓練集、驗證集和測試集。 CIFAR-100[16]數據集包含60 000幅單標簽圖像,共100個圖像類別,每類有600幅大小為32×32的彩色圖像,隨機選擇數據集100類中的64、16和20類作為訓練集、驗證集和測試集。Pascal VOC2007[17]數據集選用996幅單標簽圖像,共20個圖像類別,隨機選擇數據集20類中的12、3和5類作為訓練集、驗證集和測試集。訓練集、驗證集和測試集不存在重復使用的情況。
評價指標采用N-wayK-shot的平均精度(Average Precision,AP)[4]。最常使用的是5-way 5-shot測度,表示從測試集隨機選取5個類別,每類5幅圖像。首先,將所選圖像輸入特征提取網絡,得到5個去均值后的特征向量集合,對其按主成分分析法分解生成5類投影子空間。然后,隨機選取測試集里15幅屬于5-way的不重復樣本作為查詢圖像,通過特征提取得到15個特征向量,根據式(3)和式(6)預測所有查詢圖像的所屬類別,并與圖像的真實標簽比較,計算查詢圖像分類的平均精度值,度量算法的分類性能。平均精度的計算公式為
(12)
其中,J表示查詢圖像總數,一般設置為15;n表示圖像類別總數,一般設置為5;q表示查詢圖像的編號;pm,q表示查詢圖像q預測為m類圖像的概率;δm,q為指示函數,判斷該查詢圖像q的真實標簽類別是否為m對應的圖像類別。若是,則δ(m)為1;若不是,則δ(m)為0。
采用mini-ImageNet數據集,在5-way 5-shot條件下,測試二元損失函數中超參數α對平均精度的影響,實驗結果如圖3所示。當α=0.15時,測試集的平均精度值最高,即模型的圖像分類性能最佳,故后續實驗均令α=0.15。

圖3 在mini-ImageNet數據集上參數α對平均精度的影響
α為設計的二元損失函數中第2項的權重,其大小反映了各類子空間的類間距離在模型訓練時的更新比重。通過精細化的參數預設定,提升算法整體的分類精度。
實驗在5-way 5-shot測試條件下,使用隨機梯度下降法[18]優化特征提取網絡。令網絡訓練的初始學習率為0.1,比較特征提取網絡分別使用ResNet-12、ResNet-18和ResNet-34時算法的平均精度值,結果如表2所示。在mini-ImageNet、CIFAR-100和Pascal VOC2007數據集上分別測試,發現使用特征提取網絡ResNet-18的模型,平均精度值均高于使用ResNet-34和ResNet-12的模型。在小樣本數據集上,較淺的特征提取網絡表示能力不足,較深的特征提取網絡容易引起模型的過擬合,影響模型的圖像分類性能。故選擇ResNet-18作為文中算法的特征提取網絡。

表2 ResNet-12、ResNet-18和ResNet-34的平均精度比較
選擇5-way 1-shot和5-way 5-shot兩種評價指標對當前流行的小樣本圖像分類算法進行測試。為公平比較,均使用小樣本數據集mini-ImageNet。在5-way 1-shot測試條件下,需將1個測試樣本圖像進行翻轉,生成圖像類別的投影子空間,實驗結果如表3所示。

表3 在mini-ImageNet數據集上的平均精度比較
在5-way 1-shot測試條件下,文中算法的圖像分類性能較主流算法均有提升,且與性能最好的DSN算法相比,平均精度值提升了1.4%;在5-way 5-shot測試條件下,文中算法的圖像分類性能較主流算法均有明顯提升,且與性能最好的DSN算法相比,平均精度值提升了2.3%。實驗結果驗證了動態子空間分類方法的優越性,其中主成分分析法分解保留了具有區分性的特征信息,豐富了子空間的類別信息,動態正交化使得各類子空間隨著采樣數量動態更新類間距離,不斷增強了各類子空間的差異性,進而提升了算法的分類性能。
DSN與文中算法的分類性能最為接近,故選擇DSN作為基準算法與文中算法進行更詳細的分類性能比較。
在5-way 5-shot測試條件下,使用mini-ImageNet、CIFAR-100和Pascal VOC2007這3類數據集,分別測試ResNet-18與動態子空間兩項優化方法對模型分類性能的影響,消融實驗結果如圖4所示。只將DSN(基準算法)的原特征提取網絡ResNet-12變更為ResNet-18后,DSN(ResNet-18)在3類數據集上的分類性能較DSN基準算法的略有提升。只將DSN基準算法中的自適應分類替換為動態子空間分類器,DSN(動態子空間)在3類數據集上的平均精度值較DSN基準算法的均明顯提升,表明動態子空間分類方法對算法性能提升的貢獻較大。動態子空間減少了類別特征投影時的信息損失,通過動態正交化各類投影子空間,提升了子空間的類間差異性。文中算法采用ResNet-18和動態子空間分類器,其平均精度值遠高于DSN基準算法的,在3類小樣本數據集上穩定的分類表現,表明文中算法具有較強的泛化性能。

圖4 在3種小樣本數據集上的消融實驗
為測試模型的抗干擾性能,在mini-ImageNet數據集上選擇5-way 5-shot的測試條件,與當前性能較好的算法DSN進行比較。異常樣本圖像類別未與mini-ImageNet數據集的類別重復,測試時選擇多幅異常樣本圖像放入查詢樣本中,且保持15幅查詢圖像總數不變。令高斯噪聲均值恒定為0且方差分別為0.1、0.2和0.3,將其添加到15幅查詢圖像中,實驗結果如圖5所示。由分析得到,算法的性能均受到異常值影響。由于異常樣本總被標記為負樣本,故異常樣本的數量增加使兩類算法分類性能均明顯下降,但文中算法的性能始終優于算法DSN的。將查詢圖像添加高斯噪聲后,基于動態子空間的DSN算法(只將自適應子空間替換為動態子空間)平均精度值較DSN原算法的提升明顯,且文中算法的分類性能所受影響較小,其平均精度值始終高于算法DSN的,驗證了動態子空間的優越性。通過兩類對樣本的干擾實驗,表明文中算法具有較強的抗干擾性能。

圖5 在小樣本數據集mini-ImageNet上的抗干擾性能比較
綜合以上實驗結果,筆者提出算法的性能優于當前主流的小樣本圖像分類算法。分析其主要原因,是應用了動態子空間分類器,通過動態正交化更新投影子空間的類間距離,提升子空間的特征差異性。同時,筆者提出的算法具有較強的泛化性能與抗干擾能力,可滿足在不同小樣本數據集下進行準確的圖像分類任務要求。
筆者提出了一種采用動態子空間的小樣本圖像分類算法,通過圖像特征提取和動態子空間生成兩個階段構建高效的圖像分類模型。算法選用ResNet-18提取圖像特征,更適合在小樣本數據集上進行訓練,有助于模型完成分類任務。設計了一種動態子空間分類器,通過對主成分分析法分解生成的各類投影子空間進行動態正交化,并使用二元損失函數對子空間進行優化與迭代,樣本量與樣本相似度的變化動態增加子空間的類間距離,提升了子空間的類間差異性。在mini-ImageNet、CIFAR-100和Pascal VOC2007數據集上,筆者提出算法的圖像分類性能均優于當前主流小樣本圖像分類算法的,且有較強的泛化性能與抗干擾能力。在下一步工作中,將研究多尺度的特征表示方法,進一步提升模型的分類性能。