模型與訓練

Overfitting 過擬合是什麼?模型背了答案,卻沒學到規律

Overfitting 過擬合,指 AI 模型在訓練資料上表現得很好,但在沒看過的新資料上表現很差。原因通常是模型太複雜或訓練資料太少,把資料裡的雜訊也一起學進去了,因此無法泛化到新情況。判斷方式是看訓練誤差很低、驗證誤差卻很高。
Overfitting 過擬合是什麼?模型背了答案,卻沒學到規律:文章重點卡

Overfitting 過擬合是什麼?模型背了答案,卻沒學到規律

有些學生考前一晚把考古題全背起來,模擬考滿分,正式考換題型就崩了。模型也會這樣,這個現象叫過擬合。

你不一定會親手訓練模型,但只要看得懂別人的評估數字,就能分辨「這個模型真的會」跟「這個模型只是背過」。

你將學到什麼

定義

模型把訓練資料的細節與雜訊也學了進去,訓練表現很好,新資料表現很差。

白話比喻

像只背考古題的學生。原題滿分,換個問法就答不出來。

跟誰容易搞混

跟欠擬合剛好相反。過擬合是模型太複雜,欠擬合是模型太簡單,兩邊都不好。

定義

Overfitting 過擬合,指 AI 模型在訓練資料上表現得很好,但在新的資料上表現得很差的現象。

原因是模型太複雜或訓練資料太少,於是它把訓練資料裡的雜訊也一起學進去了,記住的是細節而不是真正的規律,因此無法泛化到新資料。

四個常見成因:模型太複雜、訓練資料太少、特徵太多或含雜訊、正則化不足。

白話比喻

把三種狀況畫成曲線最清楚。過擬合的線緊貼每一個資料點,連雜訊都照描;剛剛好的線捕捉到主要趨勢;欠擬合的線太直,連趨勢都抓不到。

換成人話:過擬合是背答案的學生,欠擬合是根本沒讀書的學生,剛剛好才是真的把觀念學會的學生。

過擬合跟欠擬合差在哪?

表現指標過擬合剛剛好欠擬合
模型複雜度太複雜適中太簡單
訓練資料表現非常好,誤差很低好,誤差低差,誤差高
新資料表現差,誤差高好,誤差低差,誤差高
泛化能力
典型描述記住了雜訊學到了規律沒學到模式

實際用例

訓練一個瑕疵檢測模型,樣本只有兩百張,而且都在同一條產線同一個燈光下拍的。模型很快就把準確率練到接近滿分,換到另一條產線卻整個失準,因為它學到的是那個燈光,不是瑕疵本身。

解法照著清單走:先補資料並增加多樣性,再簡化模型、移除不相關的特徵,加上正則化與 Dropout,最後用早停避免它繼續背下去。

沒有在訓練模型的人也用得到這個觀念。看到別人展示的驚人準確率,第一個要問的是「這是訓練資料還是沒看過的資料」,答案不同,意義天差地遠。

常見誤解第一個誤解是把過擬合當成資料量不足的專屬問題。資料夠多但特徵太雜、模型太深,一樣會過擬合。第二個是以為改善過擬合就是把模型改小,其實補資料與正則化往往比砍模型更有效,砍過頭還會掉進欠擬合。
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

怎麼知道模型過擬合了?
看兩條曲線。訓練誤差持續下降到很低,驗證誤差卻先降後停、甚至開始上升,兩者差距明顯拉大,就是典型的過擬合訊號。模型對訓練資料的微小變化也會非常敏感。
過擬合要怎麼改善?
常見做法有六種:增加訓練資料、簡化模型、做特徵選擇或降維、加上正則化、使用 Dropout、在驗證誤差不再改善時早停。多半不是單靠一招,而是組合使用。
訓練準確率越高不是越好嗎?
不是。只看訓練準確率會被騙。真正要看的是模型在沒看過的資料上表現如何,也就是泛化能力,這才是模型上線後的實際狀況。