面向標註的主動學習
主動學習是什麼、何時有用,以及 Potato 支援的查詢策略(不確定性、多樣性、BADGE、BALD),幫助你用更少的標註獲得同等的模型品質。
主動學習決定接下來標註哪些條目,從而讓模型用遠更少的標籤達到相同的準確率。它不再隨機標註,而是優先標註模型認為最有資訊量的條目。 當標註成為瓶頸時,這是回報最高的技術之一。
這個迴圈
- 標註一小批種子資料。
- 用現有資料訓練一個快速模型。
- 給未標註池中的條目打分,挑出最有資訊量的那些。
- 標註它們,加入資料集,重新訓練。如此往復。
它帶來的回報是資料效率:模型把你的標註預算花在它能學到最多的地方。
Potato 支援的查詢策略
- 不確定性取樣:挑選模型最沒把握的條目(靠近決策邊界)。最簡單、且往往有效的預設選擇。
- 多樣性取樣:挑選彼此差異較大的條目,避免把預算浪費在近乎重複的內容上。
- BADGE:利用梯度嵌入,將不確定性與多樣性結合起來。
- BALD:貝葉斯策略,選擇預期最能降低模型不確定性的條目。
- 混合:融合多種策略。
yaml
active_learning:
enabled: true
schema_names: [sentiment]
query_strategy: uncertainty # or diversity, badge, bald, hybrid
min_instances_for_training: 20主動學習何時有用,何時無用
當標註成本高、資料池很大,且用一小批種子資料就能訓出有用的模型時,它就有用。在以下情況下,它的作用較小:
- 任務太簡單,隨機標註很快就能讓效果飽和。
- 你需要一個無偏的留出測試集——評估資料要保持隨機抽樣,因為主動學習選出的資料是刻意偏斜的。
- 相對於工程投入而言,標註成本本就很低。