如何有效降低機(jī)器學(xué)習(xí)模型過(guò)擬合?
為什么會(huì)過(guò)擬合?
首先需要有一個(gè)基本概念,機(jī)器學(xué)習(xí)目前還是處于統(tǒng)計(jì)學(xué)習(xí)范疇,即在一堆數(shù)據(jù)集(訓(xùn)練集)中尋找規(guī)律,然后在新的數(shù)據(jù)(測(cè)試集)預(yù)測(cè)結(jié)果,如果在新數(shù)據(jù)那預(yù)測(cè)的效果不佳但訓(xùn)練集效果極好,這時(shí)候我們就大概率確認(rèn)是過(guò)擬合的情況。
機(jī)器學(xué)習(xí)過(guò)擬合情況.png|550
如何緩解過(guò)擬合?
增加訓(xùn)練集
這是一個(gè)很直接但有效的解決方案,可以想象一下,我們假定模型的靈活性很高,它很好地?cái)M合了我們的訓(xùn)練集,但我們的訓(xùn)練集(已有的數(shù)據(jù))無(wú)法很好把數(shù)據(jù)的真實(shí)分布(全域數(shù)據(jù))給展示出現(xiàn)來(lái),所以我們?cè)谟?xùn)練集的效果很好,但跑到測(cè)試集時(shí),效果就會(huì)差。
那這時(shí)候,我們拿更多的數(shù)據(jù),將實(shí)際的真實(shí)分布(全域數(shù)據(jù))展現(xiàn)出來(lái),這時(shí)候模型去擬合,就可以提升整體效果。
那如何做數(shù)據(jù)增強(qiáng)?我建議最好還是根據(jù)對(duì)業(yè)務(wù)問(wèn)題的理解創(chuàng)造出新的數(shù)據(jù)。
例如,你要做的是圖像識(shí)別,這時(shí)候數(shù)據(jù)增強(qiáng)有可能考慮隨機(jī)裁剪、顏色變換、隨機(jī)遮擋等,比較少會(huì)出現(xiàn)上下翻轉(zhuǎn)或者鏡像翻轉(zhuǎn)這種,除非真實(shí)場(chǎng)景有這個(gè)需求,所以做數(shù)據(jù)增強(qiáng)的時(shí)候,都是根據(jù)你的真實(shí)場(chǎng)景去構(gòu)造新的數(shù)據(jù),來(lái)將你的訓(xùn)練集越變?cè)酱螅M量符合全域數(shù)據(jù)的情況(或者說(shuō)你構(gòu)造數(shù)據(jù)的時(shí)候,已經(jīng)考慮了測(cè)試集出現(xiàn)的情況)。
對(duì)模型做限制
我們知道全連接網(wǎng)絡(luò)是可以擬合無(wú)數(shù)分布的一種網(wǎng)絡(luò)結(jié)構(gòu),正是因?yàn)槟P吞`活了,所以在做梯度下降的時(shí)候,其實(shí)擬合的曲線只匹配了訓(xùn)練集那部分,還不能很好覆蓋到測(cè)試集的情況。所以我們可以通過(guò)限制模型的可以擬合的分布情況,來(lái)快速提高模型泛化性能。
例如,假設(shè)我們知道這個(gè)數(shù)據(jù)集其實(shí)就是一個(gè)二元函數(shù)的數(shù)據(jù)集,那我們提供一個(gè)2次曲線,是不是就很容易擬合成功并且預(yù)測(cè)得很好?答案肯定是的。同理,我們?cè)卺槍?duì)CV相關(guān)數(shù)據(jù)集,會(huì)一開(kāi)始就考慮CNN(卷積神經(jīng)網(wǎng)絡(luò)),也是因?yàn)檫@個(gè)數(shù)據(jù)的先驗(yàn)分布我們清楚,所以用CNN這種針對(duì)圖像特性處理的模型,初始效果就能比較不錯(cuò)。
當(dāng)然也有其他方法,例如正則化、early stopping、dropout等,都可以一定程度緩解模型過(guò)擬合問(wèn)題。
參考引用: [李宏毅-《機(jī)器學(xué)習(xí)》](https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php)
本文轉(zhuǎn)載自?????沐白AI筆記?????,作者:楊沐白
