“實踐出真知”聊聊人工智能模型訓練中常見的擬合問題

人工智能中很重要的一項步驟就是用算法模型與數據進行不斷的訓練和擬合。


過擬合的意思是,模型能力非常強,它已經把所有能想到的情況都考慮到了,不合適的擬合曲線幾乎完全涵蓋了所有的訓練數據。讀者可能會有疑問,這難道不就是我們想要的結果嗎?其實不是的。就好比一個學生,平時做習題做得很好,考試成績卻很差,考試的時候很多題是他沒見過的,而他舉一反三的能力恰恰比較弱。過擬合就是這樣,因為現在神經網絡的規模非常大,參數非常多,能夠容納的信息量也很大,所以模型很有可能已經把訓練集“背過”了,從而無法預測未知的東西。

“實踐出真知”聊聊人工智能模型訓練中常見的擬合問題

過擬合了怎麼辦呢?我們自然會想到增加訓練集,讓模型見多識廣,自然能輕鬆應對測試集。但是,增加訓練集的成本非常高,人工標註是一個非常耗時費力的活兒。所以,程序員會想到用程序生成很多訓練集樣本。最常見的比如花朵識別,會對輸入數據做翻轉、顏色變換、模糊等隨機操作,再送到模型裡去訓練,這樣成本相對低一些。還有就是選用合適的模型。如果你的任務很簡單,就沒必要用非常複雜、參數非常多的模型。還有一種情況:過擬合不是一開始就有的,往往是模型訓練的時間太久,導致模型開始“死記硬背”訓練數據,才產生了過擬合。所以,一個常用的策略就是“提前停止”,即趁模型還沒有開始死記硬背的時候結束訓練,也能在一定程度上防止過擬合的產生。

“實踐出真知”聊聊人工智能模型訓練中常見的擬合問題

欠擬合又是另一個極端。欠擬合發生的時候,模型性能不強,沒有學到有用的特徵,當前的狀態可以用“瞎蒙”來形容,所以無論面對驗證集還是測試集,都表現得不好。就像偏離的擬合曲線,完全跟現實情況搭不上,用它來預測房價,別人肯定會笑話你。

“實踐出真知”聊聊人工智能模型訓練中常見的擬合問題

那麼欠擬合了怎麼辦呢?一是繼續訓練,觀察它的情況會不會好轉。二是檢查自己的數據集是否有誤,比如訓練集的數據特徵不清晰,或者有標註錯誤之類的。


分享到:


相關文章: