1 過擬合
1.1 過擬合的定義
當學習器把訓練樣本學的太好了的時候,很可能已經把訓練樣本自身的一些特點當作了所有潛在樣本都會具有的一般性質,這樣就會導致泛化性能下降,這種現象成為過擬合
具體表現就是最終模型在訓練集上效果好,在測試集上效果差。模型泛化能力弱。
1.2 過擬合的原因
1 訓練數據中噪音干擾過大,使得學習器認為部分噪音是特征從而擾亂學習規則
2 建模樣本選擇錯誤:例如樣本太少,抽樣方法錯誤,樣本lable錯誤等,導致樣本不能代表整體
3 模型不合理
4 特征維度/參數太多,導致模型的復雜度高
1.3 過擬合的解決辦法
過擬合無法徹底解決,只能緩解
3個角度
- 1 數據
1 從數據源頭獲取更多的數據
2 數據增強,通過一定的規則擴充數據 - 2模型
1 降低模型的復雜度
對於神經網絡:減少網絡層數和神經元個數。dropout
對於決策樹:限制樹深,剪枝,限制葉節點的數量
2 特征選擇、特征降維
3 early stop
4 正則化
5 增加噪聲 - 模型增強
Bagging:從訓練集中自助采樣,訓練多個相互獨立的弱學習器,通過一定結合策略形成一個強學習器
Boosting: 初始化訓練一個基學習器->根據表現調整樣本分布->訓練下一個基學習器->多個學習器加權結合。
2 欠擬合
2.1 欠擬合的定義
欠擬合是指對訓練樣本的一般性質尚未學好,在訓練集和測試集上的表現都不好
2.2 欠擬合的原因
1 模型的復雜低過低
2 特征量過少
2.3 欠擬合的解決辦法
- 增加特征數
當特征不足或者現有特征與樣本標簽的相關性不強時,模型容易出現欠擬合 - 增加模型的復雜度
模型簡單時其表達能力較差,容易導致欠擬合,因此可以適當的增加模型的復雜度,使模型有更強的擬合能力
例如:線性模型中增加高次項,神經網絡中增加網絡層數或神經元個數。 - 減小正則化系數
正則化是用來防止過擬合的,當出現欠擬合時,有必要針對性的減小正則化系數
3 從bagging和正則化的角度理解Dropout
Bagging:Bagging綜合起來取平均的策略通常可以有效防止過擬合問題,dropout不同的隱藏神經元就類似在訓練不同的網絡,隨機刪掉一些隱藏神經元導致網絡結構已經不同,整個dropout過程就相當於對很多個不同的神經網絡取平均,而不同網絡產生不同的過擬合,一些互為反向的擬合相互抵消就可以達到整體上減少過擬合
正則化的角度:因為dropout程序導致兩個神經元不一定每次都在一個dropout網絡中出現,這樣權值更新不再依賴於有固定關系的隱含節點的共同作用,阻止了某些特征僅僅再其他特定特征下才有效果的情況。迫使網絡去學習更加魯棒的特征。換句話說加入我餓們的神經網絡是再做出某種預測,它不應該對一些特定的線索片段太過敏感,即使丟失特定的線索,它也應該可以從眾多其他線索中學習一些共同的特征。從這個角度看有點像L1,L2正則,減少權重使得網絡對丟失特定神經元鏈接的魯棒性提高。