小樣本學習介紹


基本概念

在大多數時候,你是沒有足夠的圖像來訓練深度神經網絡的,這時你需要從小樣本數據快速學習你的模型。

Few-shot LearningMeta Learning 在監督學習領域的應用。Meta Learning,又稱為 learning to learn,在 meta training 階段將數據集分解為不同的 meta task,去學習類別變化的情況下模型的泛化能力,在 meta testing 階段,面對全新的類別,不需要變動已有的模型,就可以完成分類。

形式化來說,few-shot 的訓練集中包含了很多的類別,每個類別中有多個樣本。在訓練階段,會在訓練集中隨機抽取 C 個類別,每個類別 K 個樣本(總共CK 個數據),構建一個 meta-task,作為模型的支撐集(support set)輸入;再從這 C 個類中剩余的數據中抽取一批(batch)樣本作為模型的預測對象(batch set)。即要求模型從 C*K 個數據中學會如何區分這 C 個類別,這樣的任務被稱為 C-way K-shot 問題。如果K值很小(通常K<10),我們稱這種分類任務為極少樣本分類任務(當K=1時,變成單樣本分類任務)。

1998年,Thrun和Pratt指出,對於一個指定的任務,一個算法“如果隨着經驗的增長,在該任務上的表現得到改進”,則認為該算法能夠學習

與此同時,對於一族待解決的多個任務,一個算法“如果隨着經驗和任務數量的增長,在每個任務上的表現得到改進”,則認為該算法能夠學習如何學習,我們將后者稱為元學習算法。它不學習如何解決一個特定的問題,但可以成功學習如何解決多個任務。每當它學會解決一個新的任務,它就越有能力解決其他新的任務:它學會如何學習

meta learning是機器學習的一個子領域,它自動學習一些應用於機器學習實驗的元數據,主要目的是使用這些元數據來自動學習如何在解決不同類型的學習問題時變得靈活,從而提高現有的學習算法。靈活性是非常重要的,因為每個學習算法都是基於一組有關數據的假設,即它是歸納偏(bias)的。這意味着如果bias與學習問題中的數據相匹配,那么學習就會很好。學習算法在一個學習問題上表現得非常好,但在下一個學習問題上表現得非常糟糕。這對機器學習或數據挖掘技術的使用造成了很大的限制,因為學習問題與不同學習算法的有效性之間的關系尚不清楚。

通過使用不同類型的元數據,如學習問題的屬性,算法屬性(如性能測量)或從之前數據推導出的模式,可以選擇、更改或組合不同的學習算法,以有效地解決給定的學習問題。

元學習一般有兩級,第一級是快速地獲得每個任務中的知識,第二級是較慢地提取所有任務中學到的信息。下面從不同角度解釋了元學習的方法:

  1. 通過知識誘導來表達每種學習方法如何在不同的學習問題上執行,從而發現元知識。元數據是由學習問題中的數據特征(一般的,統計的,信息論的......)以及學習算法的特征(類型,參數設置,性能測量...)形成的。然后,另一個學習算法學習數據特征如何與算法特征相關。給定一個新的學習問題,測量數據特征,並且可以預測不同學習算法的性能。因此,至少在誘導關系成立的情況下,可以選擇最適合新問題的算法。
  2. stacking. 通過組合一些(不同的)學習算法,即堆疊泛化。元數據是由這些不同算法的預測而形成的。然后,另一個學習算法從這個元數據中學習,以預測哪些算法的組合會給出好的結果。在給定新的學習問題的情況下,所選擇的一組算法的預測被組合(例如通過加權投票)以提供最終的預測。由於每種算法都被認為是在一個問題子集上工作,所以希望這種組合能夠更加靈活,並且能夠做出好的預測。
  3. boosting. 多次使用相同的算法,訓練數據中的示例在每次運行中獲得不同的權重。這產生了不同的預測,每個預測都集中於正確預測數據的一個子集,並且結合這些預測導致更好(但更昂貴)的結果。
  4. 動態偏選擇(Dynamic bias selection)通過改變學習算法的感應偏來匹配給定的問題。這通過改變學習算法的關鍵方面來完成,例如假設表示,啟發式公式或參數。
  5. learning to learn,研究如何隨着時間的推移改進學習過程。元數據由關於以前的學習事件的知識組成,並被用於高效地開發新任務的有效假設。其目標是使用從一個領域獲得的知識來幫助其他領域的學習。

如果我們希望解決一項任務T,會在一批訓練任務{Ti}上訓練元學習算法。我們希望元學習模型“隨着經驗和任務數量的增長”得到不斷地改進,算法在被訓練解決這些任務的過程中得到的經驗將被用於解決最終的任務T。注意:{Ti}任務中不需要包含T任務的學習內容。

在訓練過程中,每次訓練(episode)都會采樣得到不同 meta-task,所以總體來看,訓練包含了不同的類別組合,這種機制使得模型學會不同 meta-task 中的共性部分,比如如何提取重要特征及比較樣本相似等,忘掉 meta-task 中 task相關部分。通過這種學習機制學到的模型,在面對新的未見過的 meta-task 時,也能較好地進行分類。

標准的學習分類算法學習映射圖像→標簽,元學習算法通常學習映射支持集→c(.),其中c是映射查詢→標簽。

元學習算法

元學習模型可以用於解決一個少樣本分類的任務,解決方案有多種。

度量學習

度量學習的基本思想是學習數據點(如圖像)之間的距離函數。事實證明,它對於解決少樣本分類任務非常有用:度量學習算法不必在支持集(少量的帶標簽圖像)上進行微調,而是通過將查詢圖像與帶標簽圖像進行比較來對其進行分類。

