這系列是關於 Few-Shot Learning,主要因為我最近在一個影像分類專案中遇到了資料稀缺的狀況。在尋找解決方案時,survey 了許多關於 Few-Shot Learning 的知識,並想在這裡紀錄與分享學習內容。由於專案的關係需要快速 implement,所以文章將主要集中在實作的部分。如果你對這個主題感興趣,歡迎繼續閱讀~那我們開始囉!
Few-Shot Learning 是一種機器學習方法,它使模型能夠從非常少量的訓練數據中學習並作出有效的預測或分類。
我們已知 Few shot 擅長用在 small data(這裡的 small data 是與 big data 相比),所以首先先探討 small data 的應用價值有哪些:
Few-Shot Learning的主要目標是利用有限的數據(source data)快速學習,並能適應從未見過的新任務。
為了達成目標,N-way-K-shot 是一個核心的實作與評估框架。
了解這些實作和評估方法的重要性後,我們自然會好奇這些方法相比於傳統的大數據訓練模型會有何不同。
根據Google Meta dataset的研究,當進行 Few-Shot Learning 的 N-way-K-shot 實驗時發現:
從這些觀察可以推論:當資料不足時,N-way-K-shot 提供了一種有效的數據利用和學習方法。因此,在數據有限的情況下,適當選擇「N」和「K」的值,可以最大化學習效率和效果。而當資料充足時,使用大數據訓練模型通常能達到更好的效果。
Few-Shot Learning 之所以能有效進行學習,關鍵在於它不僅學習特定的任務,還學習如何更好地學習。在探討之前,我們先了解為什麼傳統機器學習不適合小數據應用:
Few-Shot Learning的策略
Few-Shot Learning採用了關鍵策略克服這些挑戰,主要通過以下兩種面向:
2. 學習調整學習率:
因為這樣的關鍵核心技術,才使得 few shot learning 在處理小數據具備能力,且能特別快速適應新環境。
這篇篇幅稍微比較短一些,內容主要參考與整理來自: 小資料系列初篇-Few-Shot Learning簡介,擷取當中重點並且重新架構,僅保留與本主題有關的部分,那下一篇會使用資料集做一個簡單的實作,預計這系列三到五篇。
我們下次見~
附上在 Heptabase 白板整理的 snapshot (一起紀錄白板的成長過程?)
有需要的話~ 🎁 Heptabase 折扣碼:https://join.heptabase.com?invite-acc-id=889dbd70-632c-446d-b7f8-ffa41b27e716