1、基本介紹
-
過擬合:指為了得到一致性假設而使假設變得過度嚴格。在模型參數擬合過程中,由於訓練數據包含抽樣誤差,復雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。
-
當訓練數據不夠多時,者over-training時,經常會導致over-fitting(過擬合),如下圖所示:
- 欠擬合:指模型沒有很好地捕捉到數據特征,不能很好地擬合數據。
如上左圖,由於是一次函數,沒有很好的擬合數據;右圖是二次函數,能夠較好地擬合所有數據。究其原因,兩者之間的差別在於有沒有二次項系數,即參數多少的問題。
2、原因
-
過擬合的根本原因:特征維度過多,模型假設過於復雜,參數過多,訓練數據過少,噪聲過多,導致擬合的函數完美的預測訓練集,但對新數據的測試集預測結果差。 過度的擬合了訓練數據,而沒有考慮到泛化能力。因此需要減少特征維度,或者正則化降低參數值。
-
欠擬合的根本原因:特征維度過少,模型過於簡單,導致擬合的函數無法滿足訓練集,誤差較大; 因此需要增加特征維度,增加訓練數據。
3、解決方法
-
避免過擬合的方法:
-
交叉驗證:即重復使用數據,把得到的樣本數據進行切分,組合為不同的訓練集和測試集,用訓練集訓練模型,用測試集來評估模型預測的好壞。由於在此基礎上可以得到多組不同的訓練集和測試集,某次訓練集中的某樣本在下次可能成為測試集中的樣本,即所謂“交叉”。當數據量不是很充足的時候,會使用交叉驗證。
在訓練過程中,我們通經常使用它來確定一些超參數(比方,依據validation data上的accuracy來確定early stopping的epoch大小、依據validation data確定learning rate等等。
-
正則化:(L1和L2)通過改動代價函數實現。
-
數據增強:增加訓練數據樣本。
-
Dropout:通過改動神經網絡本身來實現。例如,訓練前,隨機刪除一部分隱層單元,保持輸入輸出層不變,依照BP算法更新上圖神經網絡中的權值。
-
early stopping:即提前終止。Early stopping是一種以迭代次數截斷的方法來防止過擬合。
-
Bagging用不同的模型擬合不同部分的訓練集;Boosting只使用簡單的神經網絡;
-
數據清洗:將錯誤的label糾正或者刪除錯誤的數據。
-
-
為什么說數據量大了以后,求解\(min Cost\)函數時候,模型為了求解到最小值過程中,需要兼顧真實數據擬合和隨機誤差擬合,所有樣本的真實分布是相同的(都是猴子),而隨機誤差會在一定程度上抵消(猴子的膚色——黃色)。——訓練數據中全是黃色猴子,測試數據中一旦是白色猴子就檢測不出來。
-
欠擬合的解決方法:
-
添加其他特征項:添加特征的重要手段是“組合”,“泛化”,“相關性”;另外,特征添加的首選項是“上下文特征”,“平台特征”。
-
添加多項式特征:比較常用,例如,在線性模型中通過添加二次項或者三次項使模型的泛化能力更強。
-
減少正則化參數:特征化的目的是用來防止過擬合的。
-
4、正則化
-
正則化是模型選擇的典型方法,是結構風險最小化策略的實現。一般是在經驗風險上加上一個正則化項或罰項,正則化一般是模型復雜度的單調遞增函數,模型越復雜,正則化值就越大。
-
正則化項的函數形式為:
其中第一項是經驗風險,第二項是正則化項,\(\lambda>0\)為調整兩者之間關系的系數。
-
正則化項\(\lambda J(f)\)可以取不同的形式。回歸問題中,損失函數\(L(y_{i}, f_{x_{i}}\)是平方損失,正則化項是參數向量的\(L_{2}\)范數。
-
正則化的優點是:
-
能保留所有的特征,但是降低參數\(\omega_{j}\)的量/值。
-
正則化的好處是但特征很多時,每一個特征都會對預測\(f(x_{i})\)貢獻一份合適的力量。
-
4.2 L2正則化
- L2正則化是指正則化項為參數向量的\(L_{2}\)范數。相應的經驗風險(損失函數)為:
- 2-范數:\(||x||_{2} = \sqrt {\sum_{i=1}^{N} |x_{i}|^{2}}\),歐幾里得范數,即向量元素絕對值的平方和再開方。常用於計算向量長度。
理解L2、L1正則化可參考4
4.1 L1正則化
- L1正則化是指正則化項為參數向量的\(L_{1}\)范數。相應的經驗風險(損失函數)為:
- 1-范數:\(||x||_{1} = \sum_{i=1}^{N} |x_{i}|\),即元素絕對值之和。
參考: