代磊超,馮 林,楊玉亭,尚興林,蘇 菡
(四川師范大學(xué) 計算機(jī)科學(xué)學(xué)院,成都 610101)
近年來,深度學(xué)習(xí)在圖像、語音、自然語言處理等多個研究領(lǐng)域取得了成功應(yīng)用.但是,現(xiàn)有的少樣本學(xué)習(xí)模型大多需要標(biāo)注足夠多的訓(xùn)練數(shù)據(jù),這個過程需要花費大量的人力與物力.而少樣本學(xué)習(xí)只需標(biāo)記少量樣本,就能建立具有較高識別率的模型.因此,少樣本學(xué)習(xí)成為目前機(jī)器學(xué)習(xí)研究領(lǐng)域的熱點.
現(xiàn)有的少樣本學(xué)習(xí)方法可總結(jié)為四類:基于元學(xué)習(xí)(Meta-learning)的方法、基于數(shù)據(jù)增強(qiáng)的方法、基于遷移學(xué)習(xí)(Transfer Learning)的方法和基于度量學(xué)習(xí)(Metric Learning)的方法.
元學(xué)習(xí):基于元學(xué)習(xí)的目標(biāo)是訓(xùn)練元學(xué)習(xí)模型,模型可以在多種不同學(xué)習(xí)任務(wù)上達(dá)到很好的效果.例如記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)模型(Memory-Augmented Neural Networks)是基于神經(jīng)圖靈機(jī)(Neural Turing Machine,NTM)提出的,它能在外部存儲器模塊作用下實現(xiàn)內(nèi)容的存儲訪問[1];模型無關(guān)自適應(yīng)(Model-Agnostic Meta-Learning,MAML)使用少量迭代步驟就可得到很好的泛化性能,并且模型微調(diào)簡單,無需關(guān)心模型形式,也不需增加新的參數(shù),直接用梯度下降進(jìn)行訓(xùn)練[2];Ravi等人提出基于長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)的元學(xué)習(xí)(Meta LSTM),它學(xué)習(xí)的是一個模型參數(shù)的更新函數(shù)或更新規(guī)則,不是在多輪episodes學(xué)習(xí)一個單模型,而是每個episode學(xué)習(xí)特定的模型[3];元網(wǎng)絡(luò)(Meta Net)由兩個學(xué)習(xí)組件組成,一個基礎(chǔ)學(xué)習(xí)器在任務(wù)輸入空間執(zhí)行,一個元學(xué)習(xí)器在任務(wù)不可知元空間執(zhí)行,并且配備了一個外部存儲器[4];基于梯度下降(Stochastic Gradient Descent,SGD)的元學(xué)習(xí)(Meta SGD)可以學(xué)習(xí)更新方向和學(xué)習(xí)速率,并且可以在每個episode中進(jìn)行有效的學(xué)習(xí)[5];轉(zhuǎn)換傳播網(wǎng)絡(luò)(Transductive Propagation Network,TPN)在元學(xué)習(xí)框架下加入傳導(dǎo)機(jī)制,即標(biāo)簽傳播來應(yīng)對數(shù)據(jù)少的問題[6].
數(shù)據(jù)增強(qiáng):基于數(shù)據(jù)增強(qiáng)的少樣本學(xué)習(xí)方法通過對數(shù)據(jù)集進(jìn)行平移、旋轉(zhuǎn)、變形、縮放等操作,生成更多樣本以創(chuàng)建更大的數(shù)據(jù)集,防止過擬合[7],例如元生成網(wǎng)絡(luò)(Meta Generative Adversarial Networks,Meta-GAN)為特定任務(wù)生成增強(qiáng)數(shù)據(jù),以補(bǔ)充訓(xùn)練數(shù)據(jù)[8].
遷移學(xué)習(xí):基于遷移學(xué)習(xí)的方法智能地應(yīng)用以前學(xué)到的知識來更快地解決新問題[9].通過繼續(xù)訓(xùn)練來微調(diào)預(yù)訓(xùn)練網(wǎng)絡(luò)的權(quán)重來達(dá)到遷移的目的[10],例如Hariharan B等人提出了一個由用于特征提取和分類的學(xué)習(xí)者、表示學(xué)習(xí)階段、少樣本學(xué)習(xí)階段以及測試階段幾部分組成的深度神經(jīng)網(wǎng)絡(luò)[11].
度量學(xué)習(xí):基于度量學(xué)習(xí)的方法通過計算不同類別樣本特征,使相同類別的樣本彼此接近,不同樣本彼此遠(yuǎn)離,例如原型網(wǎng)絡(luò)(Prototype Network)認(rèn)為每個類別都存在一個原型表達(dá),該類的原型是支持集在嵌入空間的均值[12];匹配網(wǎng)絡(luò)(Matching Network)是基于記憶和注意力機(jī)制的網(wǎng)絡(luò)[13];關(guān)系型網(wǎng)絡(luò)(Relation Network,R-Net)定義了一個由用于特征提取的嵌入模塊和用于計算相似度的關(guān)系模塊組成的模型[14];元學(xué)習(xí)半監(jiān)督少樣本學(xué)習(xí)模型(Semi-supervised Few-Shot Learning,Meta SSL)利用半監(jiān)督的方式對原型網(wǎng)絡(luò)進(jìn)行了改進(jìn)[15].另外圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)定義了一個圖神經(jīng)網(wǎng)絡(luò)框架,將每個樣本看成圖的節(jié)點,學(xué)習(xí)節(jié)點和邊的嵌入,通過度量學(xué)習(xí)進(jìn)行分類[16].
上述模型均是在特征清晰且無噪聲的環(huán)境下訓(xùn)練,以達(dá)到較好的分類目的,而在實際應(yīng)用中,因為圖像采集設(shè)備、自然環(huán)境、光照、姿態(tài)等諸多因素的影響,模型所處理的圖像并不會像數(shù)據(jù)集中的圖像一樣清晰[17],因此在噪聲的不確定環(huán)境中,模型泛化能力較弱.
為了解決這一問題,使少樣本學(xué)習(xí)更具魯棒性和可擴(kuò)展性,本文提出了一種魯棒性的少樣本學(xué)習(xí)方法RFSL(Robust Few-Shot Learning,RFSL).
本文的主要貢獻(xiàn)如下:
1)泛化性方面,采用關(guān)系網(wǎng)絡(luò)的嵌入模塊提取支持集與查詢集樣本特征,根據(jù)關(guān)系模塊度量支持集與查詢集樣本的距離,端到端的訓(xùn)練多個基分類器,形成異構(gòu)的基分類器模型.采用投票的方式對各基分類器最末的Sigmoid層非線性分類結(jié)果進(jìn)行融合.利用此方法訓(xùn)練可使少樣本分類模型具有更強(qiáng)的魯棒性以及面對新域時更好的泛化性.
2)收斂性方面,模型采用KDE與濾波技術(shù)向訓(xùn)練任務(wù)的數(shù)據(jù)集加入多種類型隨機(jī)噪聲進(jìn)行訓(xùn)練.此方法可模糊樣本特征,促進(jìn)少樣本學(xué)習(xí)快速收斂,同時驗證噪聲參與訓(xùn)練的方式能有效幫助模型形成多個異構(gòu)的基分類器.
3)根據(jù)模型準(zhǔn)確率、計算效率、魯棒性、離散度多個評價指標(biāo)分析模型,從而提升研究效度.
本文的組織結(jié)構(gòu)如下:第2節(jié)介紹相關(guān)理論基礎(chǔ);第3節(jié)詳細(xì)介紹了本文方法;第4節(jié)是本文方法的實驗,并給出實驗結(jié)果與分析;最后對全文進(jìn)行總結(jié).
為了方便敘述,用數(shù)學(xué)的形式化方法定義少樣本學(xué)習(xí)的相關(guān)基本概念.
定義1.(少樣本數(shù)據(jù)集)設(shè)數(shù)據(jù)集D為一個三元組D=(X,Y,f),其中:
X為輸入空間,它由|X|個輸入實例{x1,x2,…,x|X|}構(gòu)成.本文中,?xi∈X,xi表示輸入的圖片實例.
Y為輸出空間,它由|Y|個類標(biāo)簽{y1,y2,…,y|Y|}構(gòu)成.
f:X→Y為信息函數(shù),它指定X中每一個輸入實例的類別標(biāo)簽值,即?xi∈X,?yj∈Y,有f(xi)=yj成立.
?yj∈Y,若f-1(yj)={xi∈X|f(xi)=yj},稱f-1(yj)為類標(biāo)簽yj的實例集.
特別地,如果|Y|=C,f-1(yj)=K,通常當(dāng)K較小時,稱D為C-way,K-shot少樣本數(shù)據(jù)集.
其中,|·|為集合的勢,i=1,2,…,|X|;j=1,2,…,|Y|.
在少樣本學(xué)習(xí)中,需要在一個大的源域數(shù)據(jù)集Ds=(Xs,Ys,f)上按一定方法抽樣生成多個C-way,K-shot少樣本數(shù)據(jù)集,然后在這些小樣本數(shù)據(jù)集上訓(xùn)練分類模型,并把分類模型較好遷移到目標(biāo)域數(shù)據(jù)Dt=(Xt,Yt,f)上,Ds與Dt需滿足Ys∩Yt=?.
定義2.(C-way,K-shot少樣本訓(xùn)練任務(wù)、支持集與查詢集):給定數(shù)集Ds=(Xs,Ys,f),Str=(XS,YS,f),Qtr=(XQ,YQ,f),從YS中隨機(jī)抽取C個類{yj|j=1,2,…,C},一個C-way,K-shot少樣本訓(xùn)練任務(wù)定義在T=(Str,Qtr)上,滿足:
①YS=YQ={yj|j=1,2,…,C};
②?ym∈YS,|f-1(ym)|=K;
③?yn∈YQ,|f-1(yn)|=q;
④Str∩Qtr=?.
其中,Str、Qtr分別稱為訓(xùn)練任務(wù)支持集、查詢集.
定義3.(C-way,K-shot少樣本測試任務(wù)、支持集與查詢集):給定數(shù)據(jù)集Dt=(Xt,Yt,f),Ste=(Xe,Ye,f),Qte=(Xh,Yh,f)從Yt中隨機(jī)抽取C個類{yj|j=1,2,…,C},一個C-way,K-shot少樣本測試任務(wù)定義在R=(Ste,Qte)上,滿足:
①Ye=Yh={yj|j=1,2,…,C};
②?ym∈Ye,|f-1(ym)|=K;
③?yn∈Yh,|f-1(yn)|=p;
④Ste∩Qte=?.
其中,Ste、Qte分別稱為測試任務(wù)支持集、查詢集.
定義4.(C-way,K-shot少樣本學(xué)習(xí)):給定訓(xùn)練任務(wù)集合Tasks={(Str,Qtr)}、測試任務(wù)集合Tasks={(Ste,Qte)},C-way,K-shot小樣本學(xué)習(xí)任務(wù)是在多個訓(xùn)練任務(wù)的數(shù)據(jù)上,學(xué)習(xí)一個分類函數(shù)F*,并在測試任務(wù)的支持集Ste上,學(xué)習(xí)分類函數(shù)f*=F*(Ste),使f*完成對測試任務(wù)中查詢集的分類.其學(xué)習(xí)過程如下:
②測試階段:對測試任務(wù)集的測試任務(wù),利用支持集Ste,生成分類模型f*=F*(Ste),然后使用查詢集Qte完成對f*的評估.
特別地,在訓(xùn)練F*的過程中,如果涉及模型超參數(shù)的調(diào)整,也可以把訓(xùn)練任務(wù)集再劃分為訓(xùn)練任務(wù)集與驗證任務(wù)集.
對于定義4中少樣本的定義,存在兩種特殊的情況:
當(dāng)K為1時稱此任務(wù)為單樣本學(xué)習(xí),每次訓(xùn)練只給出一個類的單張圖片作為支持集,剩下的圖片作為查詢集.
少樣本學(xué)習(xí)另一種特殊情況為零樣本學(xué)習(xí),零樣本學(xué)習(xí)并不是完全不需要訓(xùn)練樣本,而是研究對于特定類訓(xùn)練樣本缺失時,利用訓(xùn)練集樣本和樣本對應(yīng)輔助文本描述、屬性特征信息對模型進(jìn)行訓(xùn)練.
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,CNNs)[18]是深度學(xué)習(xí)中代表算法之一.如圖2為卷積神經(jīng)網(wǎng)絡(luò)關(guān)鍵流程,CNNs在處理圖片這種二維結(jié)構(gòu)數(shù)據(jù)取得巨大成功,它可將圖片的多層二維數(shù)據(jù)通過卷積、正則化、池化、非線性激活函數(shù)映射以及全連接網(wǎng)絡(luò),提取出高層的語義特征.模型所涉及的卷積、池化以及激活函數(shù)如公式(1)-公式(4)所示.
卷積公式:定義Cov=Am×n?Bk×l為卷積操作,其中Am×n表示m×n的輸入矩陣,?表示卷積運算符,Bk×l表示卷積核(大小為k×l),Cov表示卷積后的矩陣.?i∈[0,m),?j∈[0,n),得:
(1)
最大池化公式:定義P=MAP(Am×n,Bk×l)為最大池化操作,其中MAP(·,·)表示最大池化運算符,Am×n表示m×n的輸入矩陣,Bk×l表示池化核(大小為k×l),P表示池化后的矩陣.?i∈[0,m),?j∈[0,n),可得:
(2)
Sigmoid函數(shù)公式:定義S=Sigmoid(i)為Sigmoid激活操作,其中Sigmoid(·)表示Sigmoid運算符,S表示激活后的數(shù)值.?i,有:
(3)
ReLU函數(shù)公式:定義R=ReLU(i)為ReLU激活操作,其中ReLU(·)表示ReLU運算符,R表示激活后的數(shù)值.?i,有:
R(i)=max(0,i)
(4)
核密度估計的隨機(jī)噪聲添加方式:首先,讀入圖片得到其像素矩陣.其次,選用不同類型核函數(shù)K(·),利用平均積分平方誤差(Mean Interguated Squared Error,MISE)確定核函數(shù)帶寬h.然后,利用該核函數(shù)對像素值做核密度估計(Kernel Density Estimation,KDE),計算和篩選相應(yīng)像素值.最后,轉(zhuǎn)化添加噪聲后的矩陣為對應(yīng)圖片并輸出.平均積分平方誤差如公式(5),核密度估計如公式(6).
平均積分平方誤差公式:定義h=MISE(x),其中x為樣本點,MISE(·)為平均積分平方誤差操作,h為選定的帶寬值,對于核函數(shù)K(·),對任一給定樣本點的概率密度f(x)與擬合后的核計算概率密度值f(x),有:
(5)
(6)
圖像濾波噪聲添加方式:利用不同核的濾波器,采用圖像濾波(Image Filtering)技術(shù)對圖像像素矩陣進(jìn)行卷積處理,具體步驟為:首先讀入圖片得到其像素矩陣.其次,選用不同類型濾波器卷積核并定義卷積核大小.最后,對每一像素點,將其鄰域像素與濾波器矩陣對應(yīng)的元素做乘積運算,相加后作為該像素位置的值.圖像濾波公式如公式(7).
圖像濾波公式:定義K=O(i,j)為濾波操作,其中(i,j)為像素在圖片中的位置,O(·)為濾波操作,K為濾波結(jié)果.對(i,j),給定核函數(shù)K(m,n) ((m,n)為卷積核中位置,中心坐標(biāo)為(0,0))和與核函數(shù)對應(yīng)像素值I(i+m,j+n),有:
O(i,j)=∑m,nI(i+m,j+n)·K(m,n)
(7)
RFSL模型的總體結(jié)構(gòu)如圖1所示,它分為關(guān)系網(wǎng)絡(luò)和融合模型兩部分.本節(jié)先對兩部分內(nèi)容進(jìn)行介紹,然后再對RFSL模型進(jìn)行詳細(xì)描述.
圖1 RFSL方法流程圖Fig.1 Flow chart of RFSL method
關(guān)系網(wǎng)絡(luò)(R-Net)[14]是一個深度卷積神經(jīng)模型,其結(jié)構(gòu)包括嵌入模塊和關(guān)系模塊兩部分.嵌入模塊用于特征提取,包含四個卷積層,前兩個卷積層后會有一個池化層;關(guān)系模塊用于度量圖片相似度,包含兩層卷積和兩層全連接,每個卷積層后會有一個池化層.網(wǎng)絡(luò)中卷積層均為64個3×3的濾波器,池化層均為2×2的最大池化.
嵌入模塊fφ和關(guān)系模塊gφ,具體網(wǎng)絡(luò)如圖2所示.Xi,Xj分別位于支持集Str和查詢集Qtr中,Xi,Xj輸入嵌入模塊fφ,形成兩個特征映射fφ(Xi),fφ(Xj),然后通過算子C(fφ(Xi),fφ(Xj))結(jié)合,C(·,·)為串聯(lián)方式.將組合算子C(fφ(Xi),fφ(Xj))輸入關(guān)系模塊gφ,計算兩特征的相似度,形成0到1范圍內(nèi)的標(biāo)量,即關(guān)系分?jǐn)?shù).一個輸入的支持集樣本Xi和查詢集樣本Xj形成一個關(guān)系得分ηi,j,關(guān)系得分如公式(8).
圖2 嵌入模塊與關(guān)系模塊網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Network structure of embedded module and relationship module
ηi,j=gφ(C(fφ(Xi),fφ(Xj))),i=1,2,…,C
(8)
目標(biāo)函數(shù)使用均方誤差(Mean Square Error,MSE)損失和梯度下降訓(xùn)練模型,將關(guān)系得分ηi,j結(jié)果進(jìn)行獨熱編碼:匹配對相似度為1,不匹配相似度為0,均方誤差損失函數(shù)如公式(9).
(9)
集成學(xué)習(xí)是利用多個不同的基學(xué)習(xí)器解決同一任務(wù),從而提高模型的泛化能力[19].集成算法需要解決的兩個問題:一是如何構(gòu)建具有差異性的基學(xué)習(xí)器;二是如何進(jìn)行學(xué)習(xí)器的融合.結(jié)合少樣本學(xué)習(xí)算法對數(shù)據(jù)敏感的特性,利用隨機(jī)噪聲技術(shù)訓(xùn)練了一種魯棒性的少樣本學(xué)習(xí)模型.
具體訓(xùn)練策略見3.3算法1.模型采用2.3節(jié)中核密度估計與圖像濾波方法添加隨機(jī)噪聲.在實驗中,做了同核不同參數(shù)的Gaussian核函數(shù)及不同參數(shù)的bilateralFilter對圖像進(jìn)行雙邊濾波,發(fā)現(xiàn)參數(shù)的調(diào)整對實驗準(zhǔn)確度和融合效果整體影響較小,因此選用多種類型核函數(shù)以及其他不同類型噪聲參與訓(xùn)練,主要包括:Gaussian、bilateralFilter、poisson、salt、pepper、salt&pepper、spakle、pepper、blur、localvar、sharpening等.
融合階段:RFSL對基分類器最末的Sigmoid層結(jié)果采用相對多數(shù)投票法(Plurality Voting).具體做法:首先,將多個基分類器關(guān)系模塊結(jié)果的關(guān)系得分η相加,得到多基分類器Sigmoid層結(jié)合結(jié)果.然后,選擇后驗概率相對最大的類別結(jié)果作為最終結(jié)果.相對多數(shù)投票法公式如公式(10).
(10)
算法1:RFSL訓(xùn)練策略.C為分類種類,K為每類所取樣本個數(shù),N為集成規(guī)模,Times為訓(xùn)練次數(shù), 為損失函數(shù)收斂閾值.
輸入:數(shù)據(jù)集D=(X,Y,f),參數(shù)C、K、N、Times、θ.
輸出:少樣本模型Ω′.
Step 1.根據(jù)定義1,劃分?jǐn)?shù)據(jù)集D為訓(xùn)練集Ds、測試集Dt;
Step 2.For i=1 To N
2.2.For j=1To|Xs|
2.2.1.Xij=random_noise(Xij) //為訓(xùn)練集圖片加入隨機(jī)噪聲
End For
2.3.建立并行線程Modeli,并行訓(xùn)練(2.4-2.13);
2.4.weight_init(Ω)
2.5.根據(jù)定義2,隨機(jī)劃分Ds為支持集Str和查詢集Qtr;
2.6.While(Times>0)
2.7.隨機(jī)選取支持集Str中實例XS,輸入Ω的嵌入模塊.按圖2結(jié)構(gòu)計算XS特征ξ1:
2.7.1.out=ReLU(Xa?H1)
2.7.2.out=MAP(out,H2)
2.7.3.out=ReLU(out?H3)
2.7.4.out=MAP(out,H4)
2.7.5.out=ReLU(out?H5)
2.7.6.out=ReLU(out?H6)
2.8.隨機(jī)選取查詢集Qtr中實例XQ,輸入Ω的嵌入模塊.按圖2結(jié)構(gòu)計算XQ特征ξ2;
2.9.拼接為聯(lián)合特征矩陣ξ,輸入Ω的關(guān)系模塊.按圖2結(jié)構(gòu)計算樣本集實例與查詢集實例相似度η:
2.9.1.out=ReLU(Xa?H7)
2.9.2.out=MAP(out,H8)
2.9.3.out=ReLU(out?H9)
2.9.4.out=MAP(out,H10)
2.9.5.temp=ReLU(temp·W1)
2.9.6.η=Sigmoid(temp·W2)
2.10.η為一高維矩陣,每行中每一元素表示樣本實例與查詢實例相似度,取每行最大相似度所對應(yīng)標(biāo)簽類別為該樣本實例預(yù)測標(biāo)簽,記樣本實例預(yù)測標(biāo)簽為Y′,真實標(biāo)簽為YQ;
2.11.loss=MSE(YQ,Y′);//采用均方誤差作為關(guān)系網(wǎng)絡(luò)損失函數(shù).
2.12.If(Time>0‖MSE(Y,Y′)>0)
2.12.1.Times=Times-1
2.12.2.利用梯度下降反向傳播loss值,調(diào)整Ω參數(shù);
End If
2.13.輸出當(dāng)前模型Ωi;
End For
Step 3.采用投票模型,融合基網(wǎng)絡(luò)模型Ω1,Ω2,…,ΩN,得最終少樣本模型Ω′;
Step 4.輸出少樣本模型Ω′,算法停止.
為了RFSL方法的效果,實驗分為三個部分,即實驗1、實驗2和實驗3.實驗1將RFSL和現(xiàn)有主流少樣本學(xué)習(xí)方法的分類效果進(jìn)行對比;實驗2分析了RFSL分類效果與集成規(guī)模N之間的關(guān)系;實驗3是探究隨機(jī)噪聲對R-Net模型的性能影響以及異構(gòu)有效性的分析.
數(shù)據(jù)集:miniImageNet[20]和Omniglot[21]是研究少樣本學(xué)習(xí)算法的兩個經(jīng)典的公開數(shù)據(jù)集.miniImageNet數(shù)據(jù)集最初由Oriol Vinyals等人提出,由60000張彩色圖片組成,包含100個類,每個類包含600個示例,每個類之間的分步差異性很大.Omniglot數(shù)據(jù)集包含來自50種不同字母的1623個不同手寫字符(類),每個字符(類)包含由不同人繪制的20個樣本.
實驗方法:對于miniImageNet數(shù)據(jù)集,我們按照文獻(xiàn)[14]提出的拆分規(guī)則,將其分為64個、16個和20個類進(jìn)行訓(xùn)練、驗證和測試,16個驗證集用于檢驗?zāi)P偷姆夯阅?實驗中,隨機(jī)噪聲在訓(xùn)練集加入,驗證集和測試集保持與對比模型相同.對Omniglot數(shù)據(jù)集,使用1200個原始類別加旋轉(zhuǎn)和隨機(jī)噪聲進(jìn)行訓(xùn)練,其余423個類加旋轉(zhuǎn)保持與對比實驗相同進(jìn)行測試.
設(shè)置:隨機(jī)選取C個類,每個類選取K個樣本作為支持集,剩余樣本選擇q作為查詢集,支持集與查詢集見定義2、3.對于miniImageNet數(shù)據(jù)集,除了K個樣本,5-way 1-shot包含15張查詢圖片,5-way 5-shot包含10張查詢圖片.例如,5-way 1-shot每個訓(xùn)練批次共需15×5+1×5=80張圖片.對于Omniglot數(shù)據(jù)集,除了K個樣本, 5-way 1-shot包含19張查詢圖片,5-way 5-shot包含15張查詢圖片,20-way 1-shot包含10張查詢圖片,20-way 5-shot需要5張查詢圖片.例如,5-way 1-shot需19×5+1×5=100張圖片.
本文實驗采用的硬件環(huán)境為NVIDIA Tesla K80 GPU顯卡;軟件環(huán)境為Linux系統(tǒng)、Python語言和Pytorch深度學(xué)習(xí)框架.
實驗1的主要目的是測試RFSL方法的分類效果并與現(xiàn)有的少樣本學(xué)習(xí)方法進(jìn)行了對比.具體參數(shù)的設(shè)置保持與文獻(xiàn)[14]相同,分C=5,K=1和C=5,K=5進(jìn)行訓(xùn)練并做對比實驗.同時,對Omniglot數(shù)據(jù)集增加分類難度更高的C=20,K=1和C=20,K=5兩對比實驗.
實驗步驟如下:
miniImagentNet和Omniglot數(shù)據(jù)集的分類具體對比實驗結(jié)果分別如表1、表2所示.
表1 Omniglot數(shù)據(jù)集下RFSL方法與目前主流少樣本學(xué)習(xí)方法準(zhǔn)確率對比Table 1 Comparison of the accuracy of RFSL method and the current mainstream Few-Shot learning method in Omniglot dataset
從表1中可以看出,對于Omniglot數(shù)據(jù)集,在C=5,K=1;C=5,K=5;C=20,K=1;C=20,K=5參數(shù)設(shè)置下,RFSL方法均達(dá)到了99%以上的準(zhǔn)確率,且均超過其他主流的少樣本算法.尤其是在難度較高的C=20,K=1參數(shù)設(shè)置下,RFSL方法準(zhǔn)確率也能達(dá)到99.1±0.01%,比目前最好的R-Net高出約2個百分點.這說明RFSL在面對灰度圖的新域時,表現(xiàn)出了較好的準(zhǔn)確率和泛化性.
miniImagentNet數(shù)據(jù)集分布差異較大,是檢驗少樣本分類器性能的重要標(biāo)準(zhǔn)數(shù)據(jù)集.從表2中可以看出,C=5,K=1設(shè)置下,模型準(zhǔn)確率達(dá)到了(53.52±0.11)%,比R-Net(50.44±0.82%)準(zhǔn)確率高出3個百分點,且分類準(zhǔn)確率超出現(xiàn)有主流的其他少樣本方法;C=5,K=5設(shè)置下,模型準(zhǔn)確率達(dá)到了(69.54±0.31)%,比R-Net(65.32 ± 0.70)%準(zhǔn)確率高出4個百分點,同樣超出現(xiàn)有主流的其他少樣本方法.實驗結(jié)果表明,RFSL在數(shù)據(jù)集分布差別較大的miniImagentNet數(shù)據(jù)集上,取得了比目前主流分類器較好的分類性能.同時,結(jié)合表1、表2還可以看出,RFSL模型的標(biāo)準(zhǔn)差較小,說明分類結(jié)果離散度更小,分類性能更穩(wěn)定,面對新域時泛化性能更好.
表2 miniImageNet 數(shù)據(jù)集下RFSL方法與目前主流少樣本學(xué)習(xí)方法準(zhǔn)確率對比Table 2 Comparison of the accuracy of RFSL method and the current mainstream Few-Shot learning method in miniImageNet dataset
實驗2的主要目的是為了研究RFSL分類效果與集成規(guī)模N的關(guān)系.從表1中可以看出在Omniglot數(shù)據(jù)集下,RFSL的準(zhǔn)確度提升空間較小,效果不明顯.因此,我們在miniImageNet數(shù)據(jù)集上來研究RFSL分類效果與集成規(guī)模N的關(guān)系,將N從1依次增加到10,分別在C=5,K=1和C=5,K=5設(shè)置下的實驗結(jié)果進(jìn)行對比.
實驗步驟如下:
Step 1.For i=1 To 10
1.2取N=i ,C=5,Times=500000
1.2.1.if(N=1)跳過算法1步驟2.2
圖3 RFSL分類效果與集成規(guī)模N的關(guān)系Fig.3 Relationship between RFSL classification effect and integration scale N
實驗3的目的是為了探究隨機(jī)噪聲對R-Net模型的性能影響以及分類器異構(gòu)有效性的分析,實驗對比了添加高斯噪聲前后,模型在Omniglot和miniImageNet數(shù)據(jù)集的5-way 1-shot和5-way 5-shot實驗中訓(xùn)練集損失函數(shù)值和支持集錯誤率的變化情況,模型迭代次數(shù)為70000次,前100次變化率較大,每20次記錄一次,以后每迭代200次記錄一次結(jié)果.
實驗步驟如下:
Step 1.按照算法1的實驗步驟,取C=5,K=1和5,Times=70000
1.2.輸出并保存損失值
1.4.輸出并保存損失值
Step 2.計算支持集錯誤率
2.2.輸出并保存錯誤率
2.4.輸出并保存錯誤率
實驗記錄添加高斯噪聲前后實驗損失函數(shù)值和錯誤率結(jié)果,未添加噪聲的實驗運行時跳過算法1的步驟2.2繼續(xù)運行.
實驗結(jié)果如圖4~圖7所示.
圖4~圖7主要包括Omniglot數(shù)據(jù)集和miniImageNet數(shù)據(jù)集上5-way 1-shot和5-way 5-shot實驗訓(xùn)練損失函數(shù)值和支持集測試錯誤率的擬合結(jié)果,“RFSL 5-way 1-shot”和“RFSL 5-way 1-shot”為訓(xùn)練時添加gaussian噪聲的結(jié)果.
1)對于Omniglot數(shù)據(jù)集,從圖4~圖5可以看出,加入噪聲對模型的損失和準(zhǔn)確度影響并不大,在兩實驗上模型損失變化率和錯誤率的變化情況以及收斂情況基本一致.且隨著迭代次數(shù)的增加,準(zhǔn)確度均能達(dá)到99%以上,說明在分布差異較小的Omniglot數(shù)據(jù)集上,噪聲對模型收斂和準(zhǔn)確度影響較小.在20-way實驗中,損失函數(shù)值和錯誤率擬合結(jié)果與5-way差別不大,噪聲對模型收斂和準(zhǔn)確度影響也較小,因此不再對其做圖表展示.
圖4 RFSL添加噪聲前后在Omniglot數(shù)據(jù)集上5-way 1-shot的損失函數(shù)值和測試錯誤率Fig.4 Loss function value and test error rate of 5-way 1-shot on omniglot dataset before and after adding noise
圖5 RFSL添加噪聲前后在Omniglot數(shù)據(jù)集上5-way 5-shot的損失函數(shù)值和測試錯誤率Fig.5 Loss function value and test error rate of 5-way 5-shot on Omniglot dataset before and after adding noise
2)對于分布差異大的miniImageNet數(shù)據(jù)集,噪聲對模型的影響比較明顯,如圖6~圖7所示,噪聲對5-way 1-shot和5-way 5-shot實驗均呈現(xiàn)提前收斂的趨勢;對于5-way 1-shot實驗,加入高斯噪聲后損失函數(shù)值比未添加噪聲的模型高0.01左右,模型平均準(zhǔn)確率為46.8%,比未添加噪聲的模型低3%左右;而對于5-way 5-shot實驗,加入高斯噪聲后損失函數(shù)值比未添加噪聲的模型高0.02左右,模型平均準(zhǔn)確率為61.8%,同樣比未添加噪聲的模型低3%左右.結(jié)合實驗1模型分類準(zhǔn)確率和離散度情況可以得出,噪聲有助于模型更快收斂,提早達(dá)到較好分類準(zhǔn)確率.噪聲的擾動會模糊目標(biāo)特征,減弱源域遷移到目標(biāo)域的過擬合,使得單個模型的損失略微升高,影響模型分類的準(zhǔn)確度,但有利于形成與原模型異構(gòu)的更適于小樣本學(xué)習(xí)的基分類器.
圖6 RFSL添加噪聲前后在miniImageNet數(shù)據(jù)集上5-way 1-shot的損失函數(shù)值和測試錯誤率Fig.6 Loss function value and test error rate of 5-way 1-shot on miniImageNet dataset before and after adding noise
圖7 RFSL添加噪聲前后在miniImageNet數(shù)據(jù)集上5-way 5-shot的損失函數(shù)值和測試錯誤率Fig.7 Loss function value and test error rate of 5-way 5-shot on miniImageNet dataset before and after adding noise
近幾年,少樣本學(xué)習(xí)的研究熱度逐漸上升,它可在較少的標(biāo)記樣本中學(xué)習(xí)出識別率較好的學(xué)習(xí)模型.但現(xiàn)有少樣本學(xué)習(xí)算法在源域和目標(biāo)域分布差異較大的情況下,模型泛化能力較差.且在噪聲環(huán)境中,面對新域的特征提取能力和泛化能力弱等問題.本文用形式化數(shù)學(xué)定義方法系統(tǒng)地描述了少樣本學(xué)習(xí)相關(guān)概念,運用隨機(jī)噪聲技術(shù)訓(xùn)練出不同類型噪聲下的異構(gòu)基分類器,提出RFSL的少樣本學(xué)習(xí)算法,并與現(xiàn)有主流少樣本學(xué)習(xí)算法進(jìn)行實驗對比,結(jié)果表明,RFSL模型可促進(jìn)小樣本學(xué)習(xí)快速收斂,并能有效提高模型的分類預(yù)測準(zhǔn)確率,具有更強(qiáng)的魯棒性.下一步的工作將考慮將RFSL算法應(yīng)用于數(shù)據(jù)標(biāo)簽預(yù)測及自動標(biāo)注上,進(jìn)而有效減少樣本標(biāo)記所帶來的巨大成本.