不考慮正則的一般情況
運行一個學習算法時,如果這個算法的表現不理想,那麼多半是出現兩種情況:要麼是偏差比較大,要麼是方差比較大。換句話說,出現的情況要麼是欠擬合,要麼是過擬合問題
高偏差和高方差對應欠擬合和過擬合的問題,如下圖所示:
我們通常會通過將訓練集和交叉驗證集的代價函數誤差與多項式的次數繪製在同一張圖表上來幫助分析:
欠擬合的情況對應d較小時,過擬合的情況對應d較大時,隨着d的增加,越來越小,先變小再變大
如果在訓練時遇到模型在或者上都很高,如何判斷是高偏差還是高方差呢?下圖給出了很好的解釋
訓練集誤差和交叉驗證集誤差近似時:偏差/欠擬合 交叉驗證集誤差遠大於訓練集誤差時:方差/過擬合
考慮正則
在我們在訓練模型的過程中,一般會使用一些正則化方法來防止過擬合。但是我們可能會正則化的程度太高或太小了,即我們在選擇的值時也需要思考與剛纔選擇多項式模型次數類似的問題。
我們選擇一系列的想要測試的 值,通常是 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個)。 我們同樣把數據分爲訓練集、交叉驗證集和測試集。
選擇的方法爲:
- 使用訓練集訓練出12個不同程度正則化的模型
- 用12個模型分別對交叉驗證集計算的出交叉驗證誤差
- 選擇得出交叉驗證誤差最小的模型
- 運用步驟3中選出模型對測試集計算得出推廣誤差,我們也可以同時將訓練集和交叉驗證集模型的代價函數誤差與λ的值繪製在一張圖表上:
注意在這張表上,橫座標是,