課程學習 是什麼?

Curriculum Learning:課程學習 的完整解釋

系統從簡單任務開始,逐步學習難度遞增的任務,提升效率和收斂性。

核心概念

課程學習(Curriculum Learning)源自人類教育直覺。傳統機器學習假設訓練資料順序無關緊要,隨機採樣訓練。但心理學和教育學都証實,學習順序對效率至關重要。先掌握基礎,再建構複雜知識,學習效率最高。

課程學習的核心假設是:模型的學習能力是漸進式的。初期模型容量有限,無法處理複雜樣本,應專注於簡單樣本以快速建立基礎表示。隨著訓練進行,模型參數和特徵表示逐漸成熟,能處理更複雜的樣本。按難度排序訓練可以最大化這一漸進過程。

運作原理

難度定義

難度沒有固定定義,需根據應用自定義:

樣本難度

  • 邊界樣本(靠近決策邊界的點)比核心樣本難
  • 稀有類別樣本比常見類別難
  • 標籤噪聲的樣本比清潔樣本難

任務難度

  • 少樣本任務比多樣本難
  • 視覺上變化多的物體比單一物體難
  • 多域任務比單域任務難

自度量(Self-paced Learning)

  • 不用人工定義難度,而是模型自動選擇當前容易預測的樣本
  • 隨著訓練進行,模型信心提高,逐漸納入更難的樣本

課程設計

預定課程

  • 人工設計固定的難度遞增序列
  • 如先訓練大物體識別,再訓練小物體
  • 優點:簡單透明;缺點:需人工知識

自適應課程

  • 根據模型訓練進度動態調整難度
  • 若模型快速收斂,加速難度增加
  • 若模型平坦,維持當前難度
  • 需要自適應機制監控模型進度

多維課程

  • 不同維度獨立設置難度遞增
  • 如同時在視角難度和光線難度維度遞增
  • 更靈活,但設計複雜

實現方式

樣本選擇

  • 每個 epoch 根據難度選擇樣本子集訓練
  • 簡單階段用簡單樣本,後期用全部樣本

樣本加權

  • 損失函數中加上難度權重
  • 簡單樣本權重高,難樣本權重低
  • 隨著訓練進行逐漸調整權重

多任務課程

  • 對多任務學習設計任務順序
  • 如先學通用任務,再學特異性任務
  • 任務間知識可被後續任務利用

實際應用

物體檢測

訓練物體檢測器時,先用大物體影像(容易檢測),再加入小物體。再進階到遮擋物體、多物體場景。這種遞增式課程使模型先習得基本檢測能力,再學習複雜場景。效果顯著優於隨機訓練。

機器翻譯

訓練翻譯模型時,先用簡單句子(短、詞彙少),再過渡到複雜句子。這加速了模型對基本語法的學習,後期更容易處理複雜結構。

強化學習遊戲 AI

在遊戲中訓練智能體時,先設置簡單環境(敵人弱、地圖小),逐漸增加難度。AlphaGo 的訓練用課程學習:先自對弈學基本棋型,再與人類高手對弈,再與更強版本自己對弈。

醫療影像分類

訓練診斷模型時,先用清晰、無噪聲的影像(易診斷的病例),再加入低品質影像和邊界病例。這確保模型先建立可靠的診斷基礎,再學習處理困難情況。

常見誤區

  • 課程學習等同於數據排序:課程學習考慮的是策略性排序,不只是簡單的排序
  • 課程越緩越好:課程進度太緩會導致訓練緩慢;太快又無法充分學習簡單任務。需平衡
  • 難度定義應該客觀:難度高度依任務而定。同一樣本對不同模型可能難度完全不同
  • 課程學習只適合監督學習:課程概念也適用於強化學習、無監督學習等

與相關技術的比較

  • 課程學習 vs 數據增強:增強在訓練期間應用;課程是訓練資料的組織方式
  • 課程學習 vs 難例挖掘:難例挖掘專注困難樣本;課程學習是階段化的漸進訓練
  • 課程學習 vs 自監督學習:自監督學習不需標籤;課程學習對有標籤資料的順序優化
  • 課程學習 vs 元學習:元學習學習過程;課程學習設計訓練序列

常見問題