你有沒有想過,模型可不可以一邊學新東西,一邊保留舊知識?
你可以把持續學習想成「不斷上新課,但不忘舊課」:模型接到新任務時,還能記得之前學過的內容。
它很重要,因為真實世界的資料一直變,新任務一來就把舊知識洗掉,模型就會越學越短命,尤其在產品一直擴充新功能時特別明顯。
容易混淆
持續學習 vs 傳統重訓 vs 線上學習
持續學習:學新任務時盡量保留舊知識
傳統重訓:常用新資料蓋掉舊能力
線上學習:資料到哪就學到哪,偏重即時更新
最關鍵的區別:持續學習最在意的是「不要忘記舊東西」。
記住這句就好
學新東西時,別把舊知識洗掉。
實際案例
語音助理更新
前:模型學會新口音後,反而聽不懂舊口音
後:用持續學習保住原有辨識能力,再慢慢吸收新資料
客服分類器擴充
前:新增一種產品線後,原本的分類準確率掉很多
後:用記憶回放或正則化方法保留舊類別能力
算法與應用
持續學習常用記憶回放、正則化、參數隔離與知識蒸餾等策略
它和災難性遺忘是對立面,研究重點就是想辦法在學新任務時保住舊能力
在產品裡,它很適合任務會逐步增加、類別會一直擴張的場景
情境判斷
Q1(直覺題): 模型學新分類後,舊分類能力還在,這比較像持續學習嗎?
→ 是,這正是它想達成的事。
Q2(判斷題): 只要每次都把全部歷史資料重訓一次,就等於持續學習嗎?
→ 不等於。那比較像重新訓練,不是針對保留舊知識設計的方法。
常見問題
持續學習和遷移學習一樣嗎?
不一樣,遷移學習偏向把舊知識搬到新任務,持續學習更在意新舊任務一起維持。
為什麼模型會忘記舊知識?
因為新資料更新時,梯度可能把舊參數推離原本有用的位置。
這適合哪些產品?
任何會不停加入新類別、新場景或新語言的系統都很適合。