iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
AI & Data

戀 AI ing - 我與機器學習的邂逅系列 第 21

【Day 21】欠缺擬和與過度擬和 Underfitting & Overfitting

  • 分享至 

  • xImage
  •  

【Day 21】欠缺擬和與過度擬和 Underfitting & Overfitting

前言

在機器學習中,欠缺擬和 ( Underfitting ) 與過度擬和 ( Overfitting ) 是兩個主要評估模型性能的標準,所謂的「擬和」,就是指讓模型的預測值能夠接近實際值的過程,訓練模型的目的主要是為了讓模型在面對到陌生的輸入資料時,能夠輸出可靠的預測表現,也就是提高模型的泛化能力 ( Generalization ),欠缺擬和與過度擬和就是拿來衡量模型是否具有良好泛化能力的標準。

欠缺擬和 Underfitting

所謂欠缺擬和就是指模型輸出的預測值還沒有辦法準確落在實際值上面,也就是還沒掌握到資料潛在的模式或趨勢,因此模型的預測能力較差,其預測值和實際值的偏差 ( Bias ) 較大,欠缺擬和的模型對資料中的細節或噪音 ( Noise ) 也較不敏感,無法完整的學習資料並去擬和每個資料點,更無法反映資料的複雜性,像是下圖中的紅線 ( 預測值 ) 無法包含大部分的綠點 ( 實際值 ) 就是遇到欠缺擬和的問題,下圖中的綠點皆為訓練資料,前面提到欠缺擬和就是模型經過訓練後,結果跟實際差很多,這就像是你要考試,考試的題目你都看過了,你為了要高分就直接把答案記下來,照理說這樣你考出來的表現應該要很好,但是你背東西沒有方法導致你一下就忘,這就表示你模型對訓練資料 ( 考題 ) 的擬和能力 ( 答對能力 ) 較低,這就是模型欠缺擬和的情況。

https://ithelp.ithome.com.tw/upload/images/20231006/20158157jJlFzOXuAS.png

如何改善欠缺擬和問題

面對到這種無法擬和實際值的情況,透過下面方法能夠解決模型缺乏擬和的問題,以增加模型的擬和能力:

  • 增加模型的複雜度:更換模型的架構、線性模型 ( Linear ) 改為多項式模型 ( Polynomial )、增加神經元的個數、用更多隱藏層的神經網路讓模型有更多參數
  • 增加訓練集的資料數量:使資料更加多元,可用資料增強技術,讓模型全面的捕捉訓練資料中潛在的趨勢或模式
  • 調整超參數:調整學習率、批量大小以、迭代次數等搭配交叉驗證技術找出最佳的超參數組合
  • 增加訓練時間:讓模型的訓練時間長一點,可以增加訓練時的迭代次數
  • 增加資料特徵:增加訓練資料的特徵數量,讓模型獲取更多的特徵訊息來做預測

欠缺擬和問題的模型經過改善後,就像是你記題目變得有方法,能夠記下夠多的題目也記得越熟,這就讓你在考試的表現變好,代表模型在擬和訓練資料的表現越好。

過度擬和 Overfitting

上面提到對於要解決模型欠缺擬和的問題,會不斷地用一些手段去改善,目的就是為了去擬和訓練資料,然而因為模型在訓練時盡力地去擬和訓練資料,模型就會對訓練資料的細節較敏感,當訓練資料中有存在噪音、偏誤或某中既定資料模式趨勢時,模型會把這些全都擬和進去,模型或許能夠極度擬和訓練資料,但也僅限於對訓練資料而以,換在其他陌生資料 ( 測試資料 ) 上可能會受先前在訓練資料中的噪音影響而降低表現,表示模型的泛化能力 ( Generalization ) 極低。

https://ithelp.ithome.com.tw/upload/images/20231006/201581579UJKfPDl9M.png

我們通常會把訓練資料和測試資料分開,訓練資料用來訓練模型,測試資料用來測試模型最終效能,當模型訓練完後使用訓練資料去測試模型的效能時,因為模型在訓練時都已經看過這些資料而且擬和,所以預測、擬和表現通常較佳,過度擬和就像是你考試把考題 ( 訓練資料 ) 都先死記硬背下來 ,在考試時因為這些題目你都看過了,所以表現當然較佳,也就在訓練資料上模型擬和表現較佳,但換成在測試資料,對模型來說是陌生未看過的,對於沒看過的考題,僅靠先前死記硬背就沒用了,模型的表現就會不佳,這種模型在訓練集上表現佳而在測試集表現欠佳的情況稱為過度擬和。

如何改善過度擬和問題

對於模型過度擬和的問題可以用下列方法解決:

  • 增加訓練資料:收集更多的訓練資料能夠讓模型更好的學習整個資料的模式或趨勢,降低過度擬和風險
  • 降低模型複雜度:有時過度複雜的模型反到會降低模型的效能,可以透過減少模型參數的數量、神經網路層數或減少特徵數量等方式
  • 交叉驗證:用交叉驗證來評估模型的性能,確認在用測試資料測試模型前,模型在不同驗證子集上的泛化表現良好,可以確保模型在最終測試前的泛化能力
  • 引入正則化 ( Regularization ) 的技術來減少模型複雜度,詳細後面幾天會提到
  • 早停 ( Early Stopping ):在訓練的過程中,評估模型在驗證集 ( 陌生資料 ) 上的性能,這決定了模型的泛化能力,如下圖經過虛線後就會發現模型在訓練集上表現持續上升,但在驗證集上測試的泛化能力開始下降 ( 藍線 ),此時發生過度擬和問題,就可先中止整個訓練過程,以免隨著訓練次數增加 ( Epoch ) 泛化能力持續往下掉,

https://ithelp.ithome.com.tw/upload/images/20231006/20158157u4GQJJdPV3.jpg

在生活考試中,通常會建議不要用死記硬背的方式刷題,要刷得一點,從每題中了解到解題竅門或題型模式,在面對到沒看過的考題才能夠活用,而我們訓練模型的目的也是如此,就是為了不要發生過度擬和的情況,模型過度擬和就是過度的依賴且掌握先前那些看過的資料而變得死板,希望模型能夠在訓練資料中掌握特徵資料與標籤資料之間的關係,面對到陌生資料時就能夠一點,較活的模型泛化能力也較高,至於用死板的方式 ( 死記硬背刷題 ) 反而會降低模型的效能。

小結

今天我們了解到欠缺擬和與過度擬和之間的差異,以及改善這些問題的方法,對於模型的誤差損失,明天我們就要介紹兩個指標 - 偏差 ( Bias ) 與方差 ( Variance ),那我們下篇文章見 ~

參考資料

https://www.javatpoint.com/overfitting-and-underfitting-in-machine-learning

https://cynthiachuang.github.io/EarlyStopping-Callback/


上一篇
【Day 20】模型評估(三) : ROC / AUC 特性曲線
下一篇
【Day 22】偏差與方差 Bias & Variance
系列文
戀 AI ing - 我與機器學習的邂逅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言