Skip to content

面向標註的主動學習

主動學習是什麼、何時有用,以及 Potato 支援的查詢策略(不確定性、多樣性、BADGE、BALD),幫助你用更少的標註獲得同等的模型品質。

主動學習決定接下來標註哪些條目,從而讓模型用遠更少的標籤達到相同的準確率。它不再隨機標註,而是優先標註模型認為最有資訊量的條目。 當標註成為瓶頸時,這是回報最高的技術之一。

背景知識參見主動學習。功能參考請見主動學習

這個迴圈

  1. 標註一小批種子資料。
  2. 用現有資料訓練一個快速模型。
  3. 給未標註池中的條目打分,挑出最有資訊量的那些。
  4. 標註它們,加入資料集,重新訓練。如此往復。

它帶來的回報是資料效率:模型把你的標註預算花在它能學到最多的地方。

Potato 支援的查詢策略

  • 不確定性取樣:挑選模型最沒把握的條目(靠近決策邊界)。最簡單、且往往有效的預設選擇。
  • 多樣性取樣:挑選彼此差異較大的條目,避免把預算浪費在近乎重複的內容上。
  • BADGE:利用梯度嵌入,將不確定性與多樣性結合起來。
  • BALD:貝葉斯策略,選擇預期最能降低模型不確定性的條目。
  • 混合:融合多種策略。
yaml
active_learning:
  enabled: true
  schema_names: [sentiment]
  query_strategy: uncertainty   # or diversity, badge, bald, hybrid
  min_instances_for_training: 20

主動學習何時有用,何時無用

當標註成本高、資料池很大,且用一小批種子資料就能訓出有用的模型時,它就有用。在以下情況下,它的作用較小

  • 任務太簡單,隨機標註很快就能讓效果飽和。
  • 你需要一個無偏的留出測試集——評估資料要保持隨機抽樣,因為主動學習選出的資料是刻意偏斜的。
  • 相對於工程投入而言,標註成本本就很低。

延伸閱讀