1. 程式人生 > 其它 >機器學習中模型的診斷、改進、選擇——偏差、方差、欠擬合、過擬合、交叉驗證

機器學習中模型的診斷、改進、選擇——偏差、方差、欠擬合、過擬合、交叉驗證

技術標籤:深度學習機器學習

資料來源:臺大 李巨集毅 2020機器學習深度學習課程

文章目錄


0、知識點

  • 偏差bias
  • 方差variance
  • 過擬合 Overfitting
  • 欠擬合 Underfitting
  • N折交叉驗證 N-fold Cross Validation

一、偏差和方差

為什麼學習bias和variance?

瞭解average error 產生的原因,進而挑選適當的方法improve自己的model

  • average error來自兩部分:偏置bias方差variance

(橫軸表示Model多項式的次數,縱軸表示testing data上的平均誤差)
從訓練資料中我們找到 f ∗ f^* f,它是 f ^ \hat{f} f^(實際上的函式)的估計(estimator)
f ∗ f^* f f ^ \hat{f} f^的差別來自於兩方面bias+variance


f*的bias和variance

bias

樣本均值和總體均值
樣本均值是總體均值的無偏估計

左邊是比較小的N,散得比較開;右邊是比較大的N,比較緊密


variance


模型與bias & variance的關係

bias表示離中心點的偏移程度,variance表示點的離散程度

  • f ∗ f^* f的期望 E [ f ∗ ] E[f^*] E[f]需要找多個 f ∗ f^* f(前面迴歸那一節只找了一個 f ∗ f^* f
  • 不同的訓練資料,同樣的模型,最後產生的 f ∗ f^* f會不同,因此可以用不同的資料集來訓練同一個模型得到多個 f ∗ f^*
    f

    (不同batch中的sample不同)

  • 模型越簡單,其variance越小,函式越集中(簡單的model越不容易受到sampled data的影響)
  • 模型越簡單,其bias越大(如圖,model越簡單,其function set包含的function越少,包含的範圍越小,做平均後的平均值( E [ f ∗ ] E[f^*] E[f])與真實值( f ^ \hat{f} f^)的偏差大)

模型越複雜:狙擊手用了霰彈槍,瞄得越來越準(small bias),但越來越抖,落點越分散(large variance)


二、欠擬合和過擬合

如果error來自於variance很大 —— Overfitting 過擬合
如果error來自於bias很大 —— Underfitting 欠擬合

對模型的診斷和改進

診斷:

  • 如果你的model不能fit訓練資料,那麼你有large bias —— 欠擬合
  • 如果你的model可以fit訓練資料,但在測試資料上有較大的error,那很可能是你有large variance —— 過擬合

改進:

  1. error主要來自bias
  • 增加更多的feature作為輸入
  • 設計一個更加複雜的model
  1. error主要來自variance
  • 增加訓練資料(非常有效,但大多數情況下不實際;不會傷害bias)
  • 正則化(曲線越平滑越好,但可能會傷害bias)

下圖是沒加正則項、正則項比重加大的情況:


三、選擇模型

在bias和variance之間做權衡,使得total error最小

在public testing set上得到較好的結果,通常在private testing set上得到的結果會更差一些

所以不能完全相信public testing set上的結果,我們需要做 交叉驗證

交叉驗證(Cross Validation)

  • 將總的測試集分為測試集和驗證集,測試集用來訓練模型驗證集用來選擇模型
  • 首先用訓練集訓練得到3個model,然後將其運用到驗證集上得出各個model的error,由於Model 3的error最小。所以我們選定Model 3,然後我們可以用全部的訓練集再次訓練Model 3. 之後將訓練好的Model 3運用到public Testing set上,一般得到的error 會大於驗證集上的error,但此時在private testing set上的error才可能真正和public testing set上的差別不大。

N折交叉驗證(N-fold Cross Validation)