訓練 (Training) 時全答對,為什麼遇到新資料還是會錯?
前兩章用糖果收據說明:模型 (Model) 有一套計算方式,訓練 (Training) 會根據資料調整裡面的數值,讓預測更接近收據金額。
接著有一個問題:如果用來訓練的收據,每一張都算對了,是不是就代表模型已經學會計價,下一張也一定會算對?
不一定。答對看過的資料,和答對沒看過的資料,是兩件事。這章先看一個具體落差,再解釋我們要怎麼檢查。
三張都答對,還缺了什麼?
沿用上一章的假想價目:前四顆糖果各 5 元,第五顆起各 3 元。先只交給模型這三張收據:
| 顆數 | 收據金額 |
|---|---|
| 1 顆 | 5 元 |
| 2 顆 | 10 元 |
| 3 顆 | 15 元 |
這些收據裡,根本沒有第五顆。只看它們,我們能知道「買一到三顆時怎麼算」,卻還不能分辨多買幾顆後有沒有折扣。
例如兩套方式都能答對這三張:「每顆都 5 元」,以及「前四顆各 5 元,之後各 3 元」。但遇到 8 顆時,前者算出 40 元,後者算出 32 元。
所以,訓練時全答對,只能證明這套方式符合目前的材料;材料沒有涵蓋的情況,還需要另外檢查。
先用「只有小包」訓練,猜猜 8 顆和 10 顆是否也會算對,再查看留起來的收據。接著換成「包含大包」:同樣三張,改放一張 6 顆收據,結果如何?最後切換店家新價目,觀察模型有沒有跟著改變。手機可切換設定、學習與檢查面板。
新收據答對,才是在檢查能不能用到別處
活動第一組的三個候選方式,在小包收據上全部同分。程式依事先固定的順序,先選「第五顆起仍是 5 元」。它沒有從收據裡找到這個價格;只是目前資料分不出候選的差別。
把 2 顆收據換成 6 顆、26 元的收據後,情況就不同了。三個候選對 6 顆算出不同金額,程式因此能選出第五顆起 3 元的方式。這次不是因為收據「更多」——仍然只有三張——而是新材料提供了原先沒有的線索。
8 顆和 10 顆的收據沒有參與這次選擇。拿它們來比較,才能看到模型遇到另外的顆數時表現如何。
泛化 (Generalization) 指模型把學到的規律用到沒有參與訓練的新資料上。這裡的「新」不必是前所未見的任務:同一家店的另一包糖果,就可以是新例子。
活動只檢查兩張收據,不能據此說模型在所有顆數、所有商店都會成功。真實問題需要更多符合預期使用情境的例子,檢查不同情況下的表現。
另一種失準:事情本身變了
切到「第 5 顆起改成 2 元」後,即使模型剛才在原價的兩張新收據上都算對,這次也會出錯。
原因很直接:店家換了計價方式。模型仍使用先前選出的數值,所以預測沒跟著收據自動改變。看見檢查結果,和根據新材料重新訓練,是不同的動作。
現實裡,資料也可能隨時間或使用情境改變,例如拍照環境換了、顧客行為變了。用舊情境學到的規律,不保證適用於新情境。
也有模型太貼近訓練資料中的偶然細節,反而無法用到其他例子,這稱為過度擬合 (Overfitting)。例如只在固定背景下看過某種動物,可能把背景當成重要線索;換背景後就判錯。不過,新資料上出錯不一定都是過度擬合,也可能是資料缺少關鍵情況、計算方式不合適,或環境已經改變。本章活動主要示範前面的資料涵蓋與價目改變。
為什麼要把資料分開?
如果把所有收據都拿來調整模型,再用同一批收據檢查,我們仍然不知道:模型面對沒參與調整的資料會怎樣。
常見做法是預先保留不同用途的資料:
| 資料 | 用來做什麼? |
|---|---|
| 訓練集 (Training Set) | 讓模型學習,調整計算裡的數值 |
| 驗證集 (Validation Set) | 比較不同做法的效果,協助決定怎麼調整、選哪個版本 |
| 測試集 (Test Set) | 做法與版本決定後,再用另外保留的資料檢查最終表現 |
驗證集雖然不直接拿來調整模型內的數值,它的結果仍會影響人怎麼選模型。因此最後還要另外留一批測試資料;如果反覆看測試結果、照著它改做法,它也逐漸變成決策材料,不能再當成同樣獨立的最終檢查。
分開不只是分成三個檔案。若相同或高度重複的例子混進不同組,檢查結果可能看起來很好,卻沒有真正測到新情況。保留的資料也要能代表預計遇到的情境;在舊價目上通過檢查,不能替新價目作保證。
章內活動會讓你反覆比較同兩張留起來的收據,屬於教學用的檢查示範,不是一批從未影響決策的最終測試資料,也不能用兩張的比例估計真實模型成功率。
再接回 AI
糖果活動的正確規則事先放在三個候選裡,所以一張大包收據就足以區分。真實模型可能缺少需要的資訊,也可能用不合適的計算方式;增加資料或增加參數 (Parameter),都不是必定解決問題的按鈕。
這章要建立的判斷是:問模型學得好不好,除了看訓練時的結果,還要看它在什麼新資料上被檢查,以及那些資料是否接近實際會遇到的情況。 這也適用於大型語言模型 (Large Language Model, LLM),只是語言任務的「答對」與評估方式更複雜,不能直接套糖果金額的分數。
接著讀〈我傳一句話給 AI,到底發生了什麼?〉,把學好的模型如何使用,和本章的訓練/檢查分開。
參考:Google 泛化與過度擬合、Google 訓練、驗證與測試資料的分工(2026-10-04 查核)。