本文首先介紹了用小樣本訓練模型會導致的問題,再介紹了Few-Shot Learning的基本原理即三大思路下的方法:增多訓練數據,縮小模型需要搜索的空間,優化搜索最優模型的過程。
1. 樣本量極少可以訓練機器學習模型嗎?
在訓練樣本極少的情況下(幾百個、幾十個甚至幾個樣本),現有的機器學習和深度學習模型普遍無法取得良好的樣本外表現,用小樣本訓練的模型很容易陷入對小樣本的過擬合以及對目標任務的欠擬合。但基于小樣本的模型訓練又在工業界有著廣泛的需求(單用戶人臉和聲紋識別、藥物研發、推薦冷啟動、欺詐識別等樣本規模小或數據收集成本高的場景),Few-Shot Learning(小樣本學習)通過將有限的監督信息(小樣本)與先驗知識(無標記或弱標記樣本、其他數據集和標簽、其他模型等)結合,使得模型可以有效的學習小樣本中的信息。
在介紹Few-Shot Learning的基本原理之前,首先需要知道用小樣本訓練模型究竟會導致什么問題。機器學習的目標就是盡可能降低模型結果與真實結果的誤差,而這個誤差可以進一步分解成兩部分:
approximation error:基于現有的特征和算法能訓練的最優模型h*能達到的表現,跟理論上最優模型h^的表現的差距
estimation error:實際訓練的模型h_I的表現與基于現有的特征和算法能訓練的最優模型h*能達到的表現的差距;
在小樣本任務中,用小樣本訓練的模型很容易陷入對小樣本的過擬合以及對目標任務的欠擬合,導致實際訓練的模型h_I的表現與基于現有的特征和算法能訓練的最優模型h*能達到的表現的差距無法通過訓練和超參數調整有效的縮小,使模型的整體表現較差。
根據機器學習模型在小樣本上難以學習的原因,Few-Shot Learning從三個角度解決問題,(1)通過增多訓練數據提升h_I(Data)、(2)縮小模型需要搜索的空間(Model)、以及(3)優化搜索最優模型的過程(Algorithm)。
2. 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. 動物物種和狗的種類,以及如何避免元學習時不同任務對參數的影響的相互中和)。
責任編輯:lq6
-
機器學習
+關注
關注
66文章
8438瀏覽量
133082
原文標題:樣本量極少如何機器學習?最新Few-Shot Learning綜述
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論