楊振宇, 胡新龍, 崔來平, 王 鈺, 馬凱洋
(齊魯工業大學(山東省科學院) 計算機科學與技術學院, 濟南 250353)
小樣本學習即從很少的例子中識別新物體類別的能力, 它展示了人類視覺智能的一個新水平. 在大量的訓練數據的加持下, 視覺識別系統的準確性已經有了大幅度提高. 但是, 現實生活中有許許多多我們無法獲取大量數據的情況, 當我們無法獲取到大量的訓練數據時, 我們應該怎么辦呢. 小樣本學習便在這種情況下被人們重新重視.
從很少的例子中學習新概念——是人類視覺系統的一個標志, 小樣本學習便是希望學習到人類的這種能力. 例如, 給一個孩子看一張或幾張袋鼠的照片, 當下次他看到袋鼠時, 他可以輕易地分辨出袋鼠. 小樣本分類的目的是使利用大量可見類數據訓練好的分類模型, 在面對只有少量標注數據的不可見類時依然具有較好的分類性能.
目前, 小樣本學習面臨著兩個主要的難題, 一個是不可見類中標注數據過少的問題, 另一個是可見類和不可見類的樣本類別相互獨立, 將用可見類訓練好的模型應用到不可見類時, 由于泛化性太差而引起的過擬合問題. 對少量的標注數據進行擴充是一種簡單常用的方法, 在數據量較少的小樣本學習中利用這種方法也很有效. 擴充數據的方法通常有這兩種, 一種是以高斯噪聲為條件[1,2]學習數據生成器. 這種方法生成的模型問題在于對少量樣本進行訓練時, 往往表現欠佳.另一種方法是利用不可見類中的無標簽數據來擴充帶有標簽的數據. 但是這種方法擴充的標簽數據準確度有時并不高, 從而影響分類效果. 我們引入了一種融合擴充標簽方法, 利用同一類別中的樣本數據變化規則來擴充另一類別的樣本數據. 具體來說, 假如我們有兩張獅子的圖片, 其中一張是獅子在散步, 另一張是獅子在睡覺; 同時我們還有一張老虎在散步的照片, 我們利用獅子的姿勢變換規則, 融合出一個老虎睡覺的樣本,從而達到數據擴充的目的. 這種規則不僅可以是姿勢變換, 也可以是背景變換等.
面對過擬合問題, 人們利用模擬小樣本訓練過程的情景或元學習[3,4]的方式來解決這一問題. 但是這些現有的方法絕大多數只關注樣本整體的特征, 并沒有關注樣本中的局部特征. 因此Zhang等[5]提出一種基于圖像區域之間最佳匹配的小樣本圖像分類算法, 來關注樣本的局部特征. 但是這種方法的局限性在于過分關注樣本的局部特征, 反而忘記了樣本的整體特征的重要性. 我們認為同時關注到樣本的整體特征和局部特征, 這對于最后結果的調整是很有幫助的. 因此我們提出了一個雙重特征提取方法, 該模塊首先從整體出發, 關注提取樣本的整體特征, 然后深入到樣本的局部特征, 通過整體和局部雙重特征, 關注到其中最相關的特征, 從而達到更好的分類效果.
綜上所述, 我們在本文的貢獻總結如下.
(1)我們引入了一種融合擴充方法, 該方法通過將同一類別樣本的變換規則泛化到另一類別, 能夠較好地將數據擴充至支持集, 從而實現數據擴充效果.
(2)我們提出了一個雙重特征提取方法, 該方法不僅可以關注到樣本的整體特征, 而且可以關注到樣本的局部特征.
(3)基于(1)和(2), 我們提出了一個小樣本圖片分類模型: 融合擴充-雙重特征提取模型. 該模型可以同時關注樣本整體和局部雙重特征, 找到樣本中對分類最為重要的特征, 從而更好地提高小樣本圖片分類的準確率.
本文的其余章節組織如下: 第2節, 我們回顧了小樣本學習的相關工作. 第3節正式描述我們提出的模型. 第4節, 我們進行了實驗設置并對實驗結果做了分析和討論. 第5節總結了全文.
在描述小樣本學習的文獻中, 絕大多數可以分為兩類: 基于度量的方法和基于優化的方法. 除此之外還有少量的其他方法.
基于度量的方法首先將圖像映射到一個度量空間,然后在空間內應用某種度量方式來判別圖像間的差異性. 這類方法有很多, 例如, 匹配網絡[6]基于深度特征的度量學習和外部存儲器增強的神經網絡啟發, 通過計算支持集和查詢集之間的嵌入距離生成加權最近鄰分類器, 可以從小數據集中快速的學習新的概念, 同時避免微調. Snell等提出的原型網絡[7]基于這樣的想法:每個類別都存在一個原型表達, 該類的原型是支持集在嵌入空間中的均值. 然后, 分類問題變成在嵌入空間中的最近鄰. 關系網絡[8]采用距離度量網絡來學習支持和查詢樣本中的逐點關系. 嵌入和度量學習方法另一類少鏡頭學習方法旨在使用度量學習方法優化可轉移嵌入. Oreshkin等[9]設計了一種TEN結構, 可以將任務相關信息引入到特征提取網站中, 同時為度量函數增加了放縮系數. Li等[10]將基礎類別和少量樣本的新類別一起訓練, 得到每個類別的全局類別表征, 從中選擇出與當前episode類別表征最相近的n個表征, 最后根據查詢集樣本和n個表征之間的歐氏距離進行分類. Li等受到樸素貝葉斯最近鄰算法的啟發, 提出了DN4網絡[11], 通過比較圖像與類別間的局部描述子來尋找與輸入圖像最相似的類別. Li等[12]提出了一種特征學習模塊CTM, CTM可以提取樣本特征的類內共同性和類間差異性, 從而找到與分類最為相關的特征,提高小樣本分類的準確性.
基于優化的方法主要在于調整模型參數, 使其能夠適應不可見類的新任務. MAML[13]是一種基于梯度優化的方法, 該算法提出的模型使用少量的梯度迭代步驟就可以學習到適用于新任務的參數, 它將元學習器設計為一個優化器, 可以學習更新模型參數, 能夠匹配任何使用梯度下降法訓練的模型. Antoniou等[2]對MAML進行了一定優化, 使得系統的泛化性能進一步提高, 網絡的收斂速度進一步加快. LEO[14]利用編碼器-解碼器體系結構挖掘潛在的生成表示, 對空間中的每個點都進行分類預測, 保留訓練好的參數, 使其可以在極低數據區域預測高維參數. Chen等[15]提出了一個基準模型, 用于評估小樣本泛化能力, 通過實驗發現若是特征提取網絡能力夠強, 類內差異性的作用會大大減小. Jamal等[16]提出了一種基于任務無偏思想的元學習算法, 通過基于熵減最大化的TAML和基于最小化不平等性的TAML, 提高模型的泛化能力. 在文獻[17]中, Elsken等人將神經架構搜索引入到小樣本學習中,將神經架構搜索中的DARTS算法與小樣本學習中的Reptile算法結合, 在訓練權重參數的同時訓練結構參數.
圖形神經網絡最初是為處理圖形結構數據[6,18]上的任務而設計的. 圖神經網絡主要通過遞歸聚合和轉換相鄰節點來細化節點表示. 最近的方法[19-21]被提議在少鏡頭學習任務領域利用圖神經網絡. TPN[19]提出一種直推式傳播網絡, 將轉換設置引入基于圖的小樣本學習. 首先將支持集和查詢集輸入特征網絡得到特征向量, 然后將每個樣本作為結點構建圖模型. 利用圖拉普拉斯算子處理結點間的權重, 利用圖模型對查詢樣本進行預測. EGNN[21]提出了一種邊標簽圖卷積神經網絡, 利用樣本之間的同異性來預測邊緣標簽特征,以求顯示類內共同性和類間差異性. DLDL[3]是在分類和回歸任務中為每個實例分配離散分布而不是一個熱標簽的研究之一. CPNN[22]將特征和標簽作為輸入, 并生成框架中只有一個隱藏層的標簽分布. LDLFs[23]設計了一種基于決策樹算法的分布學習方法.
小樣本學習的訓練集中包含了很多的類別, 每個類別都有大量樣本. 訓練階段, 在訓練集中隨機抽取C個類別, 每個類別K個樣本(總共C×K個數據), 構建一個元任務, 作為模型的支撐集; 再從這C個類中剩余的數據中抽取一批樣本作為模型的查詢集. 小樣本學習要求模型從C×K個數據中學會如何區分這C個類別, 這樣的任務被稱為C-way K-shot問題.
在這里我們假設訓練類為Ctrain, 測試類為Ctest. 訓練類與測試類的標簽是互不相交的. 我們有訓練數據集Dtrain={(Ii, yi), yi∈Ctrain}和測試數據Dtest={(Ii, yi), yi∈Ctest}. 訓練過程中, 每次都通過采樣不同的元任務進行訓練. 通過這種學習機制在訓練數據集上學到的模型, 在對測試數據集中的查詢集樣本進行分類時, 也能較好地進行分類.
我們提出了一個名為融合擴充-雙重特征提取的模型. 我們給出具體的模型圖(圖1), 以便于直觀地看到模型的組成. 它由融合擴充模塊、雙重特征提取模塊和分類模塊組成.
3.2.1 融合擴充模塊
小樣本學習需要解決的主要困難之一是支持集中數據樣本過少的問題. 通過數據擴充方法, 我們可以有效地緩解這個問題. 受到文獻[4]的啟發, 我們引入了一種有效的數據擴充方法-融合擴充方法. 假如說有兩張圖片, 一張圖片中的黃鸝在休息, 另一張圖片中的黃鸝在飛行; 通過觀察黃鸝這兩種不同的狀態, 我們人類在看到一只老鷹在休息時, 可以聯想到老鷹飛行的畫面. 這種方法就是模擬人類這種思維, 通過規則泛化來對支持集中的樣本進行擴充.
融合擴充模塊的具體過程如圖1所示, 直觀地說,我們希望融合器通過某一類別不同樣本之間的變換規則(例如不同的姿態或者背景等), 對另一種類別的樣本進行擴充. 我們將融合器表示為T(I, S; WT). 其中,I表示樣本示例, S表示規則向量, WT為融合器T 的參數. 我們利用訓練集中的大量樣本數據來訓練融合器T, 不斷調整融合器的參數, 使經過融合器融合而成的樣本更加有效. 對于每個類別a樣本的變換規則(例如a1→a2) , 從另一個類別b中找到另一對規則b1→b2,使得a1→a2和 b1→b2之間的余弦距離最小. 利用所有余弦相似度大于零的例子來不斷訓練融合器, 不斷調整融合器的參數. 然后, 假設b1的輸出為我們最小表 示輸出值與真實值b2之間的均方誤差. 經過訓練集中大量數據的訓練與調整后, 我們得到融合器T , 我們將樣本示例I 和規則向量作為輸入, 融合器輸出融合示例I′. 融合器的目標是生成額外的支持集示例, 從而幫助分類算法構建更好的分類器. 我們通過元學習直接訓練融合器, 在C-way Kshot問題中, 對于每個類, 我們都利用融合器T生成n個額外的示例.

