小樣本學習(Few-shot Learning)


一、參考資料:

https://zhuanlan.zhihu.com/p/61215293

 https://www.zmonster.me/2019/12/08/few-shot-learning.html

 

二、論文:

1、 Metric Based

1.1《optimization as a model for few shot learning》

 

三、基本的概念

轉自:http://www.xuwei.io/2019/07/01/few-shot-learning%E7%9A%84%E4%B8%80%E4%BA%9B%E7%AE%80%E5%8D%95%E7%AC%94%E8%AE%B0%EF%BC%88%E4%B8%80%EF%BC%89/

  • episode:每一個episode便是訓練一次,類似於傳統訓練方法里的一個batch,然后這個episode內部由兩部分構成:support set和query set
  • support set:在構建這個episode時候,會從全量數據中每個episode都隨機選擇一些類別,比如C個類別,然后從數據集中同樣隨機從這選定的C個類別中選取同樣數量的K個樣本,這便構成了support set,總共包含C * K個樣本。一般而言模型會在這個上面進行一次訓練。這樣構造出來的任務便是C-way K-shot
  • query set: 和support set類似,會在剩下的數據集樣本中的C個類(注意這里的類別是從對應的spport set類別選擇)采樣一些樣本作為query set,一般而言,模型在support set進行一次訓練后,會在query set上求得loss
  • task:一個episode包含一個support set和一個query set,一個episode對應的便是讓模型在support set上進行學習后能夠在query set上有比較好的預測表現。因此一個episode便對應為一個task

episode、support set、query set、task這些基礎概念在在meta trainig set和meta testset都存在:

  • meta trainig set: 通常而言,根據訓練數據的規模大小,可以構建出來多個訓練的episode,這些episode便可以稱為meta-training set
  • meta test set: 因為在meta training set的若干個task(也就是若干個episode)上已經訓練好了一個模型,那么希望模型在一些新的task上也能有比較好的表現。因此,meta test set在數據構成上和meta training set完全一致,也包含了support set和query set,基本思想就是希望模型能夠基於新任務下的support set,迅速抓住問題的本質,從而能夠快速在meta test set中的query set上取得比較好的效果。

總體而言,這種類型的meta-learning,其基本單元是一個task,或者是一個episode,和普通的訓練方法需要進行區分。下圖便是一個5-way 1-shot的圖片分類問題,每一行便是一個task,也是訓練的episode,在support set中有5個類,每個類有1個樣本,在test set有兩個類(test set的類別須是對應的training set的子集),每個類一個樣本。在測試模型訓練效果的時候,便是希望模型能夠在meta test set中的task上也能夠取得比較好的效果。
image.png


免責聲明!

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



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