泛化退化與負遷移

過去連假都會讀點書,不過現在有 AI 之後,讀書有點不夠看了。這次是做實驗並和幾個 AI 對話。當然,也可以叫 AI 互相對話。不過自己就會像個白癡一樣,只能看著他們熱烈討論。所以硬是要加一點自己的意見進去,此時 AI 頂多懷疑有個笨 AI 加入討論,不至於影響主人的威信~~~ 以下記錄其中一點收穫。

假如訓練一個模型時,改變了某個條件,得出變壞的結果。這時候我們可以懷疑就是那個 “條件" 造成的,我們小時候都學過控制變因嘛,事出必有因。但是原因可能不只一個:

後期泛化退化 (Late-stage generalization degradation) 與負遷移 (Negative transfer) 都能夠讓模型表現變差,但兩者不互斥,可能同時發生。

泛化退化是指發生了過擬合、資料片面有偏差、過度最佳化目標…等等狀況,使得我們對模型訓練愈兇、數字愈漂亮,對於沒看過的測試集表現更差。例如:

假設使用同一類數學推理資料持續訓練:

評估項目中期 checkpoint後期 checkpoint
訓練題表現85%95%
未見過的推理題80%72%

負遷移則是原本訓練任務 A 的 model,再拿去訓練任務 B,導致任務 B 的能力不如沒學過任務 A 的版本。簡單可記憶為 “孟母三遷"。孟母擔心孩子先學了 “哭墓"、"講價" 技能,對孟子未來的 “成聖" 技能會有影響,所以要搬三次家到熱門學區,預先避免負作用而遷移。

這個又和災難性遺忘很像。 假設模型先學 A:工具操作,再學 B:數學推理。看到 A 變壞是災難性遺忘,看到 B 變不好是負遷移 (和泛化退化都看任務 B 就對了)。

觀察判斷比較基準
學 B 後,原本的 A 成功率從 90% 降到 40%災難性遺忘同一模型學 B 前後的 A 表現
先學 A 再學 B,B 成功率只有 70%;直接學 B 可達 85%A 對 B 的負遷移有 / 沒有先學 A 的 B 表現
A 大幅退化,而且 B 也比直接學 B 更差兩者同時發生同時滿足以上兩種比較

原本已經變明朗的定義,再往下看會變模糊 (>_<)。假設上面的負遷移是狹義的 A 影響 B (前向遷移),那麼廣義的遷移也包含 B 影響 A (後向遷移),這就和 “災難性遺忘" 同樣是看任務 A 的表現了,只差在夠不夠災難,這個閥值沒有現成定義。

總之,狹義負遷移比較好記,同樣看任務 B,也回歸到當初和泛化退化比較的起點。