深度學習 模型選擇 欠擬合和過擬合 01

2021-10-08 22:41:02 字數 1912 閱讀 4033

我們經常在資料集實驗中,經常評價模型在訓練資料集和測試資料集上的表現,我們可能會發現當模型在訓練資料集上更準確時,它在測試集上卻不一定準確,那麼就讓我們一起來**一下吧!

訓練誤差是指在訓練資料集上表現出的誤差。

泛化誤差是指模型在任意乙個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤差來近似。

計算訓練誤差和泛化誤差可以使用損失函式,例如線性回歸用到的平方損失函式和softmax回歸用到的交叉熵損失函式。

模型的引數是通過在訓練資料集上訓練模型而學習出的,引數的選擇依據了最小化訓練誤差,所以,訓練誤差的期望小於或等於泛化誤差。也就是說,一般情況下,由訓練資料集學到的模型引數會使模型在訓練資料集上的表現優於或等於在測試資料集上的表現。

機器學習模型應關注降低泛化誤差。

在機器學習中,通常需要評估若干候選模型的表現並從中選擇模型。這一過程稱為模型選擇(model selection)。

可供選擇的候選模型可以是有著不同超引數的同類模型。以多層感知機為例,我們可以選擇隱藏層的個數,以及每個隱藏層中隱藏單元個數和啟用函式。為了得到有效的模型,我們通常要在模型選擇上下一番功夫。

下面,我們來描述模型選擇中經常使用的驗證資料集(validation data set)。

從嚴格意義上講,測試集只能在所有超引數和模型引數選定後使用一次。不可以使用測試資料選擇模型,如調參。

鑑於此,可以預留一部分在訓練資料集和測試資料集以外的資料來進行模型選擇。這部分資料被稱為驗證資料集,簡稱驗證集(validation set)。

由於驗證資料集不參與模型訓練,當訓練資料不夠用時,預留大量的驗證資料顯得太奢侈。一種改善的方法是?折交叉驗證(?-fold cross-validation)。

在?折交叉驗證中,把原始訓練資料集分割成?個不重合的子資料集,然後做?次模型訓練和驗證。每一次,使用乙個子資料集驗證模型,並使用其他?−1個子資料集來訓練模型。在這?次訓練和驗證中,每次用來驗證模型的子資料集都不同。最後,對這?次訓練誤差和驗證誤差分別求平均。

模型訓練中經常出現的兩類典型問題:一類是模型無法得到較低的訓練誤差,將這一現象稱作欠擬合(underfitting);另一類是模型的訓練誤差遠小於它在測試資料集上的誤差,稱該現象為過擬合(overfitting)。

有很多因素可能導致這兩種擬合問題,接下來討論一下這兩個因素:模型複雜度和訓練資料集大小。

因為高階多項式函式模型引數更多,模型函式的選擇空間更大,所以高階多項式函式比低階多項式函式的複雜度更高。因此,高階多項式函式比低階多項式函式更容易在相同的訓練資料集上得到更低的訓練誤差。

給定訓練資料集,模型複雜度和誤差之間的關係通常如下圖所示。

給定訓練資料集,如果模型的複雜度過低,很容易出現欠擬合;如果模型複雜度過高,很容易出現過擬合。應對欠擬合和過擬合的乙個辦法是針對資料集選擇合適複雜度的模型。

影響欠擬合和過擬合的另乙個重要因素是訓練資料集的大小。

一般來說,如果訓練資料集中樣本數過少,特別是比模型引數數量(按元素計)更少時,過擬合更容易發生。

此外,泛化誤差不會隨訓練資料集裡樣本數量增加而增大。

因此,在計算資源允許的範圍之內,通常希望訓練資料集大一些,特別是在模型複雜度較高時,如層數較多的深度學習模型。

模型選擇 過擬合和欠擬合

模型選擇 過擬合和欠擬合 訓練誤差和泛化誤差 在解釋上述現象之前,我們需要區分訓練誤差 training error 和泛化誤差 generalization error 通俗來講,前者指模型在訓練資料集上表現出的誤差,後者指模型在任意乙個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤...

3 11 模型選擇 欠擬合和過擬合

前者指模型在訓練資料集上表現出的誤差,後者指模型在任意乙個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤差來近似。計算訓練誤差和泛化誤差可以使用之前介紹過的損失函式,例如線性回歸用到的平方損失函式和softmax回歸用到的交叉熵損失函式。由於驗證資料集不參與模型訓練,當訓練資料不夠用時...

動手學深度學習12 模型選擇,欠擬合和過擬合

小結模型選擇 欠擬合和過擬合 前幾節給予fashion mnist資料集的實驗中,我們評價了機器學習模型在訓練集合測試集上的表現。通常得到的結果都是訓練資料集上更準確時,它在測試集上表現不一定更好,這就涉及到了模型的選擇以及擬合程度的選擇。訓練誤差和泛化誤差 模型選擇 從嚴格意義上講,測試集只能在所...