機器學習中的偏差、方差、過擬合

一、機器學習的偏差與方差的理解

1. 方差大:訓練集的誤差小,驗證集誤差大,對應模型過擬合

2. 偏差大:如果訓練集和驗證集的誤差接近,且都偏大,說明模型效果差,欠擬合

3. 偏差小、方差小:訓練集和驗證集誤差差不多,都比較小,說明模型效果好

 

偏差與方差對應的解決方法:

1. 高偏差(無法擬合訓練數據):換一個更大的模型或網絡,模型訓練久一點

2. 高方差(過擬合):增大數據集,正則化

 

理解模型的偏差和方差,可以判斷模型的表現,進而採取相應的措施,達到更好的效果。

 

二、過擬合與解決辦法

 

1. 過擬合

過擬合的直觀表現是算法在訓練集上表現好,但在測試集上表現不好,泛化性能差。過擬合是在模型參數擬合過程中由於訓練數據包含抽樣誤差,在訓練時複雜的模型將抽樣誤差也進行了擬合導致的。所謂抽樣誤差,是指抽樣得到的樣本集和整體數據集之間的偏差。直觀來看,引起過擬合的可能原因有:

(1)模型本身過於複雜,以至於擬合了訓練樣本集中的噪聲。此時需要選用更簡單的模型,或者對模型進行裁剪。

(2)訓練樣本太少或者缺乏代表性。此時需要增加樣本數,或者增加樣本的多樣性。

(3)訓練樣本噪聲的干擾,導致模型擬合了這些噪聲,這時需要剔除噪聲數據或者改用對噪聲不敏感的模型。

 

2. 過擬合的解決方法

2.1 正則化

J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\widehat{y}^{i}, y^{i})+\frac{\lambda }{2m}\left \| w \right \|_{2}

這裏要講的是,爲什麼正則化可以防止過擬合。\lambda很大時,要使loss很小的話,w^{L}就要變小,那麼網絡輸出y^{L}=w^{L}x^{L-1}+b^{L}就趨於線性,降低隱層的非線性程度,簡化了,進而避免過擬合。

2.2 dropout

(1)dropout是使網絡的神經元隨機失活,實施:

設置一個d矩陣,元素爲0和1,有keep-prop概率講d設爲1。如keep-prop=80%,則d矩陣,80%元素爲1,20%元素爲0,。然後每一層網絡的激活函數輸出乘上d矩陣,這樣隨機失活神經元。

(2)dropout的缺點:loss函數很難定義,不好計算。所以先把keep-prop設爲1,關閉dropout確保loss函數單調遞減,再把dropout打開。

(3)在測試階段,如果使用dropout,測試結果會受到干擾,所以測試階段不使用dropout.

2.3 其他方法

(1)增加數據樣本,如數據增強

(2)提前停止訓練,在中間停止迭代過程,缺點是,模型沒有訓練足夠長時間。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章