【強基固本】樣本量極少如何機器學習?Few-Shot Learning概述

2021-03-02 人工智慧前沿講習

「強基固本,行穩致遠」,科學研究離不開理論基礎,人工智慧學科更是需要數學、物理、神經科學等基礎學科提供有力支撐,為了緊扣時代脈搏,我們推出「強基固本」專欄,講解AI領域的基礎知識,為你的科研學習提供助力,夯實理論基礎,提升原始創新能力,敬請關注。

地址:https://www.zhihu.com/people/zhang-lan-tian-53

01

樣本量極少可以訓練機器學習模型嗎?

在訓練樣本極少的情況下(幾百個、幾十個甚至幾個樣本),現有的機器學習和深度學習模型普遍無法取得良好的樣本外表現,用小樣本訓練的模型很容易陷入對小樣本的過擬合以及對目標任務的欠擬合。但基於小樣本的模型訓練又在工業界有著廣泛的需求(單用戶人臉和聲紋識別、藥物研發、推薦冷啟動、欺詐識別等樣本規模小或數據收集成本高的場景),Few-Shot Learning(小樣本學習)通過將有限的監督信息(小樣本)與先驗知識(無標記或弱標記樣本、其他數據集和標籤、其他模型等)結合,使得模型可以有效的學習小樣本中的信息。在介紹Few-Shot Learning的基本原理之前,首先需要知道用小樣本訓練模型究竟會導致什麼問題。機器學習的目標就是儘可能降低模型結果與真實結果的誤差,而這個誤差可以進一步分解成兩部分:approximation error:基於現有的特徵和算法能訓練的最優模型 能達到的表現,跟理論上最優模型 的表現的差距estimation error:實際訓練的模型的表現與基於現有的特徵和算法能訓練的最優模型 能達到的表現的差距;在小樣本任務中,用小樣本訓練的模型很容易陷入對小樣本的過擬合以及對目標任務的欠擬合,導致實際訓練的模型 的表現與基於現有的特徵和算法能訓練的最優模型 能達到的表現的差距無法通過訓練和超參數調整有效的縮小,使模型的整體表現較差(基於足量樣本訓練的模型和基於小樣本訓練的模型分別見fig. 1的a和b)。根據機器學習模型在小樣本上難以學習的原因,Few-Shot Learning從三個角度解決問題,(1)通過增多訓練數據提升 

02

Few-Shot Learning概述

下面將逐個介紹第一部分提到的Few-Shot Learning的三大思路下的方法。2.1 增多訓練數據通過prior knowledge增多訓練數據 (Experience),方法主要分為3類:(1)數據增強(Data Augmentation)類方法。較初級的數據增強方法是人工制定規則,包括對圖片樣本進行旋轉、翻轉、裁剪、增加噪音等操作,但此類方法不足以有效提升模型的泛化能力,規則的制定也依賴領域知識,通常難以做到在多個數據集之間通用;高階的數據增強方法利用其他數據集的信息生成更多目標class的樣本,通過模型(多為encoder-decoder結構)學習樣本內和樣本外的變化分布並生成新樣本,基於樣本外信息(有監督)的模型可以將圖片映射為的不同的天氣、景深、角度等,基於樣本內變化(無監督)的模型則學習其他class的樣本內部變化(如圖片的不同視角)並應用於目標的小樣本class上。數據增強類方法可與其他Few-Shot Learning方法同時使用,普遍用於計算機視覺場景,但部分高階方法有應用於其他場景的潛力。關於數據增強類方法的更多介紹和reference見2020年清華和滴滴的paper"Learning from Very Few Samples: A Survey"。(2)基於弱標記樣本或無標記樣本得到更多目標class樣本,主要包括半監督學習和主動學習兩類。半監督學習的典型例子是Positive-Unlabeled Learning,很多Two-step算法通過正樣本和無標記樣本訓練分類器,直接擴大正樣本規模、或利用分類器權重讓無標記樣本參與到正樣本的學習中;而主動學習選擇對模型訓練最「有用」的樣本進行標註。半監督學習和主動學習適合有大量無標記數據、但樣本標註成本較高的場景。(3)基於目標Class的小樣本數據訓練GAN,直接生成目標class的更多樣本。適用於僅有小樣本、無標記樣本很難收集的場景。2.2 縮小模型需要搜索的空間通過prior knowledge縮小模型需要搜索的空間(hypothesis space),多為meta-learning類方法。(1)Multi-task learning:用神經網絡同時學習多個任務,使一部分隱藏層關注跨任務的通用信息、一部分隱藏層關注特定任務的信息。在學習過程中,一個任務的模型參數被其他任務約束,即任務之間會有類似正則化的效果。分為直接在不同任務間共享部分隱藏層的參數的parameter sharing類方法,和懲罰不同任務的參數差異的parameter typing類方法。此類方法的缺點也很明顯,用於訓練的多個任務(包括目標的小樣本在內)若不夠相似(理想狀況下各個任務都屬於一個多分類任務)則會影響最終學習效果,且同時訓練多個任務的計算成本很高、速度很慢。詳細介紹和reference見2020年香港科技大學和第四範式的paper「Generalizing from a Few Examples: A Survey on Few-Shot Learning」。(2)Embedding learning:將樣本投影到更易區分不同class的低維空間,維度更低、特徵表示更容易區分不同class意味著模型需要搜索的空間更小。用於投影的embedding function通常從prior knowledge中學習,也可以利用目標class的小樣本的信息。Metric Learning和Meta-Learning中的Learn-to-Measure類算法均屬於這一類別,通過學習embedding function (訓練數據的f(x)和測試數據的g(x)),採用訓練樣本和測試樣本的embedding的相似度作為測試樣本屬於相應訓練樣本的class的概率,相似度可以採用相似度指標(Euclidean、Cosine等)或可學習的相似度模型(神經網絡)。此類算法的詳細介紹見2020年香港科技大學和第四範式的paper「Generalizing from a Few Examples: A Survey on Few-Shot Learning」的4.2和4.3.1。(3)Learning with external memory記憶網絡,常用於NLP場景和問答系統,從訓練數據中學習key-value pair作為一個個記憶,與embedding learning相似需要學習一個embedding function f,但需要計算相似度的是樣本的embedding f(x)和記憶庫裡的key,最相似的value作為該樣本的embedding(或取多個最相似的value的加權平均),隨後輸入一個簡單的分類器(e.g. softmax)。將query樣本的embedding限制為記憶庫裡的value極大的縮小了模型需要搜索的空間(hypothesis space),但為了學習和存儲記憶,此類方法通常需要較大的空間佔用和計算成本。(4)Generative Modeling藉助prior knowledge估計樣本概率分布p(x|y)和p(y),以latent variable的形式參與到小樣本任務的訓練中,縮小模型需要搜索的空間(hypothesis space)。latent variable可以有三種表現形式,decomposable components(例如人臉識別場景中的鼻子、眼睛、嘴)、group-wise shared prior(小樣本任務可能與其他任務相似,那麼其他任務的概率分布就可以作為小樣本任務的先驗概率)、parameters of inference networks(基於大規模數據集訓練推斷網絡並直接用於小樣本任務,基於VAE和GAN的居多),詳細reference見2020年香港科技大學和第四範式的paper「Generalizing from a Few Examples: A Survey on Few-Shot Learning」的4.4.3。2.3 優化搜索最優模型的過程通過prior knowledge優化在hypothesis space中搜索最優模型的過程(即模型訓練過程)。包括refine existing parameters(遷移學習)、refine meta-learned parameters(Meta-Learning中的Learn to fine-tune和learn to parameterize均屬於這個類別,藉助meta-learner幫助base learner更快的收斂)、learn the optimizer(訓練meta-learner指導梯度下降的方向和步長)。此類方法可以極大加快搜索最優模型的過程,但存在為了速度犧牲精度的成分、且受元學習領域常見的難題的影響較大(例如如何在不同粒度的任務間元學習 e.g. 動物物種和狗的種類,以及如何避免元學習時不同任務對參數的影響的相互中和)。

本文目的在於學術交流,並不代表本公眾號贊同其觀點或對其內容真實性負責,版權歸原作者所有,如有侵權請告知刪除。

分享、點讚、在看,給個三連擊唄!

