機器學習中學習曲線的 bias vs variance 以及 資料量m

jingsupo發表於2018-10-28

關於偏差、方差以及學習曲線為代表的診斷法:
在評估假設函式時,我們習慣將整個樣本按照6:2:2的比例分割:60%訓練集training set、20%交叉驗證集cross validation set、20%測試集test set,分別用於擬合假設函式、模型選擇和預測。

模型選擇的方法為:
1. 使用訓練集訓練出 10 個模型
2. 用 10 個模型分別對交叉驗證集計算得出交叉驗證誤差(代價函式的值)
3. 選取代價函式值最小的模型
4. 用步驟 3 中選出的模型對測試集計算得出推廣誤差(代價函式的值)

 

當你執行一個學習演算法時,如果這個演算法的表現不理想,那麼多半是出現兩種情況:要
麼是偏差比較大,要麼是方差比較大。換句話說,出現的情況要麼是欠擬合,要麼是過擬合
問題。那麼這兩種情況,哪個和偏差有關,哪個和方差有關,或者是不是和兩個都有關?搞
清楚這一點非常重要,因為能判斷出現的情況是這兩種情況中的哪一種。其實是一個很有效
的指示器,指引著可以改進演算法的最有效的方法和途徑。

 

(二)偏差、方差、學習曲線Bias、Variance、Learning curve
1.特徵量的度d
還是之前的例子,用二次曲線擬合,訓練集和交叉驗證集的誤差可能都很小;但是你用一條直線去擬合,不管使用多高階的演算法去減小代價函式,偏差仍然是很大的,這時候我們就說:多項式次數d過小,導致高偏差、欠擬合;類似的當用10次曲線去擬合,樣本點都能經過,對應的代價函式(誤差)為0,但是帶入交叉驗證集你會發現擬合很差,這時候我們說:多項式次數d過大,導致高方差、過擬合。所以,多項式次數d與訓練集、交叉驗證集誤差的關係如下圖。
我們通常會通過將訓練集和交叉驗證集的代價函式誤差與多項式的次數繪製在同一張圖表上來幫助分析:

以下圖為例,你的模型選取其實直接關係到最終的擬合結果:

欠擬合Underfit || 高偏差High bias
正常擬合Just right || 偏差和方差均較小
過擬合Overfit || 高方差High variance

2.正則化引數λ
正則化引數λ越大,對θ懲罰的越厲害,θ->0,假設函式是一條水平線,欠擬合、高偏差;正則化引數越小,相當於正則化的作用越弱,過擬合、高方差。在我們在訓練模型的過程中,一般會使用一些歸一化方法來防止過擬合。但是我們可能會歸一化的程度太高或太小了,即我們在選擇 λ 的值時也需要思考與剛才選擇多項式模型次數類似的問題。
我們選擇一系列的想要測試的 λ 值,通常是 0-10 之間的呈現 2 倍關係的值(如:
0,0.01,0.02,0.04,0.08,0.15,0.32,0.64,1.28,2.56,5.12,10 共 12 個)。 我們同樣把資料分為訓練集、交叉驗證集和測試集。

 

選擇 λ 的方法為:
1. 使用訓練集訓練出 12 個不同程度歸一化的模型
2. 用 12 模型分別對交叉驗證集計算的出交叉驗證誤差
3. 選擇得出交叉驗證誤差最小的模型
4. 運用步驟 3 中選出模型對測試集計算得出推廣誤差, 我們也可以同時將訓練集和交叉驗證集模型的代價函式誤差與 λ 的值繪製在一張圖表上:

 

3.樣本量m與學習曲線Learning curve
學習曲線是樣本量與訓練集、交叉驗證集誤差之間的關係,分為高偏差和高方差兩種情況(欠擬合和過擬合)。
①高偏差(欠擬合):
根據下圖右部分分析有,通過增加樣本量兩者誤差都很大,即m的增加對於演算法的改進無益。

也就是說在高偏差/欠擬合的情況下,增加資料到訓練集不一定能有幫助。

如何利用學習曲線識別高方差/過擬合: 假設我們使用一個非常高次的多項式模型,並且歸一化非常小,可以看出,當交叉驗證集誤差遠大於訓練集誤差時,往訓練集增加更多資料可以提高模型的效果。

 

也就是說在高方差/過擬合的情況下,增加更多資料到訓練集可能可以提高演算法效果。

最後,總結下:

提出的六種可選的下一步,讓我們來看一看我們在什麼情況下應該怎樣選擇:
1. 獲得更多的訓練例項——解決高方差
2. 嘗試減少特徵的數量——解決高方差
3. 嘗試獲得更多的特徵——解決高偏差
4. 嘗試增加多項式特徵——解決高偏差
5. 嘗試減少歸一化程度 λ——解決高偏差
6. 嘗試增加歸一化程度 λ——解決高方差

出處:https://blog.csdn.net/zww275250/article/details/78628288

相關文章