樣本量極少如何機器學習?最新Few-Shot Learning綜述

極市導讀
?本文首先介紹了用小樣本訓練模型會導致的問題,再介紹了Few-Shot Learning的基本原理即三大思路下的方法:增多訓練數(shù)據(jù),縮小模型需要搜索的空間,優(yōu)化搜索最優(yōu)模型的過程。>>加入極市CV技術交流群,走在計算機視覺的最前沿
1. 樣本量極少可以訓練機器學習模型嗎?
在訓練樣本極少的情況下(幾百個、幾十個甚至幾個樣本),現(xiàn)有的機器學習和深度學習模型普遍無法取得良好的樣本外表現(xiàn),用小樣本訓練的模型很容易陷入對小樣本的過擬合以及對目標任務的欠擬合。但基于小樣本的模型訓練又在工業(yè)界有著廣泛的需求(單用戶人臉和聲紋識別、藥物研發(fā)、推薦冷啟動、欺詐識別等樣本規(guī)模小或數(shù)據(jù)收集成本高的場景),F(xiàn)ew-Shot Learning(小樣本學習)通過將有限的監(jiān)督信息(小樣本)與先驗知識(無標記或弱標記樣本、其他數(shù)據(jù)集和標簽、其他模型等)結合,使得模型可以有效的學習小樣本中的信息。
本文的主要內(nèi)容來自下面兩篇Few-shot Learning的文獻綜述,結合筆者的理解對原paper進行了概括和總結,既作為自己的閱讀筆記,也作為比原文更通俗簡潔的快餐讀物獻給初次涉獵Few-shot Learning領域的讀者們。
2020年香港科技大學和第四范式的paper“Generalizing from a Few Examples: A Survey on Few-Shot Learning“,YAQING WANG, QUANMING YAO, JAMES T. KWOK,LIONEL M. NI 2020年清華和滴滴的paper "Learning from Very Few Samples: A Survey", Jiang Lu, Pinghua Gong, Jieping Ye, Jianwei Zhang, Changshui Zhang
在介紹Few-Shot Learning的基本原理之前,首先需要知道用小樣本訓練模型究竟會導致什么問題。機器學習的目標就是盡可能降低模型結果與真實結果的誤差,而這個誤差可以進一步分解成兩部分:
approximation error:基于現(xiàn)有的特征和算法能訓練的最優(yōu)模型h*能達到的表現(xiàn),跟理論上最優(yōu)模型h^的表現(xiàn)的差距 estimation error:實際訓練的模型h_I的表現(xiàn)與基于現(xiàn)有的特征和算法能訓練的最優(yōu)模型h*能達到的表現(xiàn)的差距;
在小樣本任務中,用小樣本訓練的模型很容易陷入對小樣本的過擬合以及對目標任務的欠擬合,導致實際訓練的模型h_I的表現(xiàn)與基于現(xiàn)有的特征和算法能訓練的最優(yōu)模型h*能達到的表現(xiàn)的差距無法通過訓練和超參數(shù)調(diào)整有效的縮小,使模型的整體表現(xiàn)較差(基于足量樣本訓練的模型和基于小樣本訓練的模型分別見fig. 1的a和b)。

根據(jù)機器學習模型在小樣本上難以學習的原因,F(xiàn)ew-Shot Learning從三個角度解決問題,(1)通過增多訓練數(shù)據(jù)提升h_I(Data)、(2)縮小模型需要搜索的空間(Model)、以及(3)優(yōu)化搜索最優(yōu)模型的過程(Algorithm)。

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

