iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
生成式 AI

《AI 新手到職場應用:深度學習 30 天實戰》系列 第 15

過擬合問題:如何避免模型「背答案」

  • 分享至 

  • xImage
  •  

在過去的學習裡,我們總是希望模型的準確率越高越好,
但當你看到訓練集準確率接近 100%,
而驗證集或測試集的準確率卻明顯落後時,就要小心了。

這種情況並不是模型真的「完美」,而是掉進了「過擬合」(Overfitting)的陷阱。

而在今天,我們就要把過擬合的概念拆解得更清楚,
並來探討如何避免。


什麼是過擬合?

首先第一步,我們當然要來解釋什麼是「過擬合」:

過擬合一般來說是一種情況,當模型在訓練資料上表現得非常好,
但在新的資料(測試集或真實應用場景)上表現卻很差。

換句話說,模型「記住」了訓練資料的細節與噪音,
而不是「學會」了真正的規律。

白話一點的比喻來說,過擬合就像一個學生考前死背課本的題目,
模擬考的時候分數很高,但一旦遇到課本以外的題目就不知所措。

這代表他並沒有真正理解,而只是把答案硬背下來。


為什麼會發生過擬合?

目前已知過擬合的原因常見有幾種:

模型太複雜:

神經網路擁有非常多的參數,若模型的層數過多或神經元數過大,
它就會有能力去「記住」訓練資料的細節。

而複雜模型就像是一個記憶力超強的學生,
哪怕是資料中的錯誤或雜訊,它也能背下來,
就可能會導致全部東西都背下來,
但沒辦法區分什麼是對、什麼是錯。

資料量不足:

如果給模型的訓練樣本太少,模型很容易就把這些有限的資料全部記起來,
而不是去歸納一般規律。

這也是為什麼在深度學習裡,資料常常比模型本身更重要,
有更多的資料讓我們可以去跑訓練,
模型運行的品質才能更好。

訓練時間過長:

當模型訓練太久,它會一點一滴地把資料的細節「過度擬合」。
就像如果只是考一面選擇題,但卻給你五個小時的時間,
寫到最後說不定你連題目的字有幾筆畫都能說出來。

資料有太多雜訊(Noise):

如果資料本身不乾淨,例如影像模糊、錯誤標記,或樣本差異太大,
模型也可能會錯誤地把這些雜訊當成模式,
進而導致訓練的錯誤。


如何判斷過擬合?

我們通常會觀察 LossAccuracy 曲線:

如果「訓練集的 Loss 持續下降,但驗證集的 Loss 卻開始上升」,
這就是一種過擬合的警訊,因為很明顯兩者對不上。

同樣地,如果訓練 Accuracy 越來越高,但驗證 Accuracy 卻停滯不前甚至下降,
也表示模型只是在訓練資料上表現好,而泛化能力不足


避免過擬合?

而如果要避免過擬合,下面也有幾種常見的方法,以下就來介紹一下:

1. 增加資料量(Data Augmentation)

當模型有更多樣的資料可以學習時,它就比較不會只專注於記住某些細節。
例如在影像辨識中,我們可以旋轉、翻轉或調整亮度來「擴充」資料。

2. 使用正則化(Regularization)

正則化是一種在模型參數中加入限制的方法。最常見的有:

L1 正則化:讓部分權重變成 0,讓模型更簡潔。

L2 正則化:避免權重變得過大,讓模型更穩定。

3. 使用 Dropout

Dropout 是在訓練過程中隨機讓一部分神經元「暫時不工作」,
避免模型過度依賴某些特定的神經元,進而提升泛化能力。

4. 提前停止(Early Stopping)

當我們發現驗證集的表現開始惡化,
就可以提前停止訓練,避免模型進一步「背答案」。

5. 簡化模型

如果資料量有限,就不要使用過度複雜的模型,
應該讓模型的容量(capacity)與資料規模相匹配。


小結:

當在教導一個學生學習的時候,你肯定不希望他只是死背,
而是希望他可以對問題「融會貫通」。

而對於深度學習也是一樣,
我們也要盡力的去避免模型死記硬背,
否則等考試成績(訓練結果)出來之後,
你原本臉上的笑容就要被轉移到你的 Loss 曲線上面了。

這也是為什麼我們要去學習「過擬合」這個專業術語。

參考資料:
https://aws.amazon.com/tw/what-is/overfitting/
https://vocus.cc/article/66cbe07cfd897800017bd6e4


上一篇
訓練過程可視化:繪製 Loss 與 Accuracy 曲線
下一篇
Batch Normalization:讓訓練更穩定的小秘訣
系列文
《AI 新手到職場應用:深度學習 30 天實戰》18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言