【關(guān)于 過(guò)擬合和欠擬合】那些你不知道的事
作者:楊夕、芙蕖、李玲、陳海順、twilight、LeoLRH、JimmyDU、艾春輝、張永泰、金金金
面筋地址:https://github.com/km1994/NLP-Interview-Notes
個(gè)人筆記:https://github.com/km1994/nlp_paper_study

一、過(guò)擬合和欠擬合 是什么?

欠擬合和過(guò)擬合屬于對(duì)立情況,都是導(dǎo)致模型泛化能力不高的兩種常見(jiàn)原因,均是模型學(xué)習(xí)能力和數(shù)據(jù)復(fù)雜性失調(diào)的表現(xiàn)
二、過(guò)擬合/高方差(overfiting / high variance)篇
2.1 過(guò)擬合是什么及檢驗(yàn)方法?
問(wèn)題表現(xiàn)方式:高方差
如果 訓(xùn)練集 和 測(cè)試集 的 誤差間 呈現(xiàn)較大的差異時(shí),即為高方差;
在 高方差 時(shí),訓(xùn)練集 訓(xùn)練效果很好, 但是 驗(yàn)證集 的驗(yàn)證效果很差的時(shí)候, 即 訓(xùn)練集 和 驗(yàn)證集 呈現(xiàn)出 較大的差異,即模型的泛化能力差。這種現(xiàn)象 稱為 過(guò)擬合;
檢驗(yàn)方法:此時(shí),觀察模型在訓(xùn)練集和測(cè)試集上的損失函數(shù)值隨著epoch的變化情況,當(dāng) 模型 在 測(cè)試集 上的 損失函數(shù)值 出現(xiàn) 先下降后上升,那么此時(shí)可能出現(xiàn)過(guò)擬合。
2.2 導(dǎo)致過(guò)擬合的原因是什么?
訓(xùn)練集數(shù)量不足,樣本類型單一。例如:如果 我們 利用 只包含 負(fù)樣本的訓(xùn)練集 訓(xùn)練 模型,然后利用訓(xùn)練好的模型 預(yù)測(cè) 驗(yàn)證集中 的 正樣本時(shí),此時(shí)就會(huì)出現(xiàn),模型 在 訓(xùn)練的時(shí)候,效果特別好,但是在驗(yàn)證的時(shí)候效果下降問(wèn)題。因此,在選取訓(xùn)練集時(shí),應(yīng)當(dāng)覆蓋所有的數(shù)據(jù)類型;
訓(xùn)練集中存在噪聲。噪聲指的是 訓(xùn)練數(shù)據(jù)中 的 干擾數(shù)據(jù),噪聲數(shù)據(jù) 會(huì) 誤導(dǎo)模型 記錄 較多 的 錯(cuò)誤特征,而 忽略了 真實(shí)樣本 中 的正確特征信息;
模型復(fù)雜度過(guò)高。當(dāng)模型過(guò)于復(fù)雜時(shí),會(huì)導(dǎo)致 模型 過(guò)于充分 的 學(xué)習(xí)到 訓(xùn)練數(shù)據(jù)集中特征信息,但是遇到?jīng)]有見(jiàn)過(guò)的數(shù)據(jù)的時(shí)候不能夠變通,泛化能力太差。我們希望模型對(duì)不同的數(shù)據(jù)都有穩(wěn)定的輸出。模型太復(fù)雜是過(guò)擬合的重要因素。
2.3 過(guò)擬合的解決方法是什么?
標(biāo)注不同類型的樣本,是 樣本盡可能的均衡。數(shù)據(jù)經(jīng)過(guò)清洗之后再進(jìn)行模型訓(xùn)練,防止噪聲數(shù)據(jù)干擾模型;
降低訓(xùn)練模型復(fù)雜度。在訓(xùn)練和建立模型的時(shí)候,從相對(duì)簡(jiǎn)單的模型開(kāi)始,不要一開(kāi)始就把特征做的非常多,模型參數(shù)挑的非常復(fù)雜;
正則化。在模型算法中添加懲罰函數(shù)來(lái)防止模型出現(xiàn)過(guò)擬合問(wèn)題。常見(jiàn)的有L1,L2,dropout 正則化等。而且 L1正則還可以自動(dòng)進(jìn)行特征選擇;
采用 bagging(如隨機(jī)森林等)集成學(xué)習(xí)方法 來(lái) 防止過(guò)擬合;
減少特征個(gè)數(shù)(不是太推薦,但也是一種方法)??梢允褂锰卣鬟x擇,減少特征數(shù)或使用較少的特征組合,對(duì)于按區(qū)間離散化的特征,增大劃分的區(qū)間;
交叉檢驗(yàn)。利用 交叉檢驗(yàn)的方法,來(lái)讓模型得到充分的訓(xùn)練,以得到較優(yōu)的模型參數(shù);
早停策略。本質(zhì)上是交叉驗(yàn)證策略,選擇合適的訓(xùn)練次數(shù),避免訓(xùn)練的網(wǎng)絡(luò)過(guò)度擬合訓(xùn)練數(shù)據(jù);
DropOut策略。核心思想就是bagging,可以看作是低成本的集成學(xué)習(xí)。所謂的Dropout指的是在用前向傳播算法和反向傳播算法訓(xùn)練DNN模型時(shí),一批數(shù)據(jù)迭代時(shí),隨機(jī)的從全連接DNN網(wǎng)絡(luò)中去掉一部分隱藏層的神經(jīng)元?!≡趯?duì)訓(xùn)練集中的一批數(shù)據(jù)進(jìn)行訓(xùn)練時(shí),我們隨機(jī)去掉一部分隱藏層的神經(jīng)元,并用去掉隱藏層的神經(jīng)元的網(wǎng)絡(luò)來(lái)擬合我們的一批訓(xùn)練數(shù)據(jù)。使用基于dropout的正則化比基于bagging的正則化簡(jiǎn)單,這顯而易見(jiàn),當(dāng)然天下沒(méi)有免費(fèi)的午餐,由于dropout會(huì)將原始數(shù)據(jù)分批迭代,因此原始數(shù)據(jù)集最好較大,否則模型可能會(huì)欠擬合。
三、欠擬合/高偏差(underfiting / high bias)篇
3.1 欠擬合是什么及檢驗(yàn)方法?
問(wèn)題表現(xiàn):高偏差
如果 訓(xùn)練集 和 測(cè)試集 的 誤差 收斂 但是收斂值 很高時(shí),即為高偏差;
雖然 訓(xùn)練集 和 測(cè)試集 都可以收斂,但是偏差很高,訓(xùn)練集和驗(yàn)證集的準(zhǔn)確率都很低,這種現(xiàn)象 稱為 欠擬合;
檢驗(yàn)方法:模型 無(wú)法很好的擬合數(shù)據(jù),導(dǎo)致 訓(xùn)練集和測(cè)試集效果都不佳。
3.2 導(dǎo)致欠擬合的原因是什么?
原因:模型沒(méi)有 充分 學(xué)習(xí)到 數(shù)據(jù)中的特征信息,使得 模型 無(wú)法很好地?cái)M合數(shù)據(jù)
3.3 欠擬合的解決方法是什么?
特征工程。添加更多的特征項(xiàng),eg:特征組合、高次特征 等,來(lái)增大假設(shè)空間;
集成學(xué)習(xí)方法。boosting(如GBDT)能有效解決 high bias;
提高 模型復(fù)雜度。當(dāng) 所采用的模型比較簡(jiǎn)單,不能夠應(yīng)對(duì)復(fù)雜的任務(wù)。可以考慮 提升 模型復(fù)雜度,選用復(fù)雜度更好、學(xué)習(xí)能力更強(qiáng)的模型。比如說(shuō)可以使用 SVM 的核函數(shù),增加了模型復(fù)雜度,把低維不可分的數(shù)據(jù)映射到高維空間,就可以線性可分,減小欠擬合;
減小正則化系數(shù)。
參考資料
為什么PCA不被推薦用來(lái)避免過(guò)擬合?

