1. 程式人生 > >機器學習中的偏差(bias)和方差(variance)

機器學習中的偏差(bias)和方差(variance)

內容參見stanford課程《機器學習 對於已建立的某一機器習模型來說,不論是對訓練資料欠擬合或是過擬合都不是我們想要的,因此應該有一種合理的診斷方法。 偏差和方差 評價資料擬合程度好壞,通常用代價函式J(平方差函式)。如果只關注Jtrain(訓練集誤差)的話,通常會導致過擬合,因此還需要關注Jcv(交叉驗證集誤差)。 高偏差:Jtrain和Jcv都很大,並且Jtrain≈Jcv。對應欠擬合。 高方差:Jtrain較小,Jcv遠大於Jtrain。對應過擬合。 下圖d代表多項式擬合的階數,d越高,擬合函式越複雜,越可能發生過擬合。 如何理解高偏差和高方差 1、高偏差對應著欠擬合,此時Jtrain也較大,可以理解為對任何新資料(不論其是否屬於訓練集),都有著較大的Jcv誤差,偏離真實預測較大。
2、高方差對應著過擬合,此時Jtrain很小,對於新資料來說,如果其屬性與訓練集類似,它的Jcv就會小些,如果屬性與訓練集不同,Jcv就會很大,因此有一個比較大的波動,因此說是高方差。 實際優化過程中,更多的是調整防止過擬合引數λ,λ對應正則化係數(越大,對過擬合的限制越強)。下圖為λ和Jtrain、Jcv理想曲線。 學習曲線 學習曲線是描述Jtrain和Jcv和資料樣本規模的關係曲線。參見下圖                                       左圖對應高偏差(欠擬合),右圖對應過擬合。可以看出當模型屬於高偏差時,隨著樣本資料規模增大,效能不會有什麼改善,過擬閤中的誤差則在持續減小。這個很好理解,欠擬合一般是模型比較簡單,不能準確的描述資料特徵,因此盲目增大資料量是沒用的;而過擬合是模型比較複雜,描述資料過於準確了,因此增加一些資料量可以減小過擬合。
模型修改策略 過擬合:增大資料規模、減小資料特徵數(維數)、增大正則化係數λ 欠擬合:增多資料特徵數、新增高次多項式特徵、減小正則化係數λ 實際優化過程中,我們的目標就是使模型處於欠擬合和過擬合之間一個平衡的位置。