前言
小樣本學習方法主要可以分爲兩種形式:最近鄰方法和embedding方法。在embedding方法中,通常是先將圖像通過非線性映射到embedding空間中,然後在embedding空間中根據預設的距離度量來進行最終的最近鄰分類,原型網絡採用的就是這種方法。
人們發現,在經過靈活的非線性映射之後,得到的embedding基本可以適應任何距離度量,因此度量的選擇似乎變得無關緊要。然而本文發現,度量的選擇還是相當重要的。 在原型網絡中,作者分析了文中所使用的距離函數,以證明使用樣本均值作爲原型是合理的,並且作者認爲在所有的距離函數中,Bregman散度是最合適的,不過原型網絡僅選用Bregman散度中的一個實例——平方歐幾里得距離。但是,選擇歐幾里得度量會涉及兩個錯誤的假設:
- 特徵維度不相關;
- 具有一致的協方差。
此外,歐氏距離對於類內樣本相對於原型的分佈不敏感。本文發現,對這種分佈進行建模是提升性能的關鍵。
本文的貢獻如下:
- 使用馬氏距離作爲度量,通過實驗發現性能相比CNAPS提升了6.1%;
- 作者發現即使在小樣本分類的情況下,也能夠估算出馬氏距離;
- 提出了一種新的Simple CNAPS結構,它從原始CNAPS中移除了788485個參數,並用固定的,不需要學習的確定性協方差和馬氏距離來替代它們;
- 本文還發現足夠複雜的CNN特徵提取器可以適應最終的任何度量標準。
方法實現
首先對小樣本圖像分類做一個說明。假設有一個大規模帶標記數據集,其中和分別是圖像和標籤。那麼從中就可以構建一個專門用於分類任務的大規模數據集,這裏定義的是一個分類任務。然後定義支持集和查詢集,,是向量化的圖像,是類標籤。那麼最終的目標就是找到能使最大化的分類器參數。
在實際構建時,需要對支持集中的圖像標籤和查詢集中的圖像標籤之間的關係上增加一個約束。比如,查詢集標籤是支持集標籤的子集,這樣的話,分類任務就可以看成是爲查詢集中的圖像正確分配支持集中的某個類別。並且,在這種情況下,支持集就可以看作是訓練數據。
1. CNAPS
CNAPS由兩部分組成:特徵提取器和分類器,它們都是task-adapted,利用支持集訓練出自適應模塊來實現這種adaption。
上圖是CNAPS中特徵提取器的結構,它包括了一個ResNet網絡,ResNet網絡的每一層的特徵都會通過FiLM層的參數進行scale和shift,而參數是由特徵自適應模塊基於支持集樣本提供的。
包括兩個階段:
- 首先由任務編碼器(task encoder)生成任務表示;
- 然後將傳遞給,從而爲塊生成FiLM參數
一旦設置好FiLM的參數,那麼這個特徵提取器就實現了task-adapted,定義表示適應了任務的特徵提取器。
接下來說一下CNAPS中的分類,分類是通過一個task-adapted線性分類器完成的,其中查詢集圖像的類別概率是通過softmax計算的。通過分類器自適應網絡來計算權值和偏差:,對於任務中的每個類,根據類均值產生分類權重中的相應行。類均值是通過對類的支持集樣本的特徵向量做平均池化得到的,而特徵向量是通過自適應特徵提取器提取得到的。下圖是CNAPS中分類器的結構:
2. Simple CNAPS
在Simple CNAPS中,特徵提取器的結構和CNAPS中的相同,但分類器結構是不同的。在Simple CNAPS中,直接使用馬氏距離來計算類別概率:
其中,
是特定於任務和類的協方差矩陣。由於事先並不清楚的值,因此需要根據任務中支持集的feature embedding來對進行估計。因爲支持集中的樣本數量遠遠小於特徵空間的維度,因此使用一種正則化的估計方法:
上式是通過class-within-task協方差矩陣,和all-classes-in-task協方差矩陣進行凸組合得到的。
對於,通過對所有的feature embedding 進行估計得到,其中是中類標籤爲的樣本,也就是說是任務中某一類的協方差矩陣:
如果該類中的支持集樣本數爲1,即,那麼就將定義爲合適大小的零矩陣。
對於,它的估計方式和一樣,只不過它使用的是支持集中的所有樣本,也就是說是任務中所有類的協方差矩陣。
對於任務及類的協方差來說,採用一種確定的方法來計算它的權值:
- 在single-shot情況下,,也就是說相對於任務協方差增加了正則化參數的強度。當時,變成了,而中只有部分是class-level協方差;
- 在high-shot情況下,趨向於1,而中基本都是class-level協方差。
這也說明,當shot的數量增加時,估計的class-within-task協方差的值也越好,從而使得在開始時越接近。本文也考慮過將設置成可學習的參數,但發現這種固定形式得到的結果是最好的。下圖是Simple CNAPS中分類器的結構:
3. 一些理論
式(1)中類別概率的計算對應於一個等權指數族混合模型(equally-weighted exponential family mixture model),其中指數族分佈是通過Bregman散度來確定的:
式(2)中的平方馬氏距離是通過凸函數生成的,它對應於多元正態指數族分佈(multivariate normal exponential family distribution)。那麼式(1)就可以看成是高斯混合模型的"responsibilities":
那麼這樣就暴露出歐式距離的一個問題,如下圖所示,歐式距離對應的是時的平方馬氏距離,它假設每個聚類是圍繞類均值進行單位正態分佈的,如(a)所示;而平方馬氏距離在計算到聚類中心的距離時,它考慮的是聚類的協方差:
結論
本文是在CNAPS的基礎上做出了一點修改,用馬氏距離作爲距離度量,計算類別概率並進行分類,取代了CNAPS中task-adapted分類器,本文的設計更加的簡潔,並且也取得了很好的效果。作者認爲馬氏距離甚至可以應用到零樣本學習中,在以後的研究工作中也可以探索一下其它Bregman散度的有效性。