由於條件限制,比如資料不夠豐富、不夠代表性,你的模型很有可能出現過擬合。即你的模型試圖去記住所有的訓練資料,而不是學習資料的趨勢。雖然資料增強的方法能緩解一些,但往往插值出來的資料仍然很侷限。一般,我們有下面幾個方法來從模型的角度來解決過擬合問題。
隨著訓練的進行,你發現迭代到某輪時,訓練誤差逐漸下降,但校驗集誤差卻在逐漸上公升。這時,你需要在那輪提前停止訓練,獲得模型。就這麼簡單。還有個解釋是,每個神經元的啟用函式在不同區間有不同的擬合效能,因此在訓練時,網路開始初始化的值比較小,隨著訓練進行有些值越來越大,因此較早地停止訓練能讓網路的擬合能力限制在較好的區間內。
過擬合發生時,往往會出現擬合函式在訓練資料點上的「曲率」很大。而這些「曲率」是由模型的引數近似表達出來的,因此通過對大值引數的懲罰來抑制這種曲率的發生。也就是對loss中加些正則化項。
想法是嘗試新增規則來訓練神經網路,使神經元被去除。 這意味著神經網路不能完全依賴於任何給定的神經元,因為它可能會死亡(從模型中刪除)。一種理解是它可以使得模型某些特徵不會只當其它某個特徵出現時才起作用,另一種理解是它類似boosting,即每次隨機的dropout後是不同的網路。
在訓練中結合使用以上方法,可以讓你的訓練更持久,模型的表達能力更強。
另外,還有一些方法也值得一試
一些總結比較好的文章
過擬合一些解決方案
過擬合原因 1.訓練集的數量級和模型的複雜度不匹配。訓練集的數量級要小於模型的複雜度 模型太複雜,引數就會太大,然而你的資料量又很小 2.訓練集和測試集特徵分布不一致 用分類貓的訓練集,去擬合分類狗的 3.樣本裡的噪音資料干擾過大,大到模型過分記住了噪音特徵,反而忽略了真實的輸入輸出間的關係 資料量...
過擬合和欠擬合的一些問題
三 產生過擬合原因 四 解決過擬合方法 圖一 欠擬合 模型擬合程度不高,資料距離擬合曲線較遠,或指模型沒有很好地捕捉到資料特徵,不能夠很好地擬合資料。圖二 正常擬合 圖三 過擬合 模型擬合度好過頭了。a.根本原因 特徵維度過少,模型過於簡單,導致擬合的函式無法滿足訓練集,誤差較大 b.解決方法 增加...
過擬合的解決方法
overfitting就是過擬合,其直觀的表現如下圖所示,隨著訓練過程的進行,模型複雜度增加,在training data上的error漸漸減小,但是在驗證集上的error卻反而漸漸增大 因為訓練出來的網路過擬合了訓練集,對訓練集外的資料卻不work,這稱之為泛化 generalization 效能...