鄭蕊蕊,辛守宇,周 瑜,劉文鵬,黨佳偉,賀建軍
(大連民族大學(xué) 信息與通信工程學(xué)院 遼寧 大連 116600)
深度學(xué)習(xí)模型在圖像識(shí)別和檢測(cè)任務(wù)中取得了優(yōu)異的成果[1-3]。然而,這些有監(jiān)督的神經(jīng)網(wǎng)絡(luò)模型需要大量有標(biāo)簽的樣本來訓(xùn)練參數(shù),嚴(yán)重限制了這些模型對(duì)一些只有少量有標(biāo)簽樣本的數(shù)據(jù)集的適用性。在滿文識(shí)別研究中,傳統(tǒng)的深度學(xué)習(xí)方法受制于滿文數(shù)據(jù)集中有標(biāo)簽樣本較少的問題,因此無法充分發(fā)揮強(qiáng)大的識(shí)別能力。目前有很多專家學(xué)者開始關(guān)注小樣本學(xué)習(xí)問題。小樣本學(xué)習(xí)問題是指在對(duì)測(cè)試實(shí)例進(jìn)行測(cè)試之前,只能觀察每個(gè)可能類的幾個(gè)示例,以此為限制條件對(duì)測(cè)試樣本進(jìn)行分類,這種小樣本學(xué)習(xí)問題稱為K-shot學(xué)習(xí)。K-shot學(xué)習(xí)方法適用于小樣本學(xué)習(xí)場(chǎng)景,因此在醫(yī)療診斷[4]、文本分類[5]、目標(biāo)檢測(cè)[6]、目標(biāo)跟蹤[7]等領(lǐng)域得到了廣泛的應(yīng)用。滿文數(shù)據(jù)集類別很多,但每個(gè)類別中有標(biāo)簽的樣本較少,因此滿文識(shí)別可以視為一個(gè)典型的K-shot學(xué)習(xí)問題。但目前的K-shot學(xué)習(xí)研究大多只關(guān)注較小類別數(shù)量的分類問題,大類別場(chǎng)景下的K-shot學(xué)習(xí)算法沒有得到廣泛地關(guān)注,而在滿文識(shí)別研究中算法需要面對(duì)極大的類別數(shù),因此如何在大類別場(chǎng)景下利用K-shot學(xué)習(xí)方法獲得較好的識(shí)別結(jié)果成為了一個(gè)挑戰(zhàn)。
本文利用N元ECOC技術(shù)構(gòu)建了一種大類別K-shot滿文識(shí)別方法。本文的主要貢獻(xiàn)包括3個(gè)方面:
1)提出了一種在大類別場(chǎng)景下適用的K-shot學(xué)習(xí)算法,有效地提高了K-shot學(xué)習(xí)算法在大類別場(chǎng)景下的識(shí)別精度;
2)提出基于N元ECOC的K-shot學(xué)習(xí)算法,利用N元ECOC編碼矩陣將原本的大類別分類問題分解為一系列較小類別的分類問題進(jìn)行處理,有效地減小了支持集信息的復(fù)雜度;
3)在滿文識(shí)別問題上的實(shí)驗(yàn)結(jié)果表明,提出的K-shot學(xué)習(xí)算法可以在滿文的大類別分類場(chǎng)景下達(dá)到較高的識(shí)別準(zhǔn)確率。
K-shot學(xué)習(xí)用于解決有標(biāo)簽樣本數(shù)量不足的問題,通??煞譃?類:基于微調(diào)的方法;基于數(shù)據(jù)增強(qiáng)的方法;基于元學(xué)習(xí)的方法和基于度量學(xué)習(xí)的方法。
基于微調(diào)的方法?;谖⒄{(diào)(finetune)的方法[8]一般是在大規(guī)模數(shù)據(jù)上預(yù)訓(xùn)練模型,在目標(biāo)小樣本數(shù)據(jù)集上對(duì)神經(jīng)網(wǎng)絡(luò)模型的全連接層或頂端幾層進(jìn)行參數(shù)微調(diào),得到微調(diào)后的模型即可進(jìn)行K-shot識(shí)別任務(wù)。文獻(xiàn)[9]提出了一種微調(diào)方法,主要包含以下幾個(gè)機(jī)制:1)在小樣本類別上再訓(xùn)練的過程使用更低的學(xué)習(xí)率;2)在微調(diào)階段使用自適應(yīng)的梯度優(yōu)化器;3)當(dāng)源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集之間存在較大差異時(shí),可以通過調(diào)整整個(gè)網(wǎng)絡(luò)來實(shí)現(xiàn)?;谖⒄{(diào)的方法雖然可以取得較好的效果,但是當(dāng)目標(biāo)數(shù)據(jù)集和源數(shù)據(jù)集分布并不類似時(shí),模型在目標(biāo)數(shù)據(jù)集上容易產(chǎn)生過擬合。
基于數(shù)據(jù)增強(qiáng)的方法?;跀?shù)據(jù)增強(qiáng)(data augmentation)的方法是借助輔助數(shù)據(jù)或輔助信息,對(duì)原有的小樣本數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充或特征增強(qiáng),利用擴(kuò)充后的數(shù)據(jù)進(jìn)行K-shot學(xué)習(xí),主要可以分為基于無標(biāo)簽數(shù)據(jù)的方法和基于數(shù)據(jù)合成的方法?;跓o標(biāo)簽數(shù)據(jù)的方法是指利用無標(biāo)簽數(shù)據(jù)對(duì)小樣本數(shù)據(jù)集進(jìn)行擴(kuò)充,常見的方法有半監(jiān)督學(xué)習(xí)[10]和直推式學(xué)習(xí)[11]等。文獻(xiàn)[12]提出使用MAML[13]模型來進(jìn)行半監(jiān)督學(xué)習(xí),利用無標(biāo)簽數(shù)據(jù)調(diào)整嵌入函數(shù)的參數(shù),用帶標(biāo)簽數(shù)據(jù)調(diào)整分類器的參數(shù)。文獻(xiàn)[14]提出了轉(zhuǎn)導(dǎo)傳播網(wǎng)絡(luò),基于直推式學(xué)習(xí)的思想來解決K-shot學(xué)習(xí)問題,取得了很好的效果?;跀?shù)據(jù)合成的方法是指為小樣本類別合成新的帶標(biāo)簽數(shù)據(jù)來擴(kuò)充訓(xùn)練數(shù)據(jù),文獻(xiàn)[15]提出將元學(xué)習(xí)與數(shù)據(jù)生成相結(jié)合,通過數(shù)據(jù)生成模型生成虛擬數(shù)據(jù)來擴(kuò)充樣本的多樣性,并結(jié)合元學(xué)習(xí)方法,用端到端的方式共同訓(xùn)練生成模型和分類算法。基于數(shù)據(jù)增強(qiáng)的方法目前應(yīng)用雖然較為廣泛,也取得了很好的研究成果,但是生成的數(shù)據(jù)很難捕捉到原始數(shù)據(jù)復(fù)雜的數(shù)據(jù)分布,會(huì)對(duì)模型性能產(chǎn)生一定影響。
基于元學(xué)習(xí)的方法。在基于元學(xué)習(xí)的方法中,算法在元數(shù)據(jù)中進(jìn)行學(xué)習(xí),在處理新的學(xué)習(xí)任務(wù)時(shí)可以利用從元數(shù)據(jù)中得到的經(jīng)驗(yàn)快速地對(duì)新的數(shù)據(jù)進(jìn)行處理。文獻(xiàn)[13]提出的MAML算法是一種與模型無關(guān)的元學(xué)習(xí)算法,該算法可以與使用梯度下降法優(yōu)化的任何模型兼容,并且適用于不同的學(xué)習(xí)問題,包括分類、回歸和強(qiáng)化學(xué)習(xí)等。Mishra等[16]提出了一類簡(jiǎn)單而通用的元學(xué)習(xí)架構(gòu),使用了時(shí)間卷積和軟注意力的新穎組合。文獻(xiàn)[17]提出了Meta network,它的快速泛化能力源自其“快速權(quán)重”的機(jī)制,在訓(xùn)練過程中產(chǎn)生的梯度被用來生成快速權(quán)重。此外,研究人員認(rèn)為普通的梯度下降方法難以在小樣本場(chǎng)景下進(jìn)行擬合,因此可以通過調(diào)整優(yōu)化方法來完成小樣本分類任務(wù)。文獻(xiàn)[18]提出的K-shot學(xué)習(xí)模型包含一個(gè)元學(xué)習(xí)器和一個(gè)基礎(chǔ)學(xué)習(xí)器,其中元學(xué)習(xí)器用于學(xué)習(xí)元任務(wù)之間的泛化信息并使用記憶機(jī)制保存這種信息,基礎(chǔ)學(xué)習(xí)器用于快速適應(yīng)新的任務(wù)并和元學(xué)習(xí)器交互產(chǎn)生預(yù)測(cè)輸出。以上基于元學(xué)習(xí)的方法都取得了很好的識(shí)別效果,為K-shot識(shí)別問題帶來了很好的解決思路。
基于度量學(xué)習(xí)的方法。該方法是對(duì)樣本間距離分布進(jìn)行建模,使得屬于同類的樣本靠近,異類的樣本遠(yuǎn)離?;诙攘繉W(xué)習(xí)的K-shot方法通過度量測(cè)試集中樣本和支持集中樣本的距離,借助K近鄰(K-nearest neighbor,KNN)[19]的思想完成分類,能夠取得很好的分類效果。文獻(xiàn)[20]提出的原型網(wǎng)絡(luò)(prototypical networks)學(xué)習(xí)一個(gè)度量空間,在該空間中每個(gè)類別都存在一個(gè)“原型”,用來表達(dá)該類別的特征,以這種形式把分類問題轉(zhuǎn)化為度量空間中的最近鄰問題。文獻(xiàn)[21]提出了一種關(guān)系網(wǎng)絡(luò)(relation networks),該網(wǎng)絡(luò)不再使用單一且固定的距離度量方式,而是訓(xùn)練一個(gè)網(wǎng)絡(luò)來學(xué)習(xí)距離的度量。文獻(xiàn)[22]提出了匹配網(wǎng)絡(luò)(matching networks),并提出了目前常用的小樣本學(xué)習(xí)數(shù)據(jù)組織方式:數(shù)據(jù)都以“片段(episode)”的形式進(jìn)行組織,N-way 1-shot的任務(wù)片段是指由N種類別的單個(gè)樣本組成支持集,并且由來自這N種類別的其他樣本作為測(cè)試樣本的一次訓(xùn)練或測(cè)試任務(wù)。以上基于度量學(xué)習(xí)的方法被廣泛地應(yīng)用于各種小樣本場(chǎng)景下的識(shí)別問題中,并且也都取得了很好的效果。
盡管上述研究在小類別場(chǎng)景下取得了較好的效果,但沒有考慮實(shí)際應(yīng)用中常見的分類類別較大的情況。隨著分類類別的增大,K-shot學(xué)習(xí)中的支持集類別信息逐步復(fù)雜化,過于復(fù)雜的支持集會(huì)導(dǎo)致K-shot學(xué)習(xí)算法的識(shí)別能力大幅下降。因此本文主要研究適用于大類別分類場(chǎng)景的K-shot學(xué)習(xí)算法,提出一種基于N元ECOC[23]的K-shot學(xué)習(xí)算法,其基本思想是利用N元ECOC技術(shù)對(duì)原本的大類別分類問題進(jìn)行N元分解,將其分解為一系列小類別的分類問題,然后利用K-shot學(xué)習(xí)算法對(duì)這些小類別問題進(jìn)行分類,再將分類結(jié)果進(jìn)行合并和糾錯(cuò),最終獲得大類別分類結(jié)果。本文提出的方法通過N元ECOC分解降低了支持集信息的復(fù)雜度,所以取得了較好的分類結(jié)果。
為解決大類別場(chǎng)景下的滿文識(shí)別問題,我們提出了一種適用于大類別場(chǎng)景的K-shot學(xué)習(xí)模型,該模型的核心思想是利用N元ECOC技術(shù)將原始大類別分類問題分解為一系列更為簡(jiǎn)單的小類別分類子問題,然后交由基于K-shot學(xué)習(xí)模型構(gòu)建的基分類器進(jìn)行處理。與直接采用K-shot學(xué)習(xí)算法對(duì)大類別問題進(jìn)行分類相比,采用N元分解策略不僅降低了支持集復(fù)雜度和基分類器的壓力,而且可以利用編碼矩陣進(jìn)行糾錯(cuò)輸出,因此本文提出的K-shot學(xué)習(xí)模型在大類別場(chǎng)景下的滿文識(shí)別研究中獲得了更好的識(shí)別結(jié)果,提升了識(shí)別準(zhǔn)確率。
如表1所示,以具有5個(gè)類別的4元ECOC編碼為例,介紹N元ECOC編碼矩陣(coding matrix)的構(gòu)造過程。編碼矩陣的每一個(gè)行編碼都代表一個(gè)具體的類別,與傳統(tǒng)的ECOC編碼矩陣只有2元或3元不同,編碼矩陣M由{1,2,…,N}構(gòu)成,其中N>3;編碼矩陣的每列代表一個(gè)分類器,同時(shí)代表要對(duì)原類別進(jìn)行的N元?jiǎng)澐?。?duì)應(yīng)上述編碼,基于N元ECOC的K-shot學(xué)習(xí)模型主要包括4個(gè)步驟。
表1 N元ECOC編碼矩陣MTable 1 N-ary ECOC coding matrix M
1)通過從范圍為{1,2,…,N}的整數(shù)之間進(jìn)行均勻隨機(jī)采樣生成N元ECOC編碼矩陣M,如表1所示。
2)根據(jù)編碼矩陣M中的每一列,將原始的支持集劃分為N組(此處N=4),并構(gòu)建一個(gè)新的K-shot學(xué)習(xí)模型基分類器。
3)給定一個(gè)測(cè)試示例xt,使用全部K-shot學(xué)習(xí)基分類器對(duì)測(cè)試樣本進(jìn)行測(cè)試并輸出對(duì)應(yīng)類別,最后組成預(yù)測(cè)編碼。例如f(xt)=[2,2,2,1,1,3]。
4)最后根據(jù)編碼矩陣M的行編碼(類別編碼)和預(yù)測(cè)編碼之間距離的最小值確定樣本xt的最終類別。即最終預(yù)測(cè)標(biāo)簽yt是樣本xt的預(yù)測(cè)編碼最接近的類別,如yt=arg minid(f(xt),Ci)=2。其中d表示距離度量。
基于N元ECOC的K-shot學(xué)習(xí)模型的識(shí)別過程分為編碼和解碼兩個(gè)階段。在編碼階段,模型會(huì)將當(dāng)前支持集依據(jù)編碼矩陣M的列編碼重新進(jìn)行劃分,并根據(jù)劃分后的支持集生成多個(gè)K-shot學(xué)習(xí)基分類器,如圖1所示。圖1中,N元ECOC編碼矩陣的列數(shù)為6,所以模型會(huì)將原支持集重新劃分為6個(gè)子支持集,并根據(jù)子支持集信息生成f1~f6共6個(gè)K-shot學(xué)習(xí)基分類器。在解碼階段,輸入一個(gè)測(cè)試樣本,模型將測(cè)試樣本分別輸入到基分類器中進(jìn)行分類。f1~f6基分類器分別輸出測(cè)試樣本對(duì)應(yīng)的分類類別,并組成預(yù)測(cè)編碼。最后,模型將計(jì)算當(dāng)前測(cè)試樣本的預(yù)測(cè)編碼與編碼矩陣M中的行編碼(類別編碼)之間的Hamming距離,并將與預(yù)測(cè)編碼距離最近的一個(gè)類別編碼作為測(cè)試樣本的最終類別輸出。
圖1 基于N元ECOC的K-shot學(xué)習(xí)模型框架Figure 1 Model framework of K-shot learning based on N-ary ECOC
上述過程中,N元ECOC主要起到兩個(gè)作用:1)N元ECOC編碼將原本大類別的支持集劃分成了較小的類別集合,而后再交給K-shot學(xué)習(xí)基分類器進(jìn)行分類,這種分類方式減小了分類器的分類壓力,能夠獲得更好的識(shí)別結(jié)果;2)在模型的解碼過程中將與預(yù)測(cè)編碼距離最近的類別編碼作為最終分類結(jié)果,可以實(shí)現(xiàn)對(duì)識(shí)別錯(cuò)誤的糾錯(cuò),從而進(jìn)一步提升模型識(shí)別性能。綜合以上兩點(diǎn),本文提出的K-shot學(xué)習(xí)模型在大類別識(shí)別問題上可以獲得更好的識(shí)別效果。
傳統(tǒng)的N元ECOC編碼階段,會(huì)生成一個(gè)編碼矩陣來指導(dǎo)基分類器的訓(xùn)練和預(yù)測(cè)。編碼矩陣由{1,2,…,N}組成,矩陣的每一行代表一個(gè)類別,每一列代表一個(gè)基分類器?;诸惼髦回?fù)責(zé)訓(xùn)練對(duì)應(yīng)列上非0編碼對(duì)應(yīng)類別的數(shù)據(jù),并把所有訓(xùn)練數(shù)據(jù)重新按編碼矩陣列上的編碼進(jìn)行劃分,然后利用分成N類的訓(xùn)練數(shù)據(jù)訓(xùn)練基分類器,用同樣的方法訓(xùn)練其他列對(duì)應(yīng)的分類器。與使用傳統(tǒng)分類器的N元ECOC不同,在本文算法的編碼階段,利用大小為L(zhǎng)×Q的N元ECOC編碼矩陣M=(Mij)L×Q,將原始支持集S變換為L(zhǎng)個(gè)具有N個(gè)類別的支持集{Sl|1≤l≤L},其中:Mij∈{1,2,…,N};L為矩陣M的列數(shù);Q為矩陣M的行數(shù);1≤i≤Q,1≤j≤L。編碼矩陣M的每一列對(duì)應(yīng)一個(gè)具有N個(gè)分類的支持集。利用編碼矩陣M的第l列元素Mil構(gòu)造具有N個(gè)類別的支持集Sl,而后基于支持集Sl生成對(duì)應(yīng)的K-shot學(xué)習(xí)基分類器fl?;诸惼骺梢岳脗鹘y(tǒng)分類方法構(gòu)建,如支持向量機(jī)等。傳統(tǒng)N元ECOC編碼對(duì)訓(xùn)練集進(jìn)行劃分,并用劃分后的訓(xùn)練數(shù)據(jù)訓(xùn)練基分類器。而本文提出的模型中,編碼階段主要是對(duì)K-shot學(xué)習(xí)模型中的支持集進(jìn)行編碼,以此獲得能夠輸出預(yù)測(cè)編碼的K-shot學(xué)習(xí)基分類器。如圖1中利用行數(shù)(類別數(shù))為5、列數(shù)(基分類器數(shù)量)為6的N(N=4)元ECOC編碼矩陣M,將原始支持集S變換為6個(gè)具有4個(gè)類別的基分類器支持集。而后根據(jù)這6個(gè)子支持集生成對(duì)應(yīng)的6個(gè)基分類器,完成模型的編碼過程。
模型的解碼過程在編碼過程之后。利用編碼得到一系列基分類器,模型的解碼過程是用每個(gè)基分類器依次預(yù)測(cè)待測(cè)樣本的類別并得到一個(gè)預(yù)測(cè)編碼,將這個(gè)預(yù)測(cè)編碼與編碼矩陣M的每一個(gè)行向量進(jìn)行比較,模型認(rèn)為編碼矩陣M中與預(yù)測(cè)編碼相似度最高的行向量對(duì)應(yīng)的類別就是待測(cè)樣本的類別。本文使用Hamming距離進(jìn)行相似度的計(jì)算,比較預(yù)測(cè)編碼x與編碼行Mi對(duì)應(yīng)位置上數(shù)值不相等的個(gè)數(shù)即是Hamming距離。
如圖2所示,假設(shè)一個(gè)待測(cè)樣本x的預(yù)測(cè)編碼是“[1,3,4,4,3,2]”,它與向量C1,C2,C3,C4,C5對(duì)應(yīng)行向量的Hamming距離分別是“0,5,5,4,4”。預(yù)測(cè)編碼與C1對(duì)應(yīng)行向量的距離最小,因此可以判定該待測(cè)樣本屬于C1類別。ECOC能夠容忍一定數(shù)量的基分類器錯(cuò)誤,編碼的容錯(cuò)率與基分類器數(shù)量有關(guān),正常情況下,基分類器的數(shù)量越多容錯(cuò)率越強(qiáng)?,F(xiàn)假設(shè)存在某個(gè)類別為C1的樣本點(diǎn),所有的基分類器都預(yù)測(cè)正確的情況下,得到的預(yù)測(cè)編碼為“[1,3,4,4,3,2]”。但如果第3個(gè)分類器f3預(yù)測(cè)成錯(cuò)誤結(jié)果“3”,預(yù)測(cè)編碼變成“[1,3,3,4,3,2]”。解碼該預(yù)測(cè)編碼得到與5個(gè)類別之間的Hamming距離為“1,5,5,4,3”,解碼距離最小的類別仍然是正確類別C1。根據(jù)以上示例可以看出N元ECOC編碼矩陣能夠容忍小部分基分類器發(fā)生錯(cuò)誤。
圖2 模型的解碼過程Figure 2 Model decoding process
模型基分類器網(wǎng)絡(luò)結(jié)構(gòu)的搭建主要參考原型網(wǎng)絡(luò)(prototypical networks)算法。在原型網(wǎng)絡(luò)算法中會(huì)形成一個(gè)度量空間,在該度量空間中,每個(gè)類別都有一個(gè)特征原型,每個(gè)代表樣本的特征點(diǎn)都要圍繞在對(duì)應(yīng)類別的原型周圍形成一個(gè)聚類。為了達(dá)到這一目的,基分類器使用卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)輸入到度量空間中的非線性特征映射,并將支持集中每一類別特征映射的均值作為度量空間中每一類別的原型。然后,只需要對(duì)最近的類別原型進(jìn)行查找,就可以對(duì)測(cè)試樣本執(zhí)行分類。圖3是在K-shot學(xué)習(xí)場(chǎng)景下模型基分類器的度量空間,圖中K-shot學(xué)習(xí)基分類器計(jì)算支持集中每類樣本嵌入特征的均值作為支持集的K-shot類別原型Ck,并將測(cè)試樣本x的嵌入特征通過Softmax函數(shù)計(jì)算到類別原型進(jìn)行分類,計(jì)算公式為
圖3 基分類器的度量空間Figure 3 Metric space of the base classifier
pφ(y=k|x)∝exp(-d(fφ(x),Ck))。
(1)
在K-shot學(xué)習(xí)基分類器中,給出一個(gè)支持集的n個(gè)有標(biāo)簽樣本S={(x1,y1)(x2,y2),…,(xn,yn)},其中:xi∈RD是一個(gè)樣本的D維特征向量;yi∈{1,2,…,k}是對(duì)應(yīng)的標(biāo)簽;Sk表示第k類標(biāo)簽的樣本集合;fφ是具有可學(xué)習(xí)參數(shù)φ的特征提取函數(shù)。在計(jì)算過程中,基分類器通過具有可學(xué)習(xí)參數(shù)φ的特征提取函數(shù)fφ:RD→RM來計(jì)算支持集中每個(gè)類別的M維表示Ck∈RM,也就是每個(gè)類別的類別原型。在基分類器的度量空間中,每一類別的原型表示Ck是對(duì)支持集中的每一類別的所有樣本的特征向量取均值得到的,所用公式為
(2)
給定距離函數(shù)d:RM×RM→[0,+∞),K-shot學(xué)習(xí)基分類器會(huì)基于Softmax函數(shù)計(jì)算測(cè)試樣本x到嵌入空間中類別原型的距離,并生成測(cè)試樣本x在空間中的分布,而后通過隨機(jī)梯度下降法將真實(shí)類別k的負(fù)對(duì)數(shù)概率J(φ)=-logpφ(y=k|x)最小化,從而進(jìn)行訓(xùn)練,所用公式為
(3)
模型的基分類器由4個(gè)卷積塊組成。每個(gè)卷積塊都包含一個(gè)卷積層,其中,卷積層包含64個(gè)濾波器,每個(gè)濾波器的尺寸為3×3。一個(gè)ReLU激活函數(shù)、一個(gè)批量歸一化層和一個(gè)步長(zhǎng)為2的最大池化層。算法使用卷積神經(jīng)網(wǎng)絡(luò)提取訓(xùn)練樣本的特征,并通過Adam的隨機(jī)梯度下降進(jìn)行訓(xùn)練。訓(xùn)練時(shí),使用10-3的初始學(xué)習(xí)率,每1 000次訓(xùn)練將學(xué)習(xí)率減半,除了批量歸一化外,不使用任何正則化。
滿文數(shù)據(jù)集中的所有數(shù)據(jù)是從《滿語365句》一書中掃描得到,共計(jì)666個(gè)滿文單詞。根據(jù)《滿語365句》的羅馬轉(zhuǎn)寫字符用索貝特輸入法錄入了11種字體,并將每個(gè)滿文單詞的11種字體歸為一類。小樣本學(xué)習(xí)一般是指通過較大量的基類訓(xùn)練后,能夠?qū)χ挥猩倭坑袠?biāo)簽樣本的新類進(jìn)行識(shí)別的學(xué)習(xí)算法。因此在數(shù)據(jù)集的劃分上,將數(shù)據(jù)集劃分為支持集S、測(cè)試集Q、驗(yàn)證集V和輔助集A。其中支持集S和測(cè)試集Q由新類樣本組成并一起構(gòu)成一個(gè)小樣本分類任務(wù),如果S中包含C個(gè)類,每個(gè)類中又包含K個(gè)有標(biāo)簽樣本,如K=5,將此類任務(wù)稱為C-wayK-shot任務(wù)。利用支持集S,即可對(duì)Q中每一個(gè)未標(biāo)記的測(cè)試樣本進(jìn)行分類。輔助集A由基類樣本組成并用于訓(xùn)練模型學(xué)習(xí)可轉(zhuǎn)移的知識(shí),輔助集A的類別空間與支持集S、測(cè)試集Q和驗(yàn)證集V都不相交。驗(yàn)證集V由新類樣本組成并用于調(diào)整模型參數(shù)。在進(jìn)行實(shí)驗(yàn)時(shí),我們將原本的666類滿文單詞進(jìn)行了劃分,其中166類滿文單詞樣本通過分別旋轉(zhuǎn)90°、180°和270°的方式將原本的類別數(shù)擴(kuò)充為4倍,并作為基類進(jìn)行輔助集A的構(gòu)建。即輔助集A的類別數(shù)為166×4類,樣本數(shù)為7 304個(gè)。剩下的500類樣本作為新類構(gòu)建了支持集S、測(cè)試集Q和驗(yàn)證集V,其中3個(gè)數(shù)據(jù)集共享相同的類別空間,將每個(gè)類別中的5個(gè)樣本用于構(gòu)建支持集S,4個(gè)樣本用構(gòu)建測(cè)試集Q,剩下的兩個(gè)樣本用于構(gòu)建驗(yàn)證集V。支持集S、測(cè)試集Q和驗(yàn)證集V所包含的樣本數(shù)分別為2 500、2 000和1 000。
我們選擇最優(yōu)的超參數(shù)進(jìn)行對(duì)比實(shí)驗(yàn),評(píng)價(jià)指標(biāo)選擇識(shí)別準(zhǔn)確率,實(shí)驗(yàn)結(jié)果如表2所示。本文模型的超參數(shù)設(shè)置如下:模型中N元ECOC編碼矩陣中的N設(shè)置為50,也就是說對(duì)類別數(shù)量為200類、300類、400類和500類的支持集S都做了50元的分解,模型中的每個(gè)基分類器的分類類別數(shù)量也為50?;诸惼鲾?shù)量設(shè)置為300,也就是說相應(yīng)的預(yù)測(cè)編碼長(zhǎng)度為300,N元ECOC編碼矩陣的列數(shù)L也為300。由表2的數(shù)據(jù)可知,在大類別場(chǎng)景下,基于N元ECOC的K-shot學(xué)習(xí)模型擁有更高的識(shí)別準(zhǔn)確率。在支持集類別增多的情況下,這些算法的識(shí)別能力普遍下降,但本文模型的降幅最小,相較于其他算法并不十分明顯。
表2 K-shot學(xué)習(xí)模型的識(shí)別準(zhǔn)確率對(duì)比Table 2 Comparison on recognition accuracy of K-shot learning models
為了考察分解元的數(shù)量N和基分類器數(shù)量L對(duì)模型的識(shí)別準(zhǔn)確率的影響,進(jìn)而優(yōu)化超參數(shù)的取值,我們進(jìn)行了系列超參數(shù)靈敏度分析實(shí)驗(yàn),結(jié)果如圖4和圖5所示。圖4的實(shí)驗(yàn)設(shè)置為滿文數(shù)據(jù)集在500-way5-shot的場(chǎng)景下,分類器數(shù)量為300。從圖4中可以看出,當(dāng)N=50時(shí),算法的識(shí)別準(zhǔn)確率較高,因此在實(shí)驗(yàn)中選擇N=50的分解。從圖5中可以看出,固定N的數(shù)量不變,隨著基分類器數(shù)量的增加,模型識(shí)別準(zhǔn)確率總體呈上升趨勢(shì),當(dāng)K-shot學(xué)習(xí)基分類器的數(shù)量L=300時(shí),模型即可實(shí)現(xiàn)較高精度的分類,分類準(zhǔn)確率最終約為87.8%。
圖4 分類元數(shù)量N對(duì)模型識(shí)別準(zhǔn)確率的影響Figure 4 Influence of parameter N on model recognition accuracy
圖5 分類器數(shù)量L對(duì)模型識(shí)別準(zhǔn)確率的影響Figure 5 Influence of the number of classifiers L on model recognition accuracy
本文提出了一種適用于大類別分類場(chǎng)景的K-shot學(xué)習(xí)算法。核心思想是將大類別問題利用N元ECOC編碼矩陣進(jìn)行分解,得到一系列較小類別的分類問題,再通過K-shot學(xué)習(xí)基分類器進(jìn)行預(yù)測(cè),最后對(duì)分類結(jié)果進(jìn)行解碼并輸出。模型主要分為編碼和解碼兩個(gè)部分。編碼過程中利用N元ECOC編碼對(duì)K-shot學(xué)習(xí)模型的支持集進(jìn)行重新劃分,劃分后的子支持集類別變少,減小了基分類器的分類壓力;解碼階段對(duì)由多個(gè)K-shot學(xué)習(xí)基分類器得到的預(yù)測(cè)編碼利用N元ECOC編碼矩陣解碼,將與預(yù)測(cè)編碼距離最近的類別編碼作為最終分類結(jié)果,可以實(shí)現(xiàn)對(duì)識(shí)別錯(cuò)誤的糾錯(cuò),從而進(jìn)一步提升了模型的識(shí)別準(zhǔn)確率。在大類別滿文數(shù)據(jù)集上進(jìn)行的實(shí)驗(yàn)結(jié)果表明,本文提出的基于N元ECOC的K-shot學(xué)習(xí)算法在大類別場(chǎng)景下可以獲得較高的識(shí)別準(zhǔn)確率。