圖1 融合擴充-雙重特征提取模型
具體來說, 在元測試過程中, 我們從支持集Support中隨機獲取一個真實的樣本(I, y)和一個規則矢量S,然后將其輸入到T , 得到一個融合示例(I′, y). 我們將I′表示為: I′= T(I, S; WT), (I, y)是從支持集中隨機采樣的示例.融合示例的集合為S upport′. 我們將這些融合示例添加到支持集S upport, 就可以得到擴充后的支持集S upport+.

3.2.2 雙重特征提取模塊
我們的模型是基于度量學習的模型. 學習一個映射函數 f(·), 通過該函數將樣本映射到一個嵌入空間進行分類是度量學習方法的一個最重要思想. 在嵌入空間中, 越相似的樣本距離越接近, 通過Softmax分類器對嵌入點 f(I′)進行分類. 該分類器通常指最后一個全連接層, 然后是Softmax層. 我們通過最小化交叉熵損失來學習此類映射和分類器權重:

其中, Wk表示Softmax分類器的權重矩陣W的第k列.
我們通過文獻[4,24]發現, 對嵌入向量和權重向量應用L2歸一化, 可以讓分類器具有更好的泛化性能. 因此我們首先對嵌入向量和權重向量進行L2歸一化:


為了確保在特殊情況下(例如類內方差過大、類間方差太小數據分散在特征空間中), 也可以通過每個類別的一個或幾個樣本嵌入點構造一個穩定的決策邊界, 我們在學習分類器后給出一個約束: 特征點與其分類器權重要盡量接近. 總損失由式(7)給出:

其中, I是訓練圖像, Y是標簽, λ是加權參數, s是式(7)中的比例因子.
雙重特征提取模塊如圖1所示. 從擴充后的支持集和查詢集中抽取的樣本, 經過雙重特征提取器, 提取出整體特征和局部特征, 從而得到樣本的整體權重和局部特征權重, 通過與基類權重的比較, 找到其中最為重要的分類特征, 從而實現分類. 雖然局部特征在一定程度上不如整體特征的分辨力強, 但是在可見類和不可見類之間發生轉換時, 局部特征的一般性以及它的非具體性, 使得它對于描述不可見類的新概念有著非常重要的作用. 因此, 我們構建一個局部特征提取器fi(I), 用于從早期層中提取局部特征. 我們在卷積層添加了一個全局最大池層, 并連接這些層中的所有池化功能, 將它們連接到給全連接層. 我們的整體特征提取fz(I)是倒數第二層-全局池化層. 因為該層可以提供整個圖像的信息.
雙重特征提取器的具體過程如圖2所示. 我們從經典神經網絡模型的不同層構造兩個特征提取器, 分別命名為局部特征提取器fi(I)和整體特征提取器fz(I),然后通過以分類器為中心的余弦Softmax損耗, 在訓練集的大量數據上聯合學習這些表示. 一旦學習了表示, 我們就從新示例中提取樣本的雙重特征, 并將它們連接起來以構造分類器權重. 然后, 使用通過代入獲得局部特征表示的損失:

