過擬合原因:
1. 訓練集的數量級和模型的複雜度不匹配。訓練集的數量級要小於模型的複雜度;(模型太複雜,引數就會太大,然而你的資料量又很小)
2. 訓練集和測試集特徵分布不一致;(用分類貓的訓練集,去擬合分類狗的)
3. 樣本裡的噪音資料干擾過大,大到模型過分記住了噪音特徵,反而忽略了真實的輸入輸出間的關係;(資料量太小,或許只學到了噪音,而沒有學到希望學到的特徵)
4. 權值學習迭代次數足夠多(overtraining),擬合了訓練資料中的雜訊和訓練樣例中沒有代表性的特徵。
解決方案:
1、簡化模型結構:比如減小網路深度。
2、多來一些資料增廣,比如flip、rotate,映象,高斯噪音,隨機裁剪,縮放。
3、正則化:比如新增l1和l2正則。(l2正則也稱為權重衰減 weight decay )
l2範數是指向量各元素的平方和然後求平方根。我們讓l2範數的規則項||w||2最小,可以使得w的每個元素都很小,都接近於0,但與l1範數不同,它不會讓它等於0,而是接近於0。因為一般認為引數值小的模型比較簡單,能適應不同的資料集,也在一定程度上避免了過擬合現象。可以設想一下對於乙個線性回歸方程,若引數很大,那麼只要資料偏移一點點,就會對結果造成很大的影響;但如果引數足夠小,資料偏移得多一點也不會對結果造成什麼影響,專業一點的說法是『抗擾動能力強』
4、dropout:丟棄網路中的一些神經元。(或許有用,別丟太多,好不容易訓練出來的引數)
5、早停(early stopping):這就需要有驗證集,當驗證集的dice值達到最優的時候,就停止訓練,減少訓練時間。(通常在找到最優epoch之後,在跑10-50epoch,確定是最優,再停止)。
6、ensemble、整合多個模型結果,減少過擬合造成的影響。但是這種方法太花費時間了。
7、重新對資料進行清洗。但是對於深度學習視覺任務來說,這個過程一般在資料預處理階段完成。
過擬合解決方案
方法一 儘量減少選取變數的數量 具體而言,我們可以人工檢查每一項變數,並以此來確定哪些變數更為重要,然後,保留那些更為重要的特徵變數。至於,哪些變數應該捨棄,我們以後在討論,這會涉及到模型選擇演算法,這種演算法是可以自動選擇採用哪些特徵變數,自動捨棄不需要的變數。這類做法非常有效,但是其缺點是當你捨...
過擬合(原因 解決方案 原理)
標準定義 給定乙個假設空間h,乙個假設h屬於h,如果存在其他的假設h 屬於h,使得在訓練樣例上h的錯誤率比h 小,但在整個例項分布上h 比h的錯誤率小,那麼就說假設h過度擬合訓練資料。1 建模樣本抽取錯誤,包括 但不限於 樣本數量太少,抽樣方法錯誤,抽樣時沒有足夠正確考慮業務場景或業務特點,等等導致...
過擬合問題和解決方案
模型越複雜,模型對訓練集的測試效果越好,但對測試集的測試效果很差,此時稱為過擬合。如樣本是9個點,當多項式回歸是2次或3次時,擬合效果不錯但仍有誤差 當多項式是9次時,可以計算出一條曲線完美通過所有樣本點,但這種方式顯然把樣本的噪音全部擬合出來了,模型放到訓練集時效果很差。對此,有正則化 加懲罰項 ...