相關焦點

  • 小樣本學習(Few-shot Learning)綜述
    few-shot learning framework。圖 1 展示的是一個 2-way 5-shot 的示例,可以看到 meta training 階段構建了一系列 meta-task 來讓模型學習如何根據 support set 預測 batch set 中的樣本的標籤;meta testing 階段的輸入數據的形式與訓練階段一致(2-way 5-shot),但是會在全新的類別上構建 support set 和
  • 【NLP筆記】Few-shot learning 少樣本學習
    learning,這裡shot 有計量的意思,指少樣本學習,機器學習模型在學習了一定類別的大量數據後,對於新的類別,只需要少量的樣本就能快速學習,對應的有one-shot learning, 一樣本學習,也算樣本少到為一的情況下的一種few-shot learning, 這裡的少樣本學習的研究領域與遷移學習有一大部分交集部分,即在源域有足夠多樣本,而在目標域樣本不足。
  • 從Few-shot Learning再次認識機器學習
    當我看完 《Generalizing from a few examples: A survey on few-shot learning》 這篇文章的時候,我對於機器學習又有了一種新的,與其說它讓我理解了什麼是Few-shot learning,不如說它讓我明白了如何更好地處理機器學習問題,不論是科研還是在實際應用當中(可以說是所有其它模型算法),都可以從文章指出的三個角度去考慮:數據、模型、算法
  • 最新小樣本學習Few-Shot Learning的四大Model方法
    例如:給定任務TcTc的few-shot數據DctrainDtrainc,DctrainDtrainc中樣本之間的所有成對排名都被枚舉為樣本對[130], 訓練樣本的數量因此增加,並且即使僅使用特定於任務的信息也可以學習嵌入函數。
  • Few-shot Learning用於個性化推薦冷啟動的探索
    本文作者吳岸城老師、謝小文老師,使用小樣本學習模型在內容個性化推薦案例上進行嘗試,通過對比模型效果,指出小樣本學習模型在樣本量比較匱乏的情況下,是優於一般模型的。即要求模型從 C*K 個數據中學會如何區分這 C 個類別,這樣的任務被稱為 C-way K-shot 問題。訓練過程中,每次訓練(episode)都會採樣得到不同 meta-task,所以總體來看,訓練包含了不同的類別組合,這種機制使得模型學會不同 meta-task 中的共性部分,像如何提取重要特徵及比較樣本相似等。
  • ICLR 2017 | Highlight 1: Meta- and Few-shot Learning
    剛剛參會回來的小S 經過多方學習,總結出了幾個專題,也是個人認為現在 ICLR 等 learning 和 DL 相關會議與學者比較關注的方向。首當其中可能就是比較 fancy 但其實很本質的 meta-learning 和 few-shot learning。
  • 【強基固本】深度強化學習(Deep Reinforcement Learning)入門
    「強基固本,行穩致遠」,科學研究離不開理論基礎,人工智慧學科更是需要數學、物理、神經科學等基礎學科提供有力支撐,為了緊扣時代脈搏,我們推出「強基固本
  • 聊聊zero-shot learning 和 one-shot learning
    首先來看一篇比較經典的zero-shot learning相關的paper (http://101.96.10.65/www.cs.cmu.edu/afs/cs/project/theo-73/www/papers/zero-shot-learning.pdf)。這篇paper是NIPS 2009中的一篇論文,作者來自CMU,Intel及多倫多大學。
  • VALSE Webinar 19-29期 舉一反三:小樣本學習新進展
    小樣本 vs 大樣本,多「小」才算小,多「大」才算大?什麼樣的case下,需要專門設計「小樣本」學習算法?小樣本學習在智能體學習過程中如何和不同樣本大小的數據融合?如何在數據積累中過渡到大樣本學習?2. 小樣本中引入知識來彌補數據不足是一個較為公認的趨勢,到底什麼算是「知識」?有哪些形式?目前真正管用/好用的「知識」是什麼?來自哪裡?3.
  • NeurIPS 2019 少樣本學習研究亮點全解析
    機器之心原創作者:Angulia Chao編輯:Joni Zhong少樣本學習(Few-Shot Learning)是近兩年來非常有研究潛力的一個子方向,由於深度學習在各學科交叉研究與商業場景都有比較普遍的應用,然而訓練出高精度模型的情況大部分來源於充足的訓練數據
  • AI challenger又發福利:零樣本學習算法大賽 and 零樣本數據集
    今年,AIC預熱賽零樣本學習(zero-shot learning)競賽即日起開始比賽。零樣本學習競賽同樣發布大規模圖像屬性數據集,包含78017張圖片、230個類別、359種屬性。與目前主流的用於zero-shot learning的數據集相比,圖片量更大、屬性更豐富、類別與ImageNet重合度更低。創新工場AI工程院運營副總裁吳卓浩表示,「人工智慧發展的必經之路之一是『教會』機器認識我們的世界,這也是為什麼有了網際網路發展過程中所積累下來的海量標註數據,才促成了最近這一波人工智慧技術和應用的突破。
  • 【深度神經網絡 One-shot Learning】孿生網絡少樣本精準分類
    很明顯,機器學習系統很希望擁有這種快速從少量樣本中去學習的能力,因為收集和標記數據是一個耗時費力的工作。而且,我認為這是通往通用人工智慧的漫漫長路中很重要的一步。最近湧現出來很多有趣的基於神經網絡的單樣本學習論文,它們已經得到了一些不錯的結果。這是一個讓我很激動的新領域,所以我想去對它做一個簡要介紹,來讓深度學習新手更好的認識它。
  • 【ICML2019】中科院自動化所-針對小樣本問題的學習生成匹配網絡方法
    ,在面對新的問題時,從少量的樣本(few-shot)中進行有效的學習。在現實中,隨著更多應用場景的湧現,我們也將必然面臨更多數據不足的問題,因此如何能夠讓機器像人類一樣能夠利用學習經驗,從少量數據中進行有效學習,成為了一個重要的研究方向。
  • 深度:機器如何模仿人類的學習方式?
    懶惰是人類社會進步的原動力,單點學習(One-Shot learning)的目標是不勞而獲。不同於傳統機器學習方法需要大量數據去學習和反覆的訓練,One-Shot 通過單一的訓練樣本去學習並做出準確的預測。然而,One-Shot learning 是一個永恆的挑戰。由於現有的機器學習模型參數量龐大,小樣本下很難在巨大的搜索空間中找到刻畫本質屬性的最優解。
  • 談談實現小樣本學習的兩條路徑
    所謂小樣本學習,就是使用遠小於深度學習所需要的數據樣本量, 達到接近甚至超越大數據深度學習的效果,也即是小樣本學習的本質就是學習的效果與數據比值的提升, 或者說單位數據產生的模型收益增大了 。也就是說, 實現小樣本學習的方法, 主要是 1, 如何讓給定模型具備相關任務的先驗知識, 2, 如何讓每個數據產生的學習效果更加一步到位。關於1,其實這也是人類可以小樣本學習的關鍵,所以我們就從人的認知力說,首先談談概念的學習和使用有關1的方法, 事實上很多, 我覺得如果讓對它們進行分類,就要對先驗知識的理解和表示進行分層。
  • CVPR 2019提前看:少樣本學習專題
    分類任務上的少樣本學習1.Edge-Labeling Graph Neural Network for Few-shot Learning(classification)paper: https://arxiv.org/abs/1905.01436code: https://github.com/khy0809/fewshot-egnn圖網絡(Graph Neural
  • 【CVPR 2020 Oral】小樣本類增量學習
    目前的類增量學習(CIL,class-incremental learning)研究往往提供了較為充足的帶標籤新類別樣本,而在諸如智能相冊等實際應用中,用戶可能只有興趣提供極少量有標籤的新類別樣本。因此研究小樣本深度類增量學習迫在眉睫。在本文中,我們著重研究這個面向實際應用但極具挑戰性的小樣本類增量連續學習(FSCIL,few-shot class-incremental learning)問題。
  • Few-Shot學習文獻閱讀(1)
    如何轉移:在一個大數據集上預訓練的一個強大的神經網絡D。事實上,從預訓練中學習的先驗知識繁榮了今天的深度學習時代,例如,視覺識別中的D = ImageNet, = ResNet [25,24];D = Wikipedia, = BERT自然語言處理[65,17]。
  • 離開了大數據深度學習怎麼辦? ——淺談小樣本學習
    人類具有這種只通過少量樣本或者是特徵描述就可以識別物體的能力,受人類的這種快速學習能力的啟發,研究人員希望機器學習也能夠只通過學習少量樣本就可以進行快速建模,對不同的類別進行區分,而且能在不改變模型參數的情況下,對新類別進行識別,這就是小樣本學習(few-shot learning)。
  • One-Shot Relational Learning for Knowledge Graphs-2
    論文地址https://arxiv.org/abs/1808.09040v1論文代碼https://github.com/xwhan/One-shot-Relational-Learning論文閱讀報告參考https://zhuanlan.zhihu.com/p/108202429https://zhuanlan.zhihu.com/p/59646318    上一篇文章已經簡單翻譯了一下論文,其中作者的主要工作有:1)構建了兩個數據集用於one shot