圖2 局部特征提取器和整體特征提取器


總的來說, 可以通過最小化以下損失函數來學習多級和以分類器為中心的表示:

3.2.3 分類模塊

基本分類器的總權重矩陣也通過相應地連接其分類器權重來獲得:

給定一個新類別p的輸入訓練樣本 Ip, 我們通過fc=(Ip)提取特征向量, 并直接將其用作新類別c的分類器權重然后, 我們通過在分類器權重矩陣Wb中插入權重Wp來擴展基本分類器, 從而使整個系統能夠識別新概念p. 如果新的p類有多個可用的訓練示例, 我們將使用與文獻[24]中相同的方法使用平均嵌入. 給定訓練示例, 我們首先計算平均嵌入量, 計算方法為:

最后通過標準化得到權重向量Wp:

在本節中, 我們首先對實驗中所用的兩個數據集,評價指標以及參數設置進行了介紹, 之后將我們提出的方法與其他基線方法進行比較. 最后我們詳細分析了模型中不同模塊的設置所帶來的影響.
我們在Mini-ImageNet和Tiered-ImageNet兩個基準數據集上進行試驗. 針對C-way K-shot問題, 我們在實驗中設置不同的C, K值驗證論文所設計模型的性能.
Mini-ImageNet數據集總共有60 000張圖片, 是從ImageNet數據集[25]中的大量圖片提出而來, 在60 000張圖片共分為100個類別, 每個類別里有600張圖片,每張圖片的規格為84×84. 按照傳統的數據劃分, 我們將64, 16和20個類別分別當作訓練集, 驗證集和測試集[26]. 圖3為Mini-ImageNet數據集的5個類別, 每個類別5個示例.

圖3 Mini-ImageNet數據集示例
Tiered-ImageNet數據集是小樣本分類的常用數據集之一. 與Mini-ImageNet一樣, Tiered-ImageNet數據集也是由ImageNet數據集中的圖片提取得到. 但是,Tiered-ImageNet共有608個類, 并且每個類有1 281張圖像. 類似于將字符分組為字母的Omniglot一樣,Tiered-ImageNet將類別分為與ImageNet層次結構中較高級別的節點相對應的更廣泛的類別. 根據文獻[27]中使用的數據劃分, 我們分別將35 197和160個類別作為訓練集, 驗證集和測試集. 圖4為Tiered-ImageNet數據集的5個示例.

圖4 Tiered-ImageNet數據集示例
我們的代碼在PyTorch深度學習平臺上實現. 在5-way 1-shot和5-way 5-shot設置中實驗我們的方法.對于C-way K-shot設置, 每個epicode由C個類組成,每個類包含K個支持樣本. 為了方便比較, 我們在實驗中使用ResNet-12[28]作為特征提取器. ResNet-12帶有4個濾波器個數為64、128、256和512的殘差塊, 每個殘差塊由3×3個卷積層組成, 在每個殘差塊的末尾帶有2×2最大池化層, 可以用來減小輸出大小. 我們從零開始在基類上訓練我們的模型90個epoch, 輸入圖像大小設置為84×84. 學習率從0.1開始, 每30個epoch除以10, 固定權重衰減為0.000 1. 然后, 我們使用以分類器為中心的約束對模型進行進一步微調, 學習率為0.000 1.
我們選取了一些經典的、具有代表性模型和目前比較先進的幾個模型與我們的模型進行比較. Relation-Net[8]采用距離度量網絡來學習支持和查詢樣本中的逐點關系. 嵌入和度量學習方法另一類少鏡頭學習方法旨在使用度量學習方法優化可轉移嵌入; CAN[29]引入了一個交叉注意網絡, 該網絡包含一個交叉注意模塊, 可以用來突出目標區域, 從而是提取到的特征更具有代表性; DeepEMD[5]設計了一種交叉參考機制, 可以有效地減少類內背景雜波和較大外觀變化的影響,并提出學習一個結構化的全連接層, 可以對密集圖像表示進行分類; CTM[12]提出了一種新的目錄遍歷模塊,該模塊可以提取到類內相同特征和類間不同特征, 從而提高分類準確率; TapNet[30]設計了一個與任務相關的分類空間, 在該空間內進行距離度量, 而且每個類別的參考向量是通過學習更新得到的, 而不是根據訓練樣本的特征向量計算得到的. 除了基于度量的小樣本學習方法, 我們也從基于優化和基于模型的小樣本學習方法中選擇幾個經典模型作為參考, 包括MAML[13]提出一個模型無關的元學習算法, 該算法適用于任何一個可使用梯度下降更新訓練的模型, 并且可用于分類、回歸、強化學習等場景; MTL[27]使用了一個較深的網絡ResNet-12, 在預訓練模型的參數固定的前提下,對預訓練模型的每層參數重新學習一個縮放和平移,在保證預訓練模型不損失特性的前提下, 重新訓練了參數, 減小了模型參數; DSN[31]通過引入一個由少量樣本構建的動態分類器, 為小樣本學習提供了一個框架.實驗結果如表1所示.

表1 FE-DF與其他方法在基準數據集上的實驗結果
從實驗結果分析, 我們可以看出我們提出的融合擴充-雙重特征提取模型是有效的. 與CAN相比, 我們的模型準確率有所提高, 這說明我們的雙重特征提取模塊和融合擴充模塊是有效的. CAN中使用了一個交叉注意模塊, 該模塊能夠突出支持集樣本和查詢集樣本之間的主要特征, 從而提取到有效特征進行分類; 我們的雙重特征提取模塊目的也是突出兩者直接的主要特征, 但是我們的模塊通過雙重特征比較, 與交叉注意模塊相比更加全面、簡單. ICI中提出了一種利用查詢集樣本擴充支持集樣本的數據擴充方法, 我們的融合擴充方法與這種方法相比更加簡單, 我們可以利用已有的方式對樣本進行擴充, 而且我們的融合擴充方法具有一定的泛化性, 可以用在其他的小樣本分類模型中.
在本節中, 我們通過一系列實驗證實了融合擴充-雙重特征提取模型中各個組成部分的有效性.
如表2、表3所示, 為了進一步驗證融合擴充模塊(FE)和雙重特征提取模塊(DF)的有效性, 我們將這2個模塊應用于3個經典的小樣本分類模型: 匹配網絡[6]、原型網絡[7]和關系網絡[8]. 我們在Mini-ImageNet數據集上進行實驗, 通過實驗我們可以看到, 我們的融合擴充模塊(FE)和雙重特征提取模塊(DF)都具有不錯的泛化性, 可以提高這些原有模型的分類性能. 而且在低數據問題比較嚴重的1-shot中, 我們的融合擴充模塊(FE)效果要比5-shot更好, 這說明數據越少, 我們的數據擴充方法效果越明顯, 雙重特征提取模塊對于模型分類效果的提升甚至高于融合擴充模塊, 這說明進行小樣本分類時, 通過雙重特征關注到相關性最強的特征對于分類是很重要的.

表2 在不同的設置下, 融合擴充模塊(FE)應用于不同網絡的結果

表3 在不同的設置下, 雙重特征提取模塊(DF)應用于不同網絡的結果
如表4所示, 通過對3種不同提取特征圖的方法的比較, 我們可以發現我們的雙重特征提取特征圖的方法總體來看是具有優勢的, 同時, 通過實驗比較發現,我們的雙重特征提取方法在實驗中的收斂速度要更加高效.

表4 5-way 5-shot下, 3種不同特征提取方法的比較
圖5-圖7顯示了在5-way 5-shot設置下, 用Mini-ImageNet數據集對3個經典模型進行實驗的實驗結果.
通過對圖5-圖7的分析觀察, 我們發現融合擴充模塊和雙重特征提取模塊都能夠對分類結果產生較好的提升, 這說明我們的方法是有效的, 而且我們的模塊可以與任意模型搭配使用, 具有較好的泛化性. 同時,通過圖5-圖7的實驗結果我們可以發現, 在匹配網絡、原型網絡以及關系網絡這3個分類模型上添加我們的模塊后, 模型的收斂性能有了一定的提升, 特別是在關系網絡中, 效果更為明顯. 這說明我們的融合擴充模塊和雙重特征提取模塊在一定程度上能夠較好地提升模型的收斂速率.

圖5 在5-way 5-shot設置下, 融合擴充模塊和雙重特征提取模塊對匹配網絡的分類提升結果

圖6 在5-way 5-shot設置下, 融合擴充模塊和雙重特征提取模塊對原型網絡的分類提升結果

圖7 在5-way 5-shot設置下, 融合擴充模塊和雙重特征提取模塊對關系網絡的分類提升結果
在本文中, 我們首先引入了一種融合擴充方法, 通過利用同類樣本間的變化規則, 泛化到其他類別樣本,從而達到擴充數據的目的. 其次, 我們提出了一種雙重特征提取方法, 通過訓練不同的特征提取器, 對同一樣本進行局部特征和整體特征分別進行采集, 使提取的特征更加全面有效, 從而更容易找到與分類最為相關的特征, 提高模型的分類準確度. 我們通過大量的實驗證明, 與現有的基線方法相比, 我們的模型在Mini-ImageNet和Tiered-ImageNet兩個基準數據集上都取得了不錯的效果.