災難性遺忘 是什麼?

Catastrophic Forgetting:災難性遺忘 的完整解釋

神經網路在學習新知識時快速遺忘舊知識的現象,導致之前習得的能力消失。

核心概念

災難性遺忘(Catastrophic Forgetting)是指神經網路在學習新任務時,之前習得的知識被快速覆蓋導致性能急劇下降的現象。這是持續學習和終身學習中最重要的障礙。

遺忘的根本原因是神經網路的參數共享。不同任務的知識編碼在同一組權重中。當優化新任務時,梯度下降調整參數以最小化新任務損失,但這些參數改變恰好破壞了對舊任務重要的特徵表示。這是一個基本的優化衝突:同一參數集無法同時最優化不同任務。

與人類記憶不同,深度網路的遺忘是非線性的。訓練初期新舊任務可能兼容,但超過某個臨界點後,舊知識會遭到毀滅性破壞。這種臨界現象使災難性遺忘特別難以預測和控制。

運作原理

數學視角

設第 t 個任務的損失函數為 L_t(θ),其中 θ 是模型參數。訓練任務 1 時,參數達到 θ*_1。訓練任務 2 時用梯度下降更新參數:

θ' = θ*_1 - α∇L_2(θ*_1)

如果 L_1(θ') 遠大於 L_1(θ*_1),就發生了災難性遺忘。這表示∇L_2 的方向與保持 L_1 最優不相容。

在高維參數空間中,兩個不同的損失函數的最優點通常位於完全不同的方向。任務 2 的梯度更新會沿著新方向走,離開任務 1 的最優點。

在深層網路中的表現

  • 早層特徵衝突:早層學到的通用特徵(如邊緣檢測、色彩表示)可能被新任務的優化快速改變
  • 後層任務特異性:後層的任務特異特徵(如分類頭)會被新任務完全覆蓋
  • 隱藏層激活變化:中間層的神經元激活模式改變,導致從早層特徵到任務輸出的映射完全改變

遺忘的類型

向前遺忘(Backward Forgetting)

學習新任務時忘記舊任務。這是最常見的災難性遺忘形式。

向後遺忘(Forward Forgetting)

在某些方法(如動態擴展網路)中,舊任務可能干擾新任務的學習。不過這不是傳統的「遺忘」。

實際應用中的災難性遺忘

推薦系統的實例

推薦模型初期用某個商品類別的用戶交互資料訓練(如服裝),效能達 90%。加入新類別(如電子產品)的資料後,簡單微調導致服裝推薦準確率跌至 20%,完全遺忘了舊知識。

自駕車的危險

自駕車在某個城市訓練後性能優異。部署到新城市時,為適應新的交通規則進行微調,舊城市的駕駛能力迅速衰退,導致安全隱患。

醫療 AI 的失敗案例

醫療診斷模型初期在常見疾病上表現良好。為診斷新發現的疾病進行訓練,導致對常見疾病的診斷能力崩潰,臨床無法使用。

常見誤區

  • 誤認為災難性遺忘只影響深度學習:淺層模型也會遺忘,只是現象沒那麼劇烈
  • 認為增加訓練資料可解決遺忘:如果不改變優化方法,更多資料只會加重遺忘
  • 混淆遺忘與欠擬合:遺忘是參數被新任務優化破壞;欠擬合是模型容量不足
  • 假設小學習率能防止遺忘:小學習率只能延緩遺忘,無法根除,新任務學習也會變慢

與相關技術的比較

  • 災難性遺忘 vs 過擬合:過擬合是對訓練資料的過度適應;遺忘是參數空間的衝突導致舊知識覆蓋
  • 遺忘 vs 負遷移:負遷移是新舊任務互相干擾,導致聯合效能下降;遺忘特指舊任務性能崩潰
  • 遺忘 vs 領域漂移:領域漂移是訓練與測試分佈不同;遺忘是參數更新破壞舊知識編碼
  • 防遺忘 vs 多任務學習:多任務同時訓練可減少衝突;序列訓練必須主動防遺忘

常見問題