將查詢圖像與支持集的每個圖像進行比較,它的標簽取決於與其最接近的圖像。當然,你不能逐個像素地比較圖像,你要做的是在相關的特征空間中比較圖像。

為了清楚起見,讓我們詳細說明度量學習算法是如何解決少樣本分類任務的(以下定義為帶標簽樣本的支持集,以及我們要分類的查詢圖像集):

  1. 我們從支持集和查詢集的所有圖像中提取特征(通常使用卷積神經網絡)。現在,我們在少樣本分類任務中必須考慮的每個圖像都由一個一維向量表示。
  2. 每個查詢圖像根據其與支持集圖像的距離進行分類。對於距離函數和分類策略,可以有許多可能的設計選擇。例如,歐氏距離和k-最近鄰分類。
  3. 在元訓練期間,在每一場景(episode)結束時,對由查詢集的分類錯誤產生的損失值(通常是交叉熵損失)進行反向傳播,從而更新CNN的參數。

現有很多方法可以用於提取特征或者比較特征。以下將介紹一些現有的解決方案。

孿生網絡(Siamese Neural Networks)這個方法對輸入的結構進行限制並自動發現可以從新樣本上泛化的特征。通過一個有監督的基於孿生網絡的度量學習來訓練,然后重用那個網絡所提取的特征進行one/few-shot學習。它是一個雙路的神經網絡,訓練時,通過組合不同類的樣本成對,同時輸入網絡進行訓練,在最上層通過一個距離的交叉熵進行loss的計算,如下圖。

在預測時,以5way-5shot為例子,從5個類中隨機抽取5個樣本,把這個mini-batch=25的數據輸入網絡,最后獲得25個值,取分數最高對應的類別作為預測結果,如圖。

匹配網絡算法 對於支持集圖像和查詢圖像,特征提取器是不同的。使用余弦相似性,將查詢的嵌入特征與支持集中的每個圖像進行比較。然后用softmax進行分類。

匹配網絡是第一個使用元學習的度量學習算法。在這個方法中,我們不會以同樣的方式提取支持圖像和查詢圖像的特征。來自Google DeepMind的 Oriol Vinyals 和他的團隊有一個想法,即在特征提取過程中使用LSTM網絡使所有圖像交互。他們稱之為完全上下文嵌入,因為你允許網絡為了找到最合適的嵌入,這不僅需要知道要嵌入的圖像,還需要知道支持集中的所有其他圖像。這使得他們的模型比所有的圖像都通過一個簡單的CNN時表現得更好的同時,也需要更多的時間和更大的GPU。

該文章也是在不改變網絡模型的前提下能對未知類別生成標簽,其主要創新體現在建模過程和訓練過程上。對於建模過程的創新,文章提出了基於memory和attantion的matching nets,使得可以快速學習。對於訓練過程的創新,文章基於傳統機器學習的一個原則,即訓練和測試是要在同樣條件下進行的,提出在訓練的時候不斷地讓網絡只看每一類的少量樣本,這將和測試的過程是一致的。

在最近的工作中,我們不會將查詢圖像與支持集中的每個圖像進行比較。多倫多大學的研究人員提出了原型網絡。在他們的度量學習算法中,學習了一個度量空間,從圖像中提取特征后,為每個類計算一個原型。為此,他們使用類中每個圖像嵌入的平均值。一旦計算出原型,就可以計算查詢圖像到原型的歐式距離,從而對查詢圖像進行分類。並且在原型網絡中,我們將查詢標記為與其最接近的原型的標簽。

模型無關的元學習(MAML)是目前最優雅和最有潛力的元學習算法之一。它基本上是最純粹的元學習形式,通過神經網絡進行兩級反向傳播。

該算法的核心思想是訓練一個神經網絡,使其能夠僅用少量樣本就能快速適應新的分類任務。下圖將展示MAML如何在元訓練的一個場景(即,從數據集D中采樣得到的少樣本分類任務Tᵢ)中工作的。假設你有一個用𝚯參數化的神經網絡M:

用𝚯參數化的MAML模型的元訓練步驟:

  1. 創建M的副本(此處命名為f),並用𝚯對其進行初始化(在圖中,𝜽₀=𝚯)。
  2. 快速微調支持集上的f(只有少量梯度下降)。
  3. 在查詢集上應用微調過的f。
  4. 在整個過程中,對分類錯誤造成的損失進行反向傳播,並更新𝚯。

然后,在下一場景中,我們創建一個更新后模型M的副本,我們在新的少樣本分類任務上運行該過程,依此類推。

在元訓練期間,MAML學習初始化參數,這些參數允許模型快速有效地適應新的少樣本任務,其中這個任務有着新的、未知的類別。

MAML目前在流行的少樣本圖像分類基准測試中的效果不如度量學習算法。由於訓練分為兩個層次,模型的訓練難度很大,因此超參數搜索更為復雜。此外,元的反向傳播意味着需要計算梯度的梯度,因此你必須使用近似值來在標准GPU上進行訓練。

但是,模型無關的元學習之所以如此令人興奮,是因為它的模型是不可知的。這意味着它幾乎可以應用於任何神經網絡,適用於任何任務。掌握MAML意味着只需少量樣本就能夠訓練任何神經網絡以快速適應新的任務。

參考文獻

圖像樣本不夠用?元學習幫你解決
小樣本學習(Few-shot Learning)綜述
小樣本學習遇上機器學習


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM