祝鈞桃,姚光樂,張葛祥,李 軍,楊 強(qiáng),王 勝,葉紹澤
1.成都理工大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 610059
2.成都理工大學(xué) 人工智能研究中心,成都 610059
3.成都理工大學(xué) 環(huán)境與土木工程學(xué)院,成都 610059
4.成都理工大學(xué) 地質(zhì)災(zāi)害防治與地質(zhì)環(huán)境保護(hù)國家重點(diǎn)實(shí)驗(yàn)室,成都 610059
5.深圳市勘察研究院有限公司,廣東 深圳 518026
目前,深度神經(jīng)網(wǎng)絡(luò)在有監(jiān)督的視覺識(shí)別任務(wù)上取得了巨大成功[1-2],但這些成功依賴于大量帶標(biāo)注的樣本以及多次的迭代去訓(xùn)練其大量的參數(shù)。隨著新類別的出現(xiàn),當(dāng)某些類別的樣本數(shù)據(jù)不足或帶標(biāo)注樣本過少時(shí),深度神經(jīng)網(wǎng)絡(luò)模型容易過度擬合[3]。相反,人類非常擅長從極少數(shù)樣本中成功學(xué)習(xí)并推廣,比如小朋友們通過書本上的幾幅圖片就能很快的分辨什么是“狗熊”,什么是“熊貓”。在人類這種快速學(xué)習(xí)能力的啟發(fā)下,希望深度學(xué)習(xí)的模型能夠在僅有少量樣本的情況下進(jìn)行學(xué)習(xí),即小樣本學(xué)習(xí)(Few Shot Learning)[4-5]。對(duì)于當(dāng)前許多領(lǐng)域來說,比如人臉識(shí)別[6]、互聯(lián)網(wǎng)上的文本等,收集大量數(shù)據(jù)十分困難,同時(shí)一些隱私倫理等障礙也難以跨越。而比收集數(shù)據(jù)更難的還有對(duì)數(shù)據(jù)的標(biāo)注等等。因此,小樣本學(xué)習(xí)的實(shí)踐價(jià)值不言而喻。
如何從少量的樣本中學(xué)習(xí)新的概念,是小樣本學(xué)習(xí)所面臨的挑戰(zhàn)。具體的,由于有監(jiān)督信息的樣本數(shù)量過少,深度學(xué)習(xí)模型在訓(xùn)練時(shí)容易發(fā)生過擬合。如何解決面臨的過擬合難題,是研究小樣本學(xué)習(xí)的關(guān)鍵。對(duì)于深度神經(jīng)網(wǎng)絡(luò)下的小樣本學(xué)習(xí),目前國內(nèi)外已經(jīng)有了一些相關(guān)的研究,如阿里巴巴智能服務(wù)事業(yè)部團(tuán)隊(duì)[7]從模型的結(jié)構(gòu),模型的分類方法和模型的優(yōu)化算法三個(gè)角度來綜述小樣本學(xué)習(xí),將小樣本學(xué)習(xí)方法分為基于模型、基于度量和基于優(yōu)化三種。此外,李新葉等人[8]和趙凱琳等人[9]從跨任務(wù)學(xué)習(xí)知識(shí)的角度將基于元學(xué)習(xí)和基于遷移學(xué)習(xí)的方法也視為一種具體的小樣本學(xué)習(xí)模型。與現(xiàn)有研究不同的是,本文將從數(shù)據(jù)和模型兩個(gè)角度來劃分小樣本學(xué)習(xí)方法,從模型的角度來看,需要解決模型在訓(xùn)練時(shí)面臨的過擬合問題,不論是在模型結(jié)構(gòu)上的改進(jìn)還是對(duì)模型參數(shù)和算法的優(yōu)化,甚至是對(duì)模型分類方法的設(shè)計(jì)都可以視為是基于模型的方法。將基于模型作為一個(gè)具體的小樣本學(xué)習(xí)方法過于廣泛,因此在本文中進(jìn)一步將基于模型的方法根據(jù)所采用技術(shù)的不同劃分成更加具體的三種學(xué)習(xí)策略:度量學(xué)習(xí)、外部記憶和參數(shù)優(yōu)化。從數(shù)據(jù)的角度來看,需要解決小樣本數(shù)據(jù)過少的問題,這方面與許多研究[8-10]類似,也將數(shù)據(jù)增強(qiáng)作為一種小樣本學(xué)習(xí)策略。同時(shí),在本文中,元學(xué)習(xí)被視為一種高層次的跨任務(wù)學(xué)習(xí)策略,它可以應(yīng)用在各種學(xué)習(xí)方法中,而不作為一種具體的學(xué)習(xí)方法,關(guān)于元學(xué)習(xí)將在下一節(jié)具體介紹。綜上所述,如表1 所示,從數(shù)據(jù)和模型兩個(gè)角度,根據(jù)解決方案所采用技術(shù)的不同,本文將在DNN 下的小樣本學(xué)習(xí)解決方案分為四種策略:數(shù)據(jù)增強(qiáng)、度量學(xué)習(xí)、外部記憶、參數(shù)優(yōu)化。
表1 在深度神經(jīng)網(wǎng)絡(luò)下的小樣本學(xué)習(xí)策略
如圖1 所示,定義小樣本學(xué)習(xí)的基本模型為p=C(f(x|θ)|w),它由特征提取器f(·|θ)和分類器C(·|w)組成,θ和w分別表示f和c的參數(shù),x表示待識(shí)別的圖像,f(x|θ)表示對(duì)圖像x提取的特征,p表示對(duì)圖像x識(shí)別的結(jié)果。
圖1 小樣本學(xué)習(xí)基本模型
由于在小樣本學(xué)習(xí)問題中,其訓(xùn)練集所包含的樣本數(shù)量過少,在該訓(xùn)練集上訓(xùn)練識(shí)別模型p所的到的參數(shù)θ和w會(huì)使模型過度擬合。因此,在通常情況下模型p=C(f(x|θ)|w)需要先在已有的基礎(chǔ)類別集Dbase上進(jìn)行訓(xùn)練(Dbase中包含多個(gè)類別,每個(gè)類別包含大量訓(xùn)練樣本),學(xué)習(xí)到一個(gè)好的特征提取器參數(shù)θ和分類器參數(shù)w。接著給定一個(gè)包含N類新圖像的新類別集Dnovel,其中每個(gè)類別的訓(xùn)練樣本數(shù)量一般不超過20個(gè)。模型p=C(f(x|θ)|w)通過在新類別集Dnovel上訓(xùn)練,學(xué)習(xí)得到參數(shù)θ" 和w" 用于更新原始參數(shù),更新后的模型p=C(f(x|θ")|w")能夠正確識(shí)別出這N類新圖像。
用于小樣本學(xué)習(xí)的深度神經(jīng)網(wǎng)絡(luò)主要有卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)以及在其基礎(chǔ)上的變體,如ResNets[1]、VGG[11]、GoogleNet[12]、等,基礎(chǔ)的CNN 由卷積、激活和池化三種結(jié)構(gòu)組成。CNN 輸出的結(jié)果是每幅圖像的特征。當(dāng)處理圖像分類任務(wù)時(shí),會(huì)把CNN 輸出的特征作為全連接層的輸入,用全連接層來完成從輸入圖像到標(biāo)簽集的映射,即分類。如上所述,在DNN 下的小樣本學(xué)習(xí)模型中,通常使用CNN 或RNN 來作為特征提取器,θ則對(duì)應(yīng)網(wǎng)絡(luò)的參數(shù)。使用全連接層作為分類器,其參數(shù)為w。
同時(shí),在小樣本學(xué)習(xí)問題中,常使用一種叫元學(xué)習(xí)(Meta Learning)的訓(xùn)練策略。元學(xué)習(xí)的思想早在上世紀(jì)90年代就被提出[13]。隨著深度學(xué)習(xí)的快速發(fā)展,一些研究者提出利用元學(xué)習(xí)策略來學(xué)習(xí)優(yōu)化深度學(xué)習(xí)模型[14-15]。如圖2 所示,將被優(yōu)化的對(duì)象稱為基礎(chǔ)學(xué)習(xí)器(base learner),即深度神經(jīng)網(wǎng)絡(luò)模型,將元學(xué)習(xí)的過程(即訓(xùn)練策略)稱為元學(xué)習(xí)器(meta learner)?;A(chǔ)學(xué)習(xí)器(模型)的目標(biāo)是快速利用少量數(shù)據(jù)學(xué)習(xí)新任務(wù)。因此,基礎(chǔ)學(xué)習(xí)器也被稱為快速學(xué)習(xí)器,元學(xué)習(xí)器的目標(biāo)是通過在大量不同學(xué)習(xí)任務(wù)上訓(xùn)練基礎(chǔ)學(xué)習(xí)器,使得訓(xùn)練后的基礎(chǔ)學(xué)習(xí)器可以僅使用少量的訓(xùn)練樣本來解決新的學(xué)習(xí)任務(wù),即小樣本學(xué)習(xí)任務(wù)。
圖2 元學(xué)習(xí)訓(xùn)練思想
具體來說,元學(xué)習(xí)在處理小樣本問題時(shí)包括元訓(xùn)練(meta-training)和元測試(meta-testing)兩個(gè)階段,如圖3所示。在元訓(xùn)練階段,基礎(chǔ)學(xué)習(xí)器將面對(duì)元學(xué)習(xí)器提供的許多個(gè)獨(dú)立不同的監(jiān)督任務(wù)T ,任務(wù)之間所包含樣本的類別不完全相同。在每一個(gè)任務(wù)內(nèi),從已有的基礎(chǔ)類別集Dbase中隨機(jī)抽取C 個(gè)類別,從每類樣本中抽取K 個(gè)樣本(共C×K 個(gè)樣本)組成支持集(Support Set,S)作為基礎(chǔ)學(xué)習(xí)器的輸入,再從這C 類的剩余樣本中隨機(jī)抽取一批作為查詢集(Query Set,Q)用于測試,其中K 一般不超過20 個(gè),通常將這樣設(shè)置的任務(wù)稱為C-way K-shot問題。
圖3 元學(xué)習(xí)中任務(wù)的數(shù)據(jù)設(shè)置
所有任務(wù)都是從基礎(chǔ)類別集Dbase上隨機(jī)構(gòu)造的,且每一個(gè)任務(wù)的數(shù)據(jù)集DT={S,Q}設(shè)置相同。在元測試階段,新任務(wù)(即小樣本學(xué)習(xí)任務(wù))的數(shù)據(jù)集Dnovel設(shè)置與訓(xùn)練時(shí)的任務(wù)相同,并且新任務(wù)中的樣本類別是在之前學(xué)習(xí)過的任務(wù)中沒有出現(xiàn)過的。元學(xué)習(xí)的目標(biāo)是為基礎(chǔ)學(xué)習(xí)器找到一個(gè)參數(shù)θ 來最小化在所有任務(wù)中的期望損失L(·|θ):
基礎(chǔ)學(xué)習(xí)器在訓(xùn)練過程中不斷學(xué)習(xí)新的任務(wù),在經(jīng)歷大量的不同任務(wù)訓(xùn)練之后,基礎(chǔ)學(xué)習(xí)器能夠更好地處理任務(wù)之間的不同并忽略特定任務(wù)的特征,因此能夠在遇到小樣本新任務(wù)的時(shí)候,有很好的效果。需要注意的是,元學(xué)習(xí)是一種高層次的跨任務(wù)學(xué)習(xí)策略[16],可以應(yīng)用在各種小樣本學(xué)習(xí)模型中,而不是一種特定的小樣本學(xué)習(xí)模型。
小樣本學(xué)習(xí)所面臨的最主要難題是有監(jiān)督樣本數(shù)量過少,而深度學(xué)習(xí)模型需要足夠的數(shù)據(jù)支撐才能進(jìn)行更好地訓(xùn)練,然而在許多應(yīng)用場景中,直接獲取大量的有標(biāo)記數(shù)據(jù)很困難,而一些專業(yè)的數(shù)據(jù)采集和標(biāo)注價(jià)格十分昂貴。因此,對(duì)小樣本學(xué)習(xí)的數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)是一種比較直接且簡單的解決方法。
數(shù)據(jù)增強(qiáng)也叫數(shù)據(jù)擴(kuò)充,是指在輔助數(shù)據(jù)或輔助信息(即轉(zhuǎn)換規(guī)則)的幫助下向原有的小樣本數(shù)據(jù)集中增加新的數(shù)據(jù),以生成一個(gè)更大的數(shù)據(jù)集,防止模型的過度擬合。如圖4 所示,通過利用輔助數(shù)據(jù)或輔助信息,我們對(duì)新類別集Dnovel中的樣本(xi,yi)按照一定規(guī)則轉(zhuǎn)換成多個(gè)樣本,轉(zhuǎn)換后的樣本具有與被轉(zhuǎn)換樣本相同的類別標(biāo)簽,并加入到原數(shù)據(jù)集Dnovel中形成一個(gè)更大的數(shù)據(jù)集D"novel,這個(gè)更大的數(shù)據(jù)集由于包含較多的數(shù)據(jù),可以直接在深度模型下進(jìn)行訓(xùn)練。
圖4 采用數(shù)據(jù)增強(qiáng)策略的小樣本學(xué)習(xí)方法基本結(jié)構(gòu)(以圖像旋轉(zhuǎn)為例)
在早期的工作中,通常對(duì)現(xiàn)有的小樣本數(shù)據(jù)集應(yīng)用固定的轉(zhuǎn)換規(guī)則來生成新的樣本。可以是圍繞某一個(gè)樣本進(jìn)行操作,如移位(translation)[17]、旋轉(zhuǎn)(rotation)[18]、縮放(scale)[19-20]、裁剪(crop)[19-21]、翻轉(zhuǎn)(flip)[21-22]等操作,也可以是同時(shí)針對(duì)多個(gè)樣本進(jìn)行操作,如SMOTE[23]、SamplePairing[24]和Mixup[25]等算法。這些方法非常簡單,對(duì)原圖像的改動(dòng)十分微小,但可以快速獲得大量新數(shù)據(jù)。并且對(duì)于這些修改后的圖像,這里的神經(jīng)網(wǎng)絡(luò)會(huì)認(rèn)為是不同的圖像。
然而人為的構(gòu)建這些固定的數(shù)據(jù)轉(zhuǎn)換規(guī)則需要大量相關(guān)領(lǐng)域的知識(shí),同時(shí)這些轉(zhuǎn)換規(guī)則不具有一般性,有的僅在作用于特定的數(shù)據(jù)集時(shí)有較好的表現(xiàn),比如對(duì)于一個(gè)非正方形尺寸圖像的數(shù)據(jù)集,采用旋轉(zhuǎn)可會(huì)丟失圖像的尺寸,這又需要額外的工作去解決尺寸問題。因此,采用固定轉(zhuǎn)換規(guī)則的方式并不能完全解決小樣本學(xué)習(xí)問題。
更先進(jìn)的擴(kuò)充方法通過神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)生成新的數(shù)據(jù)。其中最具代表的是基于生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Nets,GAN)合成數(shù)據(jù)的方法,最原始的GAN由Goodfellow等人[26-27]最早提出,GAN框架包含兩個(gè)不同的網(wǎng)絡(luò),一個(gè)被稱為生成器(Generator,G(·|θG)),另一個(gè)被稱為判別器(Discriminator,D(·|θD))。生成器G根據(jù)輸入的隨機(jī)噪聲z產(chǎn)生隨機(jī)的模擬樣本G(z|θG)。而判別器D的任務(wù)則是判斷輸入樣本是否真實(shí),并輸出其為真實(shí)樣本的概率D(· |θD)。G的目標(biāo)是盡可能生成真實(shí)的樣本去欺騙D,而D則要正確區(qū)分出真實(shí)樣本x與模擬樣本G(z|θG)。兩者構(gòu)成一種動(dòng)態(tài)的博弈過程,并在對(duì)抗的過程中不斷改進(jìn)自己的技術(shù),最后達(dá)到一個(gè)平衡點(diǎn),此時(shí)生成的模擬樣本能夠達(dá)到以假亂真的效果。其目標(biāo)函數(shù)定義為:
一般而言,將GAN 應(yīng)用于小樣本學(xué)習(xí)的基本思想是,通過利用基礎(chǔ)類別集Dbase來訓(xùn)練GAN 網(wǎng)絡(luò),再使用訓(xùn)練后的GAN為新類別集Dnovel生成新數(shù)據(jù),以產(chǎn)生一個(gè)更大的數(shù)據(jù)集D"novel。
基于上述思想,Mehrotra 等人[28]提出了一種用于單樣本學(xué)習(xí)的生成對(duì)抗殘差成對(duì)網(wǎng)絡(luò),提出使用可學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)來度量樣本之間的相似性并進(jìn)行分類,同時(shí)引入了GAN網(wǎng)絡(luò),利用GAN生成器為輸入的支持集樣本生成假的查詢樣本,為了防止直接復(fù)制,對(duì)輸入的支持集樣本進(jìn)行了隨機(jī)的“破壞”,而判別器不僅要能夠區(qū)分輸入的樣本是否是真實(shí)的查詢集樣本,而且對(duì)于判斷為真的查詢集樣本,還要評(píng)估他與對(duì)應(yīng)的支持集樣本是否相似。最后,生成器與判別器的損失將作為正則化項(xiàng),添加到分類損失后,來增強(qiáng)相似性匹配任務(wù)。劉宇飛等人[29]提出了一種結(jié)合W-GAN 和DNN 的小樣本學(xué)習(xí)方法,即利用W-GAN對(duì)新類別數(shù)據(jù)集Dnovel進(jìn)行增強(qiáng),再使用增強(qiáng)后的數(shù)據(jù)集D"novel訓(xùn)練DNN 分類器。具體的,對(duì)于WGAN中生成器生成的模擬樣本,使用判別器進(jìn)行過濾。當(dāng)生成的模擬樣本騙過判別器被識(shí)別為真實(shí)樣本后,才被作為有效的模擬樣本用于訓(xùn)練集擴(kuò)充。與GAN相比,W-GAN采用Wasserstein距離而不是JS 差異來評(píng)估真實(shí)和模擬樣本之間的分布差異,同時(shí),采用Wasserstein 距離可以使網(wǎng)絡(luò)的訓(xùn)練速度更快、更穩(wěn)定[30]。
除了基于GAN 合成數(shù)據(jù)的方法外,研究者發(fā)現(xiàn)同一類別不同樣本之間的差異是能夠泛化到其他的類別中的,通過學(xué)習(xí)這種差異,Hariharan 等人[31]提出了一種為小樣本合成數(shù)據(jù)的新方法,該方法包括兩個(gè)階段:表征學(xué)習(xí)和小樣本學(xué)習(xí)。表征學(xué)習(xí)階段使用有大量訓(xùn)練樣本的基類數(shù)據(jù)集Dbase訓(xùn)練一個(gè)好的特征提取器參數(shù)θ。而在小樣本學(xué)習(xí)階段,則同時(shí)使用新類別數(shù)據(jù)集Dnovel與基類數(shù)據(jù)集Dbase對(duì)模型進(jìn)行微調(diào)。為了解決小樣本學(xué)習(xí)階段新類別數(shù)據(jù)過少的問題,提出使用一個(gè)特征生成器G去學(xué)習(xí)同一類別中兩個(gè)不同樣本特征向量z1與z2之間的變化關(guān)系:f:z1→z2,并應(yīng)用在新類別數(shù)據(jù)上,為新類別生成新的數(shù)據(jù)。類似的,Schwartz等人[32]提出了一個(gè)由編碼器和解碼器組成的網(wǎng)絡(luò)來生成新數(shù)據(jù)。編碼器學(xué)習(xí)提取當(dāng)前數(shù)據(jù)集Dbase中同類別的成對(duì)樣本之間的可轉(zhuǎn)移變形,而解碼器學(xué)習(xí)如何將這些變形應(yīng)用于Dnovel中的樣本,為其生成新的數(shù)據(jù)。該方法的神經(jīng)網(wǎng)絡(luò)模型采用VGG16 或ResNet18 作為特征提取器,對(duì)于一個(gè)輸出的2 048維特征向量,該方法可以在0.1 s 為新類別生成1 024 個(gè)新數(shù)據(jù),能有效地對(duì)少樣本類進(jìn)行擴(kuò)充。而在文獻(xiàn)[33]中不再學(xué)習(xí)這種成對(duì)變量之間關(guān)系,而是利用從一組場景圖像中學(xué)習(xí)的一些獨(dú)立的連續(xù)瞬態(tài)屬性(如雨天,陽光,夜晚等)來定向地為單樣本任務(wù)場景類合成特征,通過在輔助場景類上學(xué)習(xí)一個(gè)線性映射軌跡,將屬性映射到特征,從而將原始的圖像x轉(zhuǎn)換成新圖像,并將x的標(biāo)簽賦予新圖像。而在文獻(xiàn)[34]中進(jìn)一步設(shè)計(jì)了一個(gè)編解碼器網(wǎng)絡(luò),以與輸入特征不同的屬性強(qiáng)度將樣本的特征映射到另一個(gè)合成特征中,從而生成新的圖像。
總的來說,通過利用當(dāng)前任務(wù)的輔助信息對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充以增大小樣本數(shù)據(jù)集Dnovel來解決小樣本學(xué)習(xí)問題是非常簡單且容易理解的。但通過數(shù)據(jù)擴(kuò)充來解決小樣本學(xué)習(xí)問題的局限性在于,擴(kuò)充策略通常是針對(duì)每個(gè)數(shù)據(jù)集定制的,不容易遷移到其他數(shù)據(jù)集,尤其是來自其他域的數(shù)據(jù)集。除此之外,現(xiàn)有的方法主要是針對(duì)生成圖像的,這是由于圖像可以很容易地被人類視覺評(píng)價(jià),相比之下,文本和音頻等涉及語法和結(jié)構(gòu)的數(shù)據(jù),要更加難以生成。
度量學(xué)習(xí)[30]的目標(biāo)是學(xué)習(xí)一個(gè)成對(duì)相似性度量S(·,·),在該條件下,相似的樣本對(duì)可以獲得較高的相似分,而不相似的樣本對(duì)則獲得較低的相似分。所有采用度量學(xué)習(xí)策略的小樣本學(xué)習(xí)方法都遵循這一原則,如圖5所示,給出了這一解決策略的基本結(jié)構(gòu)。它采用元學(xué)習(xí)的訓(xùn)練策略來學(xué)習(xí)期望在不同任務(wù)中可轉(zhuǎn)移的相似性度量,并將其推廣到新的小樣本學(xué)習(xí)任務(wù)中。其中f和g分別是將支持集樣本(用xj表示)與查詢集樣本(用xi表示)映射到特征空間的嵌入模型(通過),θf和θg分別對(duì)應(yīng)其參數(shù)。S(·,·)則是用于度量支持集樣本與查詢集樣本之間的成對(duì)相似性的一個(gè)度量模塊,這可以是一個(gè)簡單的距離度量,也可以是一個(gè)可學(xué)習(xí)的網(wǎng)絡(luò),只要它能夠估計(jì)樣本或特征之間的成對(duì)相似性。最后通過度量模塊輸出的相似度可用于對(duì)查詢樣本的分類預(yù)測。
圖5 采用度量學(xué)習(xí)策略的小樣本學(xué)習(xí)方法基本結(jié)構(gòu)
采用度量學(xué)習(xí)策略的小樣本學(xué)習(xí)方法主要有兩種:一是采用固定的度量,主要有原型網(wǎng)絡(luò)[35]和匹配網(wǎng)絡(luò)[39];二是采用可學(xué)習(xí)的度量,如關(guān)系網(wǎng)絡(luò)[43]等。
適用于小樣本學(xué)習(xí)的原型網(wǎng)絡(luò)(prototypical networks)最早由Snell 等人[35]提出,如圖6 所示,它以同類支持樣本的特征表示中心作為該類的原型(圖中的黑色球),類原型PC的計(jì)算公式定義為:
其中SC表示支持集樣本中類別標(biāo)簽為c的樣本集,xj表示類別標(biāo)簽為c的第j個(gè)樣本。通過不斷訓(xùn)練網(wǎng)絡(luò),使得在嵌入空間(圖中的黑框)內(nèi),同類別樣本特征到本類原形的距離較近,到其他類原形的距離較遠(yuǎn)。測試時(shí),通過計(jì)算待分類樣本xi的特征(圖中的白色球)與原型之間的歐幾里得距離,并使用Softmax 函數(shù)輸出對(duì)xi標(biāo)簽的預(yù)測概率。同時(shí),在原型網(wǎng)絡(luò)中f和g是參數(shù)共享的嵌入網(wǎng)絡(luò)(即θf =θg),這種框架也是許多后續(xù)此類小樣本學(xué)習(xí)方法的基石。TADAM[36]通過引入度量縮放因子α,進(jìn)一步優(yōu)化原型網(wǎng)絡(luò)的相似性度量S(·,·),并通過任務(wù)嵌入網(wǎng)絡(luò)(TEN)將原始任務(wù)無關(guān)型的f轉(zhuǎn)化為任務(wù)條件嵌入型。此外,AM3[37]還將額外的跨模態(tài)信息,如語義表示,集成到原型網(wǎng)和TADAM中,以增強(qiáng)度量學(xué)習(xí)過程。
圖6 原型網(wǎng)絡(luò)(黑色球表示類的原型,白色球表示待分類樣本)
Vinyals等人[38]提出的匹配網(wǎng)絡(luò)(Matching Networks)通過評(píng)估查詢集樣本xi的特征表示與每個(gè)支持集樣本xj的特征表示之間的余弦相似性來預(yù)測查詢樣本xi的標(biāo)簽概率。匹配網(wǎng)絡(luò)的模型結(jié)構(gòu)類似于圖5 所示的基本結(jié)構(gòu),都是以帶標(biāo)簽的支持集樣本xj和無標(biāo)簽查詢集樣本xi為輸入,分別將樣本映射到嵌入空間f(xj)和g(xi)中。不同的是,在分類階段,匹配網(wǎng)絡(luò)不直接通過度量距離來預(yù)測概率,而是引入了注意力機(jī)制來計(jì)算查詢樣本xi對(duì)每一個(gè)支持集樣本xj的注意力a(xi,xj):
其中,c(·,·)表示余弦距離,最后使用式對(duì)查詢樣本的標(biāo)簽進(jìn)行預(yù)測,實(shí)現(xiàn)在只有少量樣本的條件下對(duì)無標(biāo)注樣本的標(biāo)簽預(yù)測。匹配網(wǎng)絡(luò)在兩個(gè)方面不同于原型網(wǎng)絡(luò)。首先,匹配網(wǎng)絡(luò)的嵌入f和g是兩個(gè)不同的網(wǎng)絡(luò),即θf≠θg。其中f是CNN 和BiLSTM[39]的組合,目的是為少數(shù)的支持集樣本實(shí)現(xiàn)全上下文嵌入,而g是一個(gè)條件模型,它通過注意力機(jī)制為查詢樣本生成特征。其次,匹配網(wǎng)絡(luò)中的相似性度量采用余弦距離而不是歐氏距離。在MM-Net[40]中,進(jìn)一步設(shè)計(jì)了一個(gè)內(nèi)存模塊用以產(chǎn)生特征嵌入,可用于生成g中的參數(shù)。而在文獻(xiàn)[41]中,則考慮了類標(biāo)簽的語義多樣性和相似性,并利用預(yù)定抽樣的策略來促進(jìn)匹配網(wǎng)的模型訓(xùn)練。
與原型網(wǎng)絡(luò)和匹配網(wǎng)絡(luò)使用固定的非參數(shù)的度量(比如歐幾里德距離、余弦距離等)來估計(jì)成對(duì)特征之間的相似性不同。Sung 等人[42]提出的關(guān)系網(wǎng)絡(luò)(Relation Networks)采用了可學(xué)習(xí)的CNN 來評(píng)估成對(duì)樣本之間的相似性。類似的,關(guān)系網(wǎng)絡(luò)同樣包含一個(gè)嵌入模塊f和一個(gè)關(guān)系模塊g,以5-way 1-shot的小樣本學(xué)習(xí)問題為例(即支持集中樣本類別有五個(gè)且每一類只包含一個(gè)樣本),嵌入模塊將支持集中的樣本xj(j=1,2,3,4,5)和查詢集中待分類樣本xi通過嵌入函數(shù)f映射到特征空間,并將特征映射f(xi)和f(xj)通過級(jí)聯(lián)的方式連接起來輸入到關(guān)系模塊,在關(guān)系模塊中通過函數(shù)g(·)比較f(xi)和每一個(gè)f(xj)的余弦相似性并計(jì)算得到一個(gè)介于0和1的關(guān)系得分r(xi,xj)(0代表不相似,1代表完全相同):
其中,θf =θg,h(·)表示可學(xué)習(xí)的CNN,θh表示其參數(shù)。C(·,·)表示將特征映射級(jí)聯(lián)。最后根據(jù)關(guān)系值對(duì)無標(biāo)注新數(shù)據(jù)進(jìn)行標(biāo)簽預(yù)測。基于關(guān)系網(wǎng)絡(luò),DCN[43]通過將關(guān)系模塊部署到嵌入模型f的每一層來擴(kuò)展關(guān)系網(wǎng)絡(luò)。SoSN[44]選擇在特征映射的二階表示上進(jìn)行關(guān)系計(jì)算,而SARN[45]進(jìn)一步在關(guān)系網(wǎng)中引入了一種自注意力機(jī)制,用于捕獲非局部的特征以及增強(qiáng)特征表示。SRPN[28]設(shè)計(jì)了一個(gè)更復(fù)雜的網(wǎng)絡(luò),用于取代固定的距離度量函數(shù),并通過跳躍連接實(shí)現(xiàn)了中間特征圖的充分融合。
除了以上的方法外,Kim等人[46]提出了基于變分自動(dòng)編碼器(VAE)的原型圖像生成網(wǎng)絡(luò),提出了原型圖像的概念,區(qū)別于原型網(wǎng)絡(luò)中的原型概念,這里的原型圖像指沒有任何形變和模糊的圖像,通過對(duì)輸入的圖像x進(jìn)行重構(gòu)得到對(duì)應(yīng)的原型圖像t,把圖像中的干擾信息排除,保留最直觀最重要的原型圖像,最后采用最近鄰算法進(jìn)行分類。Li 等人[47]在度量學(xué)習(xí)算法的基礎(chǔ)上提出了一種特征學(xué)習(xí)模塊用于小樣本學(xué)習(xí),為了改進(jìn)原有算法特征提取網(wǎng)絡(luò)的表征能力,設(shè)計(jì)了一種類遍歷模塊(Category Traversal Module,CTM),CTM 模塊包含一個(gè)級(jí)聯(lián)器(Concentrator)和一個(gè)投影器(Projector)。原特征提取網(wǎng)絡(luò)f(·|θf)獲取支持集和查詢集的數(shù)據(jù)得到初始特征信息f(S|θf)和f(Q|θf),級(jí)聯(lián)器獲取支持集的特征信息用于提取類內(nèi)共有特征,而投影器獲取級(jí)聯(lián)器的輸出用于提取類間的獨(dú)有特征,并在特征圖通道維度上使用softmax層得到各個(gè)特征圖對(duì)應(yīng)的掩碼圖p。最后,將初始特征信息通過一個(gè)變形器(Reshaper)更改形狀得到變形后的特征圖r(S)和r(Q)用于與對(duì)應(yīng)的掩碼圖p逐元素相乘得到改進(jìn)的特征圖I(S)和I(Q),改進(jìn)后的特征圖可以用于各種基于度量學(xué)習(xí)的算法分類器中。同時(shí)CTM 的優(yōu)點(diǎn)在于它是一種即插即用的模塊,可以直接添加到原網(wǎng)絡(luò)中。
采用度量的策略的小樣本學(xué)習(xí)方法其關(guān)鍵在于學(xué)習(xí)一個(gè)好的特征嵌入f和g,能夠?qū)颖居成涞揭粋€(gè)良好的嵌入空間,在該空間中,來自不同類的樣本可以很好地分離,而這樣一個(gè)好的特征嵌入通常需要大量數(shù)據(jù)去訓(xùn)練。因此,當(dāng)存在一個(gè)包含足夠的各種類樣本的大規(guī)模基類數(shù)據(jù)集Dbase時(shí),可以采用度量學(xué)習(xí)的策略。然而,當(dāng)小樣本任務(wù)與其他任務(wù)不密切相關(guān)時(shí),這種方法可能不能很好地工作。此外,更多的探索如何混合任務(wù)的不變信息和任務(wù)特定信息對(duì)基于度量學(xué)習(xí)的方法是非常有幫助的。
采用外部記憶策略的小樣本學(xué)習(xí)方法,其主要思想是在模型中添加額外的記憶模塊來保存從支持集S中提取的一些信息,幫助網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。而每個(gè)測試樣本則由從記憶模塊中讀取內(nèi)容的加權(quán)平均表示。
如圖7 所示,給出了這一類方法模型的基本結(jié)構(gòu)。在記憶模塊中通常采用鍵值對(duì)(key,value)的形式存儲(chǔ)支持集樣本的信息,具體而言,key表示支持樣本xj在f中的嵌入表示f(xj),而value表示其對(duì)應(yīng)的標(biāo)簽yj(也可以是其他信息,這里以類別標(biāo)簽為例,即(f(xj),yj))。而測試樣本xi首先通過特征提取器f嵌入得到f(xi),這里的f(xi)不直接用作xi的表示,而是作為查詢鍵值讀取記憶模塊中的內(nèi)容,通過一個(gè)度量S(·,·)比較f(xi)與記憶模塊中每一個(gè)key的相似性,根據(jù)相似性將key對(duì)應(yīng)的值value進(jìn)行線性組合得到xi的表示,并用于后續(xù)的分類器輸入。
圖7 采用外部記憶策略的小樣本學(xué)習(xí)方法基本結(jié)構(gòu)
由于每個(gè)測試樣本xi都表示為從內(nèi)存中提取的值的加權(quán)平均值,所以內(nèi)存中鍵值對(duì)的質(zhì)量是很重要的。根據(jù)記憶模塊的功能,該類別中的學(xué)習(xí)方法可主要可以分為兩種:一是細(xì)化表示,如MANN[18]、終身記憶模塊[46]等;二是細(xì)化模型參數(shù),如Meta-Net[47]、MM-Net[48]等。同時(shí),由于采用記憶模塊成本較高,模塊通常只有很小的尺寸。當(dāng)記憶模塊未裝滿時(shí),可以將輸入的支持樣本xj寫入空內(nèi)存。當(dāng)記憶模塊已滿時(shí),需要采用一定的方法決定更換哪些模塊內(nèi)的內(nèi)容。
Santoro 等人[18]提出的基于記憶增強(qiáng)的神經(jīng)網(wǎng)絡(luò)(Memory-Augmented Neural Network,MANN)借鑒了神經(jīng)圖靈機(jī)(Neural Turing Machine,NTM)的思想,采用顯示的外部記憶模塊保留樣本特征信息實(shí)現(xiàn)短期記憶,并利用元學(xué)習(xí)算法優(yōu)化NTM 的讀取和寫入過程,再結(jié)合神經(jīng)網(wǎng)絡(luò)自身具備的長期記憶能力共同實(shí)現(xiàn)小樣本學(xué)習(xí)任務(wù)。具體的,MANN 通過元學(xué)習(xí)得到嵌入表示f,將同一類的支持樣本映射到相同的鍵值,然后在記憶模塊中將它們的特征表示細(xì)化到一起,類似于原型網(wǎng)絡(luò)[30]中的類別原型。APL[48]設(shè)計(jì)了一個(gè)基于驚奇(surprise-based)的記憶網(wǎng)絡(luò)來記住它所遇到的信息最豐富的支持樣本,它在記憶模塊不能很好的表示輸入的支持樣本xj時(shí)才選擇更新模塊,這使得更新后的記憶模塊具有更好的表現(xiàn),同時(shí)降低了計(jì)算成本。Kaiser等人[49]提出的終生記憶模塊(life-long memory module)將訓(xùn)練時(shí)獲取到的所有類別樣本的特征信息與對(duì)應(yīng)的標(biāo)簽以鍵值對(duì)的形式存儲(chǔ)在記憶模塊。而測試時(shí),采用KNN 的思想,選取記憶模塊中與測試樣本最近的k個(gè)樣本信息對(duì)新數(shù)據(jù)標(biāo)簽進(jìn)行預(yù)測。為了緩解記憶模塊中小樣本類別的信息容易被信息更豐富的類別樣本所替換的情況,該方法給記憶模塊內(nèi)的內(nèi)容增加了年齡參數(shù),用于表示在內(nèi)存中的存儲(chǔ)時(shí)間,當(dāng)內(nèi)存滿時(shí),如果輸入的查詢向量q的真實(shí)標(biāo)簽與記憶模塊中通過計(jì)算得到的對(duì)應(yīng)的鍵的值相等時(shí),則直接將該鍵的值進(jìn)行更新,即細(xì)化表示。如果不相等,則會(huì)在年齡最大的內(nèi)容中隨機(jī)選擇一個(gè)被替換,更新或替換后將所有年齡清零。在這一策略下,所有的類別可能占用相同大小的內(nèi)存,從而保護(hù)了小樣本類。同時(shí),該記憶模塊本身不具備網(wǎng)絡(luò)結(jié)構(gòu),因此可以根據(jù)任務(wù)的不同,配合各種神經(jīng)網(wǎng)絡(luò)模型使用。
Munkhdalai 等人[50]基于元學(xué)習(xí)的訓(xùn)練策略提出了一種帶有外部記憶模塊的網(wǎng)絡(luò)(Meta Networks,MN)。MN由Meta Learner和Base Learner以及一個(gè)外部記憶模塊組成。Base Learner可以獲取當(dāng)前任務(wù)的輸入并分析,然后向Meta Learner 提供反饋。得到反饋后,Meta Learner 可以迅速地參數(shù)化自身和Base Learner 使得MN能夠識(shí)別輸入任務(wù)中的新概念。為了使小樣本學(xué)習(xí)能應(yīng)用于各種神經(jīng)網(wǎng)絡(luò),Cai 等人[40]提出的基于外部記憶的匹配網(wǎng)絡(luò)(Memory Matching Networks,MM-Net)使用一個(gè)內(nèi)存來細(xì)化在匹配網(wǎng)絡(luò)中學(xué)習(xí)的嵌入f ,它的輸出被用來參數(shù)化神經(jīng)網(wǎng)絡(luò),在具體的實(shí)現(xiàn)過程中,還設(shè)計(jì)了記憶模塊的讀寫策略,并利用一個(gè)RNN 模型為查詢集的特征提取網(wǎng)絡(luò)g 生成參數(shù)θg。Mishra等人[51]在原型網(wǎng)絡(luò)[30]的基礎(chǔ)上提出了一種簡單通用的元學(xué)習(xí)器架構(gòu)SNAIL。該架構(gòu)結(jié)合了時(shí)序卷積網(wǎng)絡(luò)(Temporal Convolutional Network,TCN)和注意力機(jī)制,前者通過在時(shí)間維度上膨脹的一維卷積生成時(shí)序數(shù)據(jù),使得模型可以從過去的經(jīng)驗(yàn)中收集信息,而后者使用鍵值查詢的方式對(duì)之前的信息進(jìn)行訪問,使模型能在上下文中精確的定位信息。
通過向網(wǎng)絡(luò)中引入外部記憶模塊來保存先前看到的一些有用的信息,采用外部記憶的策略可以很容易地應(yīng)用于小樣本學(xué)習(xí)問題。同時(shí),使用精心設(shè)計(jì)的記憶模塊更新規(guī)則,可以有選擇地保護(hù)模塊中記憶的內(nèi)容。但這種方法的缺點(diǎn)是它會(huì)產(chǎn)生額外的空間和計(jì)算成本,且這種成本會(huì)隨著外部內(nèi)存的大小的增大而增加,因此,目前采用的外部內(nèi)存的大小非常有限。
深度學(xué)習(xí)在大數(shù)據(jù)集任務(wù)上取得的成功依賴于大量的有標(biāo)注數(shù)據(jù)以及多次的迭代更新優(yōu)化其具有的大量參數(shù),這種優(yōu)化在小樣本學(xué)習(xí)情況下會(huì)失效?;谔荻认陆档膬?yōu)化算法在小樣本問題上失效的原因在于小樣本少量參數(shù)的更新迭代無法使網(wǎng)絡(luò)學(xué)習(xí)到一個(gè)泛化能力強(qiáng)的特征表示,從而導(dǎo)致在分類器上分類效果很差。采用參數(shù)優(yōu)化策略的小樣本學(xué)習(xí)方法其核心思想是通過一個(gè)優(yōu)化器(即學(xué)習(xí)算法)的來優(yōu)化針對(duì)特定任務(wù)的基礎(chǔ)學(xué)習(xí)器(即模型)。如圖8所示,黑色實(shí)線部分表示正常的基于梯度下降的學(xué)習(xí),這通常需要成百上千次的迭代才能得到最終模型。而參數(shù)優(yōu)化的策略可以是為基礎(chǔ)學(xué)習(xí)器元學(xué)習(xí)一個(gè)好的初始化參數(shù)θ 和w,使得模型能在少量樣本的支持下,通過幾次迭代就能快速適應(yīng)新任務(wù)(如圖中藍(lán)色虛線流程)。也可以是為優(yōu)化器學(xué)習(xí)一個(gè)好的參數(shù)θo,即優(yōu)化學(xué)習(xí)算法,使得模型的參數(shù)更新規(guī)則更適合當(dāng)前任務(wù),以加速網(wǎng)絡(luò)的學(xué)習(xí)(如圖中紅色虛線流程)。
通常情況下,對(duì)于許多不同的學(xué)習(xí)任務(wù),它們之間可能存在一些共同的特征,如果能夠獲取這些共同的特征,再進(jìn)一步針對(duì)特定任務(wù)做出調(diào)整,那么模型應(yīng)該可以很快的適應(yīng)新任務(wù)?;谶@一思想,MAML[52]通過跨任務(wù)訓(xùn)練策略為基礎(chǔ)學(xué)習(xí)器尋找一個(gè)良好的初始化參數(shù)θ,使得具有此初始化的基礎(chǔ)學(xué)習(xí)器能夠僅使用幾個(gè)支持樣本快速地適應(yīng)新的任務(wù)。具體而言,整個(gè)學(xué)習(xí)過程包含兩步,首先,從基礎(chǔ)類別數(shù)據(jù)集Dbase中采樣得到多個(gè)任務(wù)Ti,然后在多個(gè)任務(wù)的訓(xùn)練集上訓(xùn)練網(wǎng)絡(luò)得到其參數(shù)θ,使其具備提取共有特征的能力,而不考慮特定的任務(wù)。其次,在各個(gè)任務(wù)的測試集上計(jì)算損失并使網(wǎng)絡(luò)在測試集上的損失之和最小,此時(shí)得到的參數(shù)θ"對(duì)新任務(wù)具備高度敏感性,將其作為模型的初始化,能使得模型在小樣本學(xué)習(xí)任務(wù)中快速適應(yīng)。在MAML的基礎(chǔ)上,Li等人[53]提出了一種新型元學(xué)習(xí)優(yōu)化器(Meta-SGD)用于小樣本學(xué)習(xí)。與MAML相比,Meta-SGD除了訓(xùn)練一個(gè)好的初始化參數(shù)θ 外,還訓(xùn)練了參數(shù)的更新方向,以及學(xué)習(xí)速率α。MT-net[54]在MAML的基礎(chǔ)上引入了一個(gè)任務(wù)相關(guān)變換矩陣和掩碼矩陣得到掩碼變換網(wǎng)絡(luò),使得每個(gè)任務(wù)的參數(shù)θ 能夠在任務(wù)對(duì)應(yīng)的子空間中進(jìn)行學(xué)習(xí),且參數(shù)θ 更新過程會(huì)根據(jù)任務(wù)需求來設(shè)計(jì)。Rusu等人[55]基于MAML方法提出了一種的元學(xué)習(xí)算法(LEO),區(qū)別于其他方法在網(wǎng)絡(luò)高維參數(shù)上執(zhí)行MAML 的算法,LEO 的特點(diǎn)是直接在低維的表示空間上執(zhí)行MAML的算法。
圖8 采用參數(shù)優(yōu)化策略的小樣本學(xué)習(xí)方法基本結(jié)構(gòu)
受到MAML 的啟發(fā),Jamal 等人[56]提出了一種與任務(wù)無關(guān)的元學(xué)習(xí)優(yōu)化算法(TAML),提出了TAML算法的兩種形式:基于熵減最大化的TAML和基于最小化不平等性的TAML。基于熵減最大化的TAML 方法針對(duì)具有離散輸出的分類任務(wù),通過最大化初始模型與訓(xùn)練后模型預(yù)測的熵之差來實(shí)現(xiàn)對(duì)任務(wù)的無偏性。這是由于初始模型熵越大則預(yù)測結(jié)果隨機(jī)性越高,使得學(xué)習(xí)到的初始模型參數(shù)θ對(duì)于各個(gè)類別沒有任何偏好,同時(shí)最小化訓(xùn)練后模型的熵使得模型對(duì)于具有更高置信度的標(biāo)簽更有確定性。而基于最小化不平等性的TAML方法針對(duì)一些連續(xù)性輸出的任務(wù)需求,通過最小化初始模型在不同任務(wù)上損失的不平等性,使元學(xué)習(xí)器學(xué)習(xí)到一個(gè)無偏的初始模型參數(shù)θ。這一思想來自于經(jīng)濟(jì)學(xué)上的不平等性概念,即把模型在每個(gè)任務(wù)上的損失看做這個(gè)在任務(wù)上的收入,為了保證模型對(duì)于每個(gè)任務(wù)都是無偏的,那就需要減少每個(gè)任務(wù)收入之間的不平等性。Elsken等人[57]將神經(jīng)架構(gòu)搜索(Neural Architecture Search,NAS)引入到小樣本學(xué)習(xí)算法中,提出了一種基于參數(shù)優(yōu)化的小樣本學(xué)習(xí)算法(Meta-NAS)。將經(jīng)典的NAS算法DARTS和小樣本學(xué)習(xí)算法進(jìn)行了結(jié)合,在MAML 或Reptile算法的基礎(chǔ)上增加了對(duì)于網(wǎng)絡(luò)結(jié)構(gòu)權(quán)重參數(shù)αoi,j的學(xué)習(xí),在任務(wù)學(xué)習(xí)階段和元學(xué)習(xí)階段同時(shí)更新的網(wǎng)絡(luò)的參數(shù)θ和結(jié)構(gòu)參數(shù)α。Guo等人[58]提出了一種基于權(quán)重生成的小樣本學(xué)習(xí)算法(AWGIM)。與其他相關(guān)算法只使用支持集數(shù)據(jù)生成固定的分類器權(quán)重w不同,AWGIM方法引入了互信息(Mutual Information,MI)和注意力機(jī)制?;バ畔⒈硎井?dāng)給定的兩個(gè)隨機(jī)變量其中一個(gè)變量已知時(shí),另一個(gè)變量不確定性的下降程度。因此,采用最大化權(quán)重與查詢集圖像和支持集圖像之間的互信息作為目標(biāo)函數(shù),使生成的分類器權(quán)重w與查詢集圖像和支持集圖像相關(guān)。具體的,從基礎(chǔ)類別數(shù)據(jù)集Dbase中隨即采樣N-wayK-shot 的小樣本學(xué)習(xí)任務(wù)T,T中包含支持集S與查詢集Q,其中xi為Q中的無標(biāo)簽樣本。首先,任務(wù)T中的樣本經(jīng)過CNN提取特征后,通過兩條路徑(上下文路徑和注意力路徑)對(duì)任務(wù)的上下文以及單個(gè)的查詢樣本進(jìn)行編碼。上下文路徑采用多頭自我注意網(wǎng)絡(luò)學(xué)習(xí)支持集圖像的特征,其輸出Xcp包含了關(guān)于任務(wù)上下文的豐富信息,用于后面的權(quán)重生成。而注意力路徑采用新的多頭自我注意網(wǎng)絡(luò),對(duì)支持集編碼任務(wù)的全局信息,然后再利用一個(gè)交叉注意力網(wǎng)絡(luò)對(duì)查詢集和支持集樣本共同編碼,其輸出用Xap表示。其目的是讓單個(gè)查詢樣本能夠注意任務(wù)的上下文,使得生成的分類權(quán)重不但能夠適應(yīng)不同的查詢樣例,而且知道任務(wù)上下文信息。接著將上下文路徑和注意力路徑的輸出進(jìn)行拼接得到Xcp⊕ap,并作為權(quán)重生成器g的輸入,這時(shí)使用Xcp⊕ap生成的分類權(quán)重w是特定于查詢樣本xi的。
由于之前的優(yōu)化算法是針對(duì)大數(shù)據(jù)集的,在面對(duì)小樣本學(xué)習(xí)問題時(shí)優(yōu)化效果可能不好,為了解決這個(gè)問題,Andrychowicz 等人[14]提出了通過梯度下降來學(xué)習(xí)如何通過梯度下降學(xué)習(xí)(learning to learn by gradient descent by gradient descent)。使用LSTM 優(yōu)化器來代替?zhèn)鹘y(tǒng)的梯度下降優(yōu)化算法,使用梯度下降來優(yōu)化優(yōu)化器參數(shù)θo。而在訓(xùn)練任務(wù)上學(xué)習(xí)得到的優(yōu)化器性能優(yōu)于通用人工設(shè)計(jì)的方法,并且可推廣到相似結(jié)構(gòu)的新任務(wù)中。Ravi 等人[59]提出使用一個(gè)基于LSTM 的元學(xué)習(xí)器來學(xué)習(xí)一個(gè)優(yōu)化算法,即優(yōu)化器參數(shù)θo。該優(yōu)化算法可用于訓(xùn)練在小樣本情況下的基礎(chǔ)學(xué)習(xí)者的網(wǎng)絡(luò)參數(shù)θ和分類器權(quán)重w,用以解決小樣本圖像分類問題。由于LSTM 單元狀態(tài)的更新規(guī)則與元學(xué)習(xí)器參數(shù)更新規(guī)則很相似,因此,訓(xùn)練一個(gè)基于LSTM 的元學(xué)習(xí)器去學(xué)習(xí)一個(gè)新的參數(shù)更新規(guī)則,作為分類器網(wǎng)絡(luò)的優(yōu)化算法,同時(shí)學(xué)習(xí)到的一個(gè)好的初始值能確定分類器網(wǎng)絡(luò)一個(gè)好的初始化參數(shù),幫助優(yōu)化快速進(jìn)行,使得分類器在小樣本數(shù)據(jù)上也能取得好的分類效果。
通過優(yōu)化模型或優(yōu)化器的初始參數(shù)可以減少模型在學(xué)習(xí)過程的中的參數(shù)迭代次數(shù),使得模型能夠快速的適應(yīng)新任務(wù),特別是小樣本任務(wù)。使用一個(gè)好的參數(shù)θ"或w"作為初始化,可以有效地降低計(jì)算成本。而學(xué)習(xí)一個(gè)好的優(yōu)化器參數(shù)θo,可以使得模型現(xiàn)有參數(shù)θ能更快的朝著目標(biāo)方向收斂。這類策略的重點(diǎn)是如何通過學(xué)習(xí)得到一個(gè)好的模型初始化參數(shù)θ"和w"或者學(xué)習(xí)一個(gè)好的優(yōu)化器參數(shù)θo,來更好地細(xì)化現(xiàn)有的參數(shù)θ與w。然而,對(duì)于前一種方法,由于θ"和w"是從不同于當(dāng)前任務(wù)的類似任務(wù)中學(xué)習(xí)到的,這種策略可能會(huì)犧牲識(shí)別精度來提高學(xué)習(xí)速度。
在本章中,將介紹在小樣本圖像分類與識(shí)別任務(wù)中常用的數(shù)據(jù)集,為了進(jìn)行比較,通過在這些數(shù)據(jù)集上實(shí)驗(yàn)的分類與識(shí)別精度來說明各種學(xué)習(xí)策略的性能。
在小樣本圖像分類與識(shí)別任務(wù)中,使用最廣泛的標(biāo)準(zhǔn)數(shù)據(jù)集是MiniImageNet[38]和Omniglot。除此之外,常用數(shù)據(jù)集還包括CIFAR-100、CUB 等。這里主要介紹使用最廣泛的前兩個(gè)數(shù)據(jù)集,并在下一節(jié)中給出著名的在DNN下的小樣本學(xué)習(xí)方法在這兩個(gè)數(shù)據(jù)集上的識(shí)別性能。
MiniImageNet:是 由Google DeepMind 團(tuán) 隊(duì)Oriol Vinyals 等人在ImageNet 的基礎(chǔ)上所提取出的數(shù)據(jù)集。該數(shù)據(jù)集共包含100個(gè)類類別共記60 000張彩色圖片,其中每類有600 個(gè)樣本,每張圖片的規(guī)格為84×84。DeepMind團(tuán)隊(duì)首次將MiniImageNet數(shù)據(jù)集用于小樣本學(xué)習(xí)研究,從此MiniImageNet成為了元學(xué)習(xí)和小樣本領(lǐng)域的基準(zhǔn)數(shù)據(jù)集。在使用時(shí),該數(shù)據(jù)集的訓(xùn)練集和測試集的類別劃分一般為80∶20。相比于Omniglot 數(shù)據(jù)集,MiniImageNet 數(shù)據(jù)集更加復(fù)雜,適合進(jìn)行原型設(shè)計(jì)和實(shí)驗(yàn)研究,但由于類別較少,一般只做1-way和5-way的實(shí)驗(yàn)。
Omniglot:包含32 460 個(gè)手寫字符的圖像。它由1 623個(gè)不同的字符組成,共有50個(gè)字母,從拉丁語、韓語等國際語言到不太為人所知的當(dāng)?shù)胤窖?。每一個(gè)字符都是由20個(gè)不同的人通過亞馬遜的Mechanical Turk人手工繪制的,每個(gè)字符產(chǎn)生了20 幅圖像。相當(dāng)于1 623個(gè)類,每類20 個(gè)樣本。在實(shí)驗(yàn)時(shí),通常采用文獻(xiàn)[38]中的數(shù)據(jù)設(shè)置與預(yù)處理,即取1 200個(gè)字符進(jìn)行訓(xùn)練,其余423個(gè)字符進(jìn)行測試。此外,將每個(gè)圖像的大小調(diào)整為28×28像素,并以90度的倍數(shù)旋轉(zhuǎn)作為數(shù)據(jù)增強(qiáng)。
MiniImageNet 和Omniglot 這兩個(gè)數(shù)據(jù)集是用來評(píng)估最近的小樣本圖像分類與識(shí)別方法的最流行的基準(zhǔn),在表2中列出了部分基于DNN的小樣本學(xué)習(xí)方法在這兩個(gè)數(shù)據(jù)集上的表現(xiàn)。對(duì)于每一種方法,都指定了采用的解決策略,使用的DNN 結(jié)構(gòu)以及在數(shù)據(jù)集上的識(shí)別結(jié)果,所有的識(shí)別結(jié)果取自原文數(shù)據(jù)。
表2 中的結(jié)果表明,這些方法在Omniglot上1-shot/5-shot識(shí)別精度幾乎都達(dá)到了97%/98%以上,可提升的空間較小。然而同樣的方法在MiniImageNet 上的精度僅為50%/70%左右,這是由于MiniImageNet 上的圖像數(shù)據(jù)具有更復(fù)雜的類別、背景、特征以及形態(tài)變化。這也表明,現(xiàn)有的在DNN下的小樣本學(xué)習(xí)方法在MiniImageNet上仍然有很大的提升空間。同時(shí)在MiniImageNet數(shù)據(jù)集上,在采用度量學(xué)習(xí)和參數(shù)優(yōu)化策略的方法中,識(shí)別效果最好的模型[47,55]比效果最差的模型[38,59]在識(shí)別精度上的差距,在1-shot/5-shot情況下分別達(dá)到了18%/20%左右,這表明這兩種策略的方法還有很大的提升空間。例如,在采用度量學(xué)習(xí)策略的方法中,相較于采用固定度量的方法[35-36,38],采用可學(xué)習(xí)度量的方法改進(jìn)效果更好,例如DCN[43]和CTM[47]相較于關(guān)系網(wǎng)絡(luò)[42]提高了超過了10%的精度。這表明使用深度神經(jīng)網(wǎng)絡(luò)來進(jìn)行成對(duì)樣本相似性的計(jì)算是非常有效的,這一模式也將成為今后度量學(xué)習(xí)方法的主流。
深度學(xué)習(xí)在大數(shù)據(jù)時(shí)代得到了的迅速發(fā)展,在大量數(shù)據(jù)的支持下,深度學(xué)習(xí)在許多任務(wù)上取得了成功。但由于深度學(xué)習(xí)模型包含大量的參數(shù),需要大量有標(biāo)簽的數(shù)據(jù)才能很好的訓(xùn)練,這限制了其在許多實(shí)際場景中的應(yīng)用。因此利用少量樣本就能訓(xùn)練一個(gè)好模型的小樣本學(xué)習(xí)成為了深度學(xué)習(xí)的一個(gè)重要課題。
表2 DNN下的小樣本學(xué)習(xí)方法在相關(guān)數(shù)據(jù)集上的識(shí)別表現(xiàn)
總的來說,在深度神經(jīng)網(wǎng)絡(luò)的支持下,小樣本學(xué)習(xí)問題有了一定的發(fā)展。但目前對(duì)于深度神經(jīng)網(wǎng)絡(luò)還缺乏系統(tǒng)完整的理論,對(duì)于其提取的深層特征的含義仍然難以解釋。只有一些可視化技術(shù)能夠觀察中間特征層的功能和分類器的操作。另一方面,雖然最近基于DNN的小樣本學(xué)習(xí)工作在圖像分類與識(shí)別方面取得了突破的進(jìn)展,但仍然存在一定的局限性,采用數(shù)據(jù)增強(qiáng)策略的方法,其優(yōu)點(diǎn)是步驟簡單且能快速獲得大量新數(shù)據(jù),但這種方法不適合一些特定的任務(wù),不能從根本上解決小樣本問題,同時(shí)這種方法可能會(huì)引入無用特征,對(duì)分類效果產(chǎn)生負(fù)面影響。采用度量學(xué)習(xí)策略的方法通過學(xué)習(xí)一個(gè)嵌入空間并借助一個(gè)度量采用類似最近鄰的無參分類法,省略了分類器的參數(shù)訓(xùn)練,便于計(jì)算和公式化。但學(xué)習(xí)的嵌入空間容易過度擬合,需要額外的數(shù)據(jù)支持。采用外部記憶策略的方法能夠利用外部的存儲(chǔ)空間輔助網(wǎng)絡(luò)存儲(chǔ)學(xué)習(xí)的舊知識(shí),幫助網(wǎng)絡(luò)學(xué)習(xí)新任務(wù),但通常使用的外部內(nèi)存很小,需要設(shè)計(jì)巧妙的內(nèi)存替換規(guī)則,這會(huì)大大增加額外的計(jì)算成本。采用參數(shù)優(yōu)化策略的方法可以為模型學(xué)習(xí)一個(gè)好的初始化參數(shù)或好的參數(shù)更新策略加速學(xué)習(xí),但這種策略可能會(huì)犧牲識(shí)別精度來提高學(xué)習(xí)速度,需要改進(jìn)和發(fā)展的方面還有很多。此外,在小樣本學(xué)習(xí)的模型中使用元學(xué)習(xí)的訓(xùn)練策略,可以從大量相關(guān)任務(wù)中學(xué)習(xí)可遷移的知識(shí)并將其應(yīng)用在小樣本新任務(wù)中,加速網(wǎng)絡(luò)的學(xué)習(xí),但這種策略對(duì)與大量相關(guān)任務(wù)關(guān)系不緊密的新任務(wù)效果不好,同時(shí)元學(xué)習(xí)的一個(gè)缺點(diǎn)是會(huì)選擇性的遺忘學(xué)習(xí)的舊任務(wù)知識(shí)。
針對(duì)現(xiàn)有技術(shù)存在的一些不足,就其在未來的發(fā)展方向提出一些展望:對(duì)于采用數(shù)據(jù)增強(qiáng)的策略,由于生成的數(shù)據(jù)與真實(shí)樣本相比,不具有很強(qiáng)的可解釋性,其特征表現(xiàn)能力遠(yuǎn)遠(yuǎn)不足。同時(shí)生成的數(shù)據(jù)可以能引入無用的特征,對(duì)分類效果產(chǎn)生負(fù)面影響。因此在今后的工作中,數(shù)據(jù)增強(qiáng)更多的應(yīng)用是作為一個(gè)數(shù)據(jù)的預(yù)處理手段,再結(jié)合其他的學(xué)習(xí)方法,如度量學(xué)習(xí)[40],可以得到更好的結(jié)果;對(duì)于采用度量學(xué)習(xí)的策略,由于采用固定距離度量的度量學(xué)習(xí)的方法目前已經(jīng)比較成熟,可改進(jìn)的空間非常有限,而利用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的度量能夠更加適應(yīng)特定任務(wù)。因此,基于深度神經(jīng)網(wǎng)絡(luò)來估計(jì)成對(duì)樣本之間的相似性將成為未來主要的研究方向;對(duì)于采用外部記憶的策略,內(nèi)存中鍵值對(duì)的質(zhì)量十分重要,同時(shí)由于內(nèi)存大小有限,在更新內(nèi)存信息時(shí),如何保留內(nèi)存中最有用的信息將成為此類方法的關(guān)鍵,此外,設(shè)計(jì)不依賴于具體模型的外部記憶模塊結(jié)合其他策略進(jìn)行學(xué)習(xí)也是未來研究的一個(gè)方向,在此方面已有了一些工作[40],并取得了不錯(cuò)的效果;對(duì)于采用參數(shù)優(yōu)化的策略,通常依賴于元學(xué)習(xí)的訓(xùn)練策略,通過從一組相關(guān)任務(wù)中學(xué)習(xí)的元知識(shí)來參數(shù)化初始模型或指導(dǎo)學(xué)習(xí)算法更快的更新參數(shù),達(dá)到快速學(xué)習(xí)的目的,即元學(xué)習(xí)器充當(dāng)優(yōu)化器。因此,更好地設(shè)計(jì)元學(xué)習(xí)器使其學(xué)習(xí)到更多或更有效的元知識(shí),是今后一個(gè)重要的研究方向;同時(shí),現(xiàn)有的工作大多針對(duì)計(jì)算機(jī)視覺中的小樣本問題,如字符識(shí)別和圖像分類,并且在相關(guān)數(shù)據(jù)集上取得了較好的表現(xiàn)。然而小樣本學(xué)習(xí)問題,在如文本識(shí)別、自然語言處理、語音識(shí)別等許多領(lǐng)域上也值得探索和研究。