機器學習——方差與偏差,過擬合與欠擬合
偏差(bias):偏差衡量了模型的預測值與實際值之間的偏離關系。通常在深度學習中,我們每一次訓練迭代出來的新模型,都會拿訓練數據進行預測,偏差就反應在預測值與實際值匹配度上。
方差(variance):方差描述的是訓練數據在不同迭代階段的訓練模型中,預測值的變化波動情況(或稱之為離散情況)。從數學角度看,可以理解為每個預測值與預測均值差的平方和的再求平均數。通常在深度學習訓練中,初始階段模型復雜度不高,為低方差;隨著訓練量加大,模型逐步擬合訓練數據,復雜度開始變高,此時方差會逐漸變高。

這是一張常見的靶心圖。可以想象紅色靶心表示為實際值,藍色點集為預測值。在模型不斷地訓練迭代過程中,我們能碰到四種情況:
低偏差,低方差:這是訓練的理想模型,此時藍色點集基本落在靶心范圍內,且數據離散程度小,基本在靶心范圍內;
低偏差,高方差:這是深度學習面臨的最大問題,過擬合了。也就是模型太貼合訓練數據了,導致其泛化(或通用)能力差,若遇到測試集,則準確度下降的厲害;
高偏差,低方差:這往往是訓練的初始階段;
高偏差,高方差:這是訓練最糟糕的情況,準確度差,數據的離散程度也差。
一般來說,隨著模型復雜度的增加,方差會逐漸增大,偏差會逐漸減小。隨著模型的不斷訓練,準確度不斷上升,自然偏差逐漸降低。但方差的變化趨勢卻不易理解,訓練初始階段是低方差,訓練后期易是高方差。方差的計算公式為每個樣本的預測值與總體樣本的預測均值差的平方和再求平均數,可以表現(xiàn)為一種波動變化,低方差意味低變化,高方差意味高變化。

模型(藍線)對訓練數據(紅點)擬合度很差,是高偏差,但藍線近似線性組合,其波動變化小,套用數學公式也可知數值較小,故為低方差,這個階段也稱之為欠擬合(underfitting),需要加大訓練迭代數。

模型的擬合度很好,是低偏差,但藍線的波動性非常大,為高方差,這個階段稱之為過擬合(overfitting),問題很明顯,藍線模型很適合這套訓練數據,但如果用測試數據來檢驗模型,就會發(fā)現(xiàn)泛化能力差,準確度下降。

這是一個恰好的狀態(tài),既能跟訓練數據擬合,又離完美擬合保持一定距離,模型更具通用性,用測試數據驗證會發(fā)現(xiàn)準確度也不錯。
下面來看看訓練集誤差值和驗證集誤差值與訓練集樣本大小 的關系。

隨著訓練樣本集大小的增加,訓練誤差增大驗證誤差減小,二者緩慢變化但不收斂,驗證誤差始終略大于訓練誤差,可以預見的是隨著樣本規(guī)模繼續(xù)增大,驗證誤差將進一步減小。

這是高偏差欠擬合的狀態(tài),兩條曲線的變化趨勢基本相同,但是它們會快速收斂到相近的值,并且基本上不會發(fā)生變化,隨著訓練集規(guī)模增大也不變。

與之前的曲線變化趨勢類似,但兩條曲線之間會存在一個非常明顯的差距,驗證集上的誤差明顯大于訓練集,但是隨著訓練樣本規(guī)模進一步增大,這個差距可能會縮小,說明過擬合現(xiàn)象可能會被數據樣本規(guī)模的擴大而緩解。

發(fā)生欠擬合現(xiàn)象時,縮小正則化表達式中的系數λ,或者直接設為0.
發(fā)生過擬合現(xiàn)象時,增大正則化表達式中的系數λ。