Overfitting 和 underfitting 是模型準確率不彰的主因。要能夠判斷模型是 overfitting 還是 underfitting,才能夠採取正確的方法來提升模型的效能。
Table of Contents
Overfitting 和 Underfitting
當模型沒有很擬合訓練資料時,我們稱為 underfitting,也可以說,該模型有 high bias。Underfitted 模型無法無法準確的掌握訓練資料,所以預測的資料也會是不夠準確。
下圖是 regression 模型的 underfitting 範例。我們可以看到,模型不夠擬合訓練資料。
Classification 模型也有 underfitting 的情況。如下圖中,模型無法將兩種物件好好區分開來。
反之,當模型完全或非常擬合訓練資料時,有可能在預測新的資料時,預測的值和真實的值的誤差會很大,我們稱為 overfitting,也可以說模型有 high variance。如下圖中的 regression 模型,它準確地捕捉到每一個訓練的資料,但是在預測新資料時,就會變得非常不準確。
下圖是 classification 模型的 overfitting 範例。
當模型適當地擬合訓練資料,而且沒有完全擬合,但誤差很小時,我們稱為 generalization,也可以說模型有 low bias 和 low variance。這樣的模型在預測新的資料時,預測的值和真實的值,其誤差會很小。這才是我們想要訓練出來的模型。
下圖是 regression 模型的 generalization 範例。我們可以看到,模型雖然沒有完全準確地捕捉到每個訓練的資料,但是其誤差很小。
下圖是 classification 模型的 generalization 範例。我們可以看到模型將方形物件完整區分出來,雖然有兩個原型物件在裡面。
如何解決 Overfitting 和 Underfitting?
當模型出現 overfitting 的情況時,我們可以嘗試用以下的方式解決。
- 收集更多的訓練資料。用更多的訓練資料訓練模型的話,會使得模型變得比較平滑,因此可以解決 overfitting 的問題。
- 使用較少的 features。在模型中使用太多的 features 時,會使得模型很複雜。這可能會導致 overfitting,因為可能有些 features 根本是不適當的資料。因此,刪除那些不適當的 features 來簡化模型,這可以解決 overfitting 的問題。
- 使用 regularization 來縮小 parameters 的大小。
而,當模型出現 underfitting 的情況時,我們可以嘗試用以下的方式解決。
- 使用較多的 features 來使模型複雜一些,使得模型可以較擬合訓練資料。
關於 regularization 的細節,請參考以下文章。
結語
讀完本文章後,想必你應該了解 overfitting 和 underfitting,以及他們的重要性。Overfiting 和 underfitting 的解決方法不相同。因此,當一個模型準確率低下時,若無法判別是 overfitting 或 underfitting 的話,我們將無法正確地調整模型。
參考
- Andrew Ng, Machine Learning Specialization, Coursera.