傳統上,開發機器學習系統需要收集大量的資料,並對其進行ML演算法訓練以產生結果。然而、
- 收集、標記和驗證大資料是很昂貴的。一個機器學習專案的成本可能高達85,000美元。
- 有很多情況下,企業無法獲得大型資料集,必須依靠少數例子來產生結果。例如,罕見的疾病,不會有大量的放射學影象。或者,如果智慧手機需要有數以千計的使用者照片來識別他們並獲得解鎖,這將是令人沮喪的。
小樣本學習是機器學習中的一個熱門話題,模型根據少數訓練例項進行預測。在這篇文章中,我們將探討小樣本學習如何工作,它的應用和方法。
什麼是小樣本學習(FSL)?
小樣本學習(FSL),在少數資料中也被稱為低量學習(LSL),是一種機器學習方法,訓練資料集包含有限的資訊。
機器學習應用的通常做法是提供模型所能接受的儘可能多的資料。這是因為在大多數機器學習應用中,提供更多的資料可以使模型預測得更好。然而,少數幾個鏡頭的學習旨在用較少的訓練資料建立準確的機器學習模型。
小樣本學習演算法加上以資料為中心的模型開發方法可以幫助公司減少資料分析/機器學習(ML)成本,因為輸入資料量是決定資源成本(如時間和計算)的一個重要因素。
為什麼它很重要?
- 像人類一樣學習的測試基地:人類在看到幾個例子後就能發現手寫字元的不同。然而,計算機需要大量的資料來對他們 “看到” 的東西進行分類,並發現手寫字元之間的差異。寥寥無幾的學習是一個測試基礎,希望計算機能像人類一樣從少數例子中學習。
- 為罕見的情況學習:通過使用小樣本學習,機器可以學習罕見情況。例如,在對動物的影象進行分類時,用少量的學習技術訓練的機器學習模型在接觸到少量的先驗資訊後可以對一個稀有物種的影象進行正確分類。
- 減少資料收集工作和計算成本:由於少數照片學習需要較少的資料來訓練模型,因此與資料收集和標記有關的高成本被消除了。低量的訓練資料意味著訓練資料集的低維度,這可以大大降低計算成本。
小樣本學習的應用有哪些?
1. 計算機視覺:計算機視覺探討了計算機如何從數字影象或視訊中獲得高水平的理解。小樣本學習主要用於計算機視覺,以處理以下問題:
- 字元識別(NIPS)
- 影象分類(ICML)
- 物體識別(NIPS*, ECCV)
- 手勢識別(牛津)。
- 其他與物體有關的應用
物件跟蹤(NIPS**)。
部件標籤(IEEE) - 其他影象應用:
影象檢索(NIPS***)
影象生成(NIPS****)
影象說明(計算機協會)。
場景位置識別(IEEE*)。
三維物體的形狀檢視重建(ICLR) - 視訊應用
視訊分類(ECCV*)。
運動預測(ECCV**)。
動作定位(IEEE**)
人員重新識別(IEEE***)。
事件檢測(英國機器視覺會議)
2. 自然語言處理(NLP):小樣本學習使自然語言處理(NLP)應用程式能夠用少量的文字資料例項完成任務。這些任務可以列舉如下:
- 翻譯(ICLR*)。
- 句子完成(谷歌)
- 短篇評論的情感分類(NAACL)
- 對話系統的使用者意圖分類(IBM研究)。
- 犯罪指控預測,研究中使用的程式碼在Github上共享。(Association for Computer Linguistics)
- 詞彙相似性任務(如nonce定義)(計算機語言學協會*)。
- 文字分類 (Association for Computer Linguistics**)
3. 音訊處理:含有語音/聲音資訊的資料可以通過聲學訊號處理進行分析,小樣本學習可以實現以下任務的部署:
4. 機器人技術:為了使機器人的行為更像人類,它們應該能夠從少數示範中概括出資訊。因此,在訓練機器人完成某些任務的過程中,少數幾個鏡頭的學習起著關鍵作用,例如:
- 通過模仿單個示範來學習動作(IEEE****)
- 從少數示範中學習操縱動作(IEEE*****)
- 視覺導航(PMLR)
- 連續控制(NIPS*****)
5. 醫療保健:
6. 其他應用:
它是如何工作的?
Source: Borealis.ai
小樣本學習(FSL)可以被認為是一個元學習問題,在這個問題上,模型會學習如何學習解決給定的問題。
讓我們以一個影象分類問題為例:
- 該模型被送入一些不同類別的示例影象(被稱為N-way-K-shot分類),並通過不同的影象反覆解決這個任務。
- 例如,上面的圖片顯示了一個3-way-2-shot分類問題,每個任務涉及支援集中3種不同動物的2張圖片,模型試圖對查詢集中的圖片進行分類。
- 該模型通過每個不相關的任務提高其將動物分類到正確類別的準確性。
- 然後在一組不同的分類任務中測試該模型的效能。
小樣本學習和零樣本學習之間有什麼區別?
小樣板學習的目的是讓ML模型在訓練資料集中有少量例項的情況下預測出正確的類別。零樣本學習的目的是預測正確的類別,而不需要在訓練資料集中接觸任何屬於該類別的例項。零樣本學習和小樣本學習有相互的應用,例如:
- 影象分類
- 語義分割
- 影象生成
- 物件檢測
- 自然語言處理
最後是單次學習,它經常與零樣本學習混在一起。單次學習是一種特殊的小樣本學習問題,其目的是從一個訓練樣本/影象中學習有關物體類別的資訊。智慧手機使用的人臉識別技術就是一個單次學習問題的例子。
小樣本學習的不同方法是什麼?
關於相似性的先驗知識:ML模型在訓練資料中學習模式,這些模式傾向於分離不同的類別,即使它們是未見過的。傳統的ML模型不能區分訓練資料集中不存在的類,而小樣本學習技術使ML模型能夠區分訓練資料中不存在的兩個類,在某些應用中,它們甚至可以區分兩個以上的未見過的類:
辨別兩個未見過的類別:
辨別多個未見過的類別:
關於學習的先驗知識:ML模型使用先驗知識來約束學習演算法,以選擇能從少數例子中很好概括的引數。
在小樣本學習中用於超引數調整的技術有:
學習更新規則也可以鼓勵小資料集的良好表現:
序列方法取整個資料集和測試例項,預測測試標籤的值:
資料的先驗知識:ML模型利用關於資料結構和變異性的先驗知識,這使得從少數例子中構建可行的模型。
生成模型可以為資料類別的家族構建:
訓練集的新例子可以被合成:
它是如何在Python中實現的?
目前有幾個開源的機率學習專案。為了實現小樣本學習專案,使用者可以參考以下Python中的庫/儲存庫:
- Pytorch – Torchmeta:一個既能解決機率分類問題又能解決迴歸問題的庫,它可以方便地在多個問題上進行基準測試,並具有可重複性。
- FewRel:一個大規模的機率關係提取資料集,它包含一百多個關係和大量不同領域的註釋例項。
- Meta Transfer Learning:這個資源庫包含了TensorFlow和PyTorch實現的Meta-Transfer Learning for Few-Shot Learning。
- Few Shot:該資源庫包含乾淨的、可讀的和經過測試的程式碼,用於重現機率學習研究。
- Few-Shot Object Detection(FsDet):包含官方的簡單小樣本物件檢測的實現。
- Omniglot資料集上的原型網路(Prototypical Networks):在Pytorch的一個筆記本上實現 “用於小樣本學習的原型網路”。
ML的未來
IBM的研究表明,ML在未來將圍繞以下幾個部分進行發展:
- 經典ML:一次處理一個資料集的問題,一個任務和一個重度訓練。
- 小樣本ML:處理大量的離線訓練,然後在類似的任務上輕鬆學習
- 發展中的ML:對各種任務進行持續的終身學習
評論留言