樊 笛,巨志勇
(上海理工大學光電信息與計算機工程學院,上海 200093)
近年來,在卷積神經網絡和深度學習[1-4]技術的影響下,圖像識別分類技術獲得了長足發(fā)展,并已經被廣泛應用于各個領域。卷積神經網絡的多層連接結構能夠捕捉到圖像更深層次的特征,圖像識別和分類的準確性有了質的飛躍。深度學習是一種需要海量數據訓練的方法,大多數用于目標分類的深度學習網絡需要非常大的數據庫投入訓練。但是在現實世界中,大多數目標分類問題并沒有大量的標注數據,并且獲取大量標注數據需要很高的成本,因此基于小樣本數據集的圖像分類識別是深度學習領域發(fā)展的一個重要方向。
目前針對小樣本數據集的圖像分類方法大致可分為2類:一類是基于傳統(tǒng)機器學習[5-9]的分類識別算法,該類算法著重于提取圖像的顏色、形狀、紋理以及梯度等底層特征,并且需要解決特征協(xié)方差矩陣的不穩(wěn)定性和奇異性;另一類是基于深度卷積神經網絡的圖像識別算法,如遷移學習(Finetune)[10]、圖神經網絡(Graph Neural Network)[11]和度量學習(Metric Learning)[12]等,利用卷積神經網絡的多層結構將圖像的底層特征抽象為高層特征,使模型具有更高效的特征學習能力。但目前的小樣本圖像分類算法還存在訓練時間長、識別不穩(wěn)定等問題。
本文在現有的度量學習模型的基礎上,提出一種基于多層卷積神經網絡的原型網絡模型,用于小樣本條件下的圖像識別分類。該方法利用多層卷積神經網絡構造基于原型網絡的預訓練模型,然后將測試集中的標注樣本映射到嵌入空間,計算嵌入空間中訓練集的加權平均值,將其作為類原型,然后把測試圖像投影到已經訓練好的模型上,根據嵌入空間中測試圖像與類原型之間的歐氏距離將其歸類。此方法可以從少量訓練樣本中快速學習特征,將測試圖像正確分類,具有訓練時間短、識別率高、魯棒性強的特點。
原型網絡(Prototypical Networks)[13]的思想是:在嵌入空間中,每個類別都存在一個特殊的點,稱為類的原型。利用神經網絡的非線性映射將輸入圖像映射到嵌入空間中,此時嵌入空間中訓練集的加權平均值就是類的原型。該類別中每個樣本的嵌入空間表示都會圍繞類原型進行聚類。預測分類的時候,將測試圖像也映射到嵌入空間中,計算與訓練集類別的各個類原型間的距離,即可進行分類。
原型網絡將復雜的分類問題轉化成了在特征向量空間中的最近鄰問題,對于處理小樣本數據集下的分類問題可以得到較好的效果。
本文的深度原型神經網絡的架構[14]如圖1所示,分為模型預訓練和分類測試2個部分。首先將訓練集輸入到卷積神經網絡中,然后采取連續(xù)的反向傳播算法和Adam優(yōu)化算法來提取模型的權重參數和圖像特征。測試時,將測試數據投影到嵌入空間中,計算出該類別的原型,然后將測試圖像投影到嵌入空間中,計算與各個原型間的歐氏距離,將其與距離最近的類原型劃為一類。
圖1 系統(tǒng)架構圖
特征提取網絡如圖2所示,包含4層卷積神經網絡。圖像輸入到特征提取網絡后,不同層次的卷積神經網絡會提取到不同層次的特征。針對小樣本數據集而言,ReLu激活函數[15]比起sigmoid和tanh等激活函數具有更好的擬合能力,可以增強網絡的非線性,使之后的神經網絡具有更好的判別性,所以在卷積神經網絡的后面使用ReLu激活函數作為該層的神經元。第3個和第4個卷積網絡層產生的結果會共同輸出到全連通層。此外神經網絡需要對圖像的微小移動具有較強的不變性,所以在前3個卷積網絡層的后面加入了max-pooling層[16],最終特征提取網絡的輸出為128維的特征向量。
圖2 神經網絡結構圖
所定義的網絡的配置參數見表1。其中“Conv”前綴表示卷積層,“Pool”表示池化層,“Full”則表示全連接層。
表1 神經網絡參數表
名稱輸出維度尺寸步進Conv_064×46×463×31Pool_064×23×232×22Conv_1128×20×204×41Pool_1128×10×102×22Conv_264×8×83×31Pool_264×4×42×22Conv_396×3×32×21Full_01888——Full_1128——
在樣本量較少的情況下使用深度學習相關方法訓練模型,識別率往往達不到預期。為了解決數據集訓練樣本嚴重不足的問題,可以利用數據增強(data augmentation)[17]方法,在原始數據集的基礎上,利用各種圖像變換方法增加數據樣本。常見的數據增強方法包括:旋轉變換、仿射變換、平移變換、尺度變換、PCA和ZCA白化等。本文采用平移變換、旋轉變換、局部放大和仿射變換中的剪切變換。這樣一方面保證了充分利用有限的數據集盡量多地得到相近圖片,另一方面也防止了過度的圖像變換導致原始圖片信息畸變,保證了原始圖片信息的完整性。
平移變換是將圖像的所有像素坐標分別加上水平偏移量和垂直偏移量,如式(1)所示。假設x和y方向上的偏移量分別為x0和y0,則變換后的像素坐標為:
(1)
旋轉變換是將原圖像繞原點順時針旋轉角度?,如式(2)所示,旋轉后的像素坐標為:
(2)
剪切變換(shear transformation)是仿射變換的一種原始變換,剪切變換可以僅是x坐標或僅是y坐標受橫向剪切,也可以是2個坐標同時受橫向剪切。本文為了盡可能多地保持原始圖片的信息完整性,僅考慮x軸受橫向剪切的情況。像素原坐標值經橫向剪切后的新坐標值如式(3)所示,其中值c為剪切常數。
(3)
為了減少過擬合情況的發(fā)生,本文利用數據增強處理僅在原始小樣本數據集的基礎上擴充3倍。
在圖像識別問題中,如何把圖像中的節(jié)點進行嵌入變成可計算的值或者向量,一直是當前研究所關注的問題。這需要充分利用節(jié)點在網絡中的拓撲關系[18],給出節(jié)點的隱含向量表示,從而將離散空間中的網絡節(jié)點嵌入到高維空間中。
圖3 神經網絡映射關系
圖3中,神經網絡將圖像映射到嵌入空間中,已標注樣本圖像用于定義特定類的原型。圖中虛線表示嵌入空間中測試圖像與各個類原型之間的距離。
本文使用一個多層卷積神經網絡,將圖像編碼成多維的歐氏向量映射到嵌入空間中。假設S={(X1,y1),…,(XN,yN)}是一組小樣本的N標簽的數據集,其中,X是輸入數據的向量化表示,y為其對應類別,Sk則表示類別為k的數據集合。在原型網絡中,fθ是一個映射函數,它接受圖像I并將其轉換為向量X。
fθ:I∈RH×W×C→X∈RD
(4)
式(4)中,H和W為輸入圖像的高度和寬度,C為其通道數,D是嵌入空間的維數,θ是可訓練神經網絡的權重參數。
在嵌入空間中,每個類別都存在一個特殊的點,稱為類的原型(class prototype)。為了獲得圖像的高層特征,需要利用神經網絡的非線性映射將輸入圖像映射到嵌入空間中,此時嵌入空間中訓練集的加權平均值就是類的原型。該類別中每個樣本的嵌入空間表示都會圍繞類原型進行聚類[19]。預測分類的時候,將測試圖像也映射到嵌入空間中,計算與訓練集類別的各個類原型間的距離,即可進行分類[20]。
編碼器將圖形映射到嵌入空間后,每個圖像都會生成一個協(xié)方差矩陣,各個訓練圖像的嵌入向量進行加權線性組合,對特定類的訓練圖像產生的協(xié)方差矩陣進行聚類,定義類原型ck:
(5)
原型網絡將樣本映射到一個高維嵌入空間,在這個空間中,同類樣本之間的距離較近,異類樣本之間的距離較遠。每個類別都存在一個聚在某單個原型表達周圍的特征向量,該類的原型是訓練集在特征向量空間中的均值,然后通過計算嵌入空間中測試圖像和每個類別的原型表達的距離就可以進行分類。原型網絡將復雜的分類問題轉化成了在特征向量空間中的最近鄰問題。
原型網絡能夠在嵌入空間中學習類和方向相關距離度量,訓練的速度和準確性在很大程度上取決于如何使用距離來構造損失,大量的實踐后,本文選擇使用線性歐幾里得距離來計算嵌入空間中類原型ck到測試點xi的距離dk(i):
(6)
(7)
其中,Mk是類k的協(xié)方差矩陣的逆矩陣。
為了對原型神經網絡進行訓練,需要定義一個可微分的目標函數[21]。本網絡的整體目標是要學習一個可以正確分類圖像類別的神經網絡,此目標函數需要有2個重要條件,即圖像原型的能夠正確表述該類特征和合適的分類函數。本文使用Softmax回歸函數作為圖像類別的分類函數,得到測試點x屬于類別k的概率:
(8)
原型神經網絡的目標函數可以定義為:
(9)
由此可以計算出測試點到各個類原型的距離,將測試點與最小距離所對應的類原型劃分為一類。
為了驗證識別算法的有效性,本文在國際上常用的Omniglot數據集和miniImageNet數據集上分別進行分類識別實驗,保證訓練集和測試集相互獨立,沒有交集。
Omniglot數據集包含1632個種類的字符集合,其中每個種類都包含20個黑白的105×105像素的手寫體字符。本文隨機選取其中1200個種類,并從每個類中隨機選擇15張圖像作為訓練集,每類剩下的5張圖像作為測試集。
miniImageNet數據集共有100個種類的圖像集合,其中每個種類都包含600張84×84像素的彩色圖像。本文從中隨機選取50個種類,并從每個種類中取60張圖像作為訓練集,取20張圖像作為測試集。
本文將實驗所需圖像大小都處理為48×48像素,以加快訓練速度,并且通過數據增強處理,將訓練集擴充為原來的4倍。
本文在訓練時采用Adam[22]方法對神經網絡進行優(yōu)化,學習率設置為0.001。Adam方法在訓練的過程中能夠自適應地調整各個參數的學習率,較快地收斂,并且對于數據比較稀疏的情況具有較好的適應性。
本文使用測試精度(Test Accuracy)以及過擬合率(Overfitting Ratio)來作為模型評價標準。其中,測試精度的定義為:
(10)
式中,CorrectTestImages表示驗證正確的測試集圖像數量,TestImages表示測試集圖像的總數,測試精度值越大,模型識別效果越好。
過擬合率的定義為:
(11)
式中,TrainAcc表示訓練精度。過擬合率越接近1,神經網絡的抗過擬合能力就越強。
為了保證算法能提取足夠的特征,實驗在Omniglot數據集和miniImageNet數據集上各迭代運行50次,由此可以反映出算法學習特征的過程。然后分別統(tǒng)計模型在Omniglot數據集和miniImageNet數據集上的識別準確率,并與遷移學習(Finetune)、匹配網絡(Matching Network)和圖神經網絡(GNN)識別算法進行比較,如表2和圖4~圖6所示。
表2 模型測試準確率統(tǒng)計/%
識別方法OmniglotminiImageNetFinetune85.62±2.380.89±1.8Matching Net93.25±1.487.50±1.1GNN96.71±0.688.81±1.4本文方法96.14±0.792.08±0.9
圖4 Omniglot數據集上的測試精度
圖5 miniImageNet數據集上的測試精度
圖6 本文方法的過擬合率
結合表2和圖4、圖5可以看出,在大規(guī)模數據集環(huán)境中識別結果較好的模型Finetune在小樣本環(huán)境下,隨著訓練次數的增加,模型的識別率緩慢趨于收斂,但與原型網絡、匹配網絡和圖神經網絡方法相比仍然較低。本文的原型網絡以全連接層作為承接樞紐時,獲得了源訓練模型的參數和經驗,提高了卷積神經網絡的特征表達能力,僅經過少量訓練即可獲得較高的識別準確率,針對小樣本復雜圖像分類,也能取得較好的分類效果。從圖6中可以看出,模型在Omniglot數據集和miniImageNet數據集上的過擬合比率都穩(wěn)定在0.98~1.05之間,這說明本文實驗的訓練過程中有效避免了過擬合問題的出現。
總之,在小樣本實驗條件下,本文方法具有較快的訓練速度、較高的準確率和較強的魯棒性。
本文構建了一個基于原型網絡的卷積神經網絡分類器,用于小樣本數據集條件下的圖像識別分類。使用平移變換和剪切變換等數據增強方式擴充數據集,利用多層卷積神經網絡將非線性的輸入圖像映射到嵌入空間中,將復雜的分類問題轉化成了在特征向量空間中的最近鄰問題。與目前存在的其他小樣本圖像識別方法相比,此方法具有簡潔高效、訓練時間短、識別率高的特點。進一步的研究工作可以在本文基礎上加入多示例學習算法,以提高對小樣本復雜彩色圖像的識別準確率。