日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

过拟合及常见处理办法整理

發(fā)布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 过拟合及常见处理办法整理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

????訓(xùn)練網(wǎng)絡(luò)時,遇到過擬合問題,查找后,整理成文檔,便于查看。

判斷方法

過擬合(over-fitting),機器學(xué)習(xí)模型或者是深度學(xué)習(xí)模型在訓(xùn)練樣本中表現(xiàn)得過于優(yōu)越,導(dǎo)致在驗證數(shù)據(jù)集以及測試數(shù)據(jù)集中表現(xiàn)不佳。出現(xiàn)這種現(xiàn)象的主要原因是訓(xùn)練數(shù)據(jù)中存在噪音或者訓(xùn)練數(shù)據(jù)太少

過擬合問題,根本的原因則是特征維度(或參數(shù))過多,導(dǎo)致擬合的函數(shù)完美的經(jīng)過訓(xùn)練集,但是對新數(shù)據(jù)的預(yù)測結(jié)果則較差

常見原因

1)建模樣本選取有誤,如樣本數(shù)量太少,選樣方法錯誤,樣本標(biāo)簽錯誤等,導(dǎo)致選取的樣本數(shù)據(jù)不足以代表預(yù)定的分類規(guī)則;

2)樣本噪音干擾過大,使得機器將部分噪音認(rèn)為是特征從而擾亂了預(yù)設(shè)的分類規(guī)則;

3)假設(shè)的模型無法合理存在,或者說是假設(shè)成立的條件實際并不成立;

4)參數(shù)太多,模型復(fù)雜度過高;

5)對于決策樹模型,如果我們對于其生長沒有合理的限制,其自由生長有可能使節(jié)點只包含單純的事件數(shù)據(jù)(event)或非事件數(shù)據(jù)(no event),使其雖然可以完美匹配(擬合)訓(xùn)練數(shù)據(jù),但是無法適應(yīng)其他數(shù)據(jù)集。

6)對于神經(jīng)網(wǎng)絡(luò)模型:

a)對樣本數(shù)據(jù)可能存在分類決策面不唯一,隨著學(xué)習(xí)的進行,,BP算法使權(quán)值可能收斂過于復(fù)雜的決策面;

b)權(quán)值學(xué)習(xí)迭代次數(shù)足夠多(Overtraining),擬合了訓(xùn)練數(shù)據(jù)中的噪聲和訓(xùn)練樣例中沒有代表性的特征。

解決方法

1)在神經(jīng)網(wǎng)絡(luò)模型中,可使用權(quán)值衰減的方法,即每次迭代過程中以某個小因子降低每個權(quán)值。

2)選取合適的停止訓(xùn)練標(biāo)準(zhǔn),使對機器的訓(xùn)練在合適的程度;

3)保留驗證數(shù)據(jù)集,對訓(xùn)練成果進行驗證;

4)獲取額外數(shù)據(jù)進行交叉驗證

5)正則化,即在進行目標(biāo)函數(shù)或代價函數(shù)優(yōu)化時,在目標(biāo)函數(shù)或代價函數(shù)。

以下摘抄自csdn-Fitz博客:

造成過擬合的原因有可以歸結(jié)為:參數(shù)過多或樣本過少。那么我們需要做的事情就是減少參數(shù),提供兩種辦法:

1、回想下我們的模型,假如我們采用梯度下降算法將模型中的損失函數(shù)不斷減少,那么最終我們會在一定范圍內(nèi)求出最優(yōu)解,最后損失函數(shù)不斷趨近0。那么我們可以在所定義的損失函數(shù)后面加入一項永不為0的部分,那么最后經(jīng)過不斷優(yōu)化損失函數(shù)還是會存在。其實這就是所謂的“正則化”。

一個通俗的理解便是:更小的參數(shù)值w意味著模型的復(fù)雜度更低,對訓(xùn)練數(shù)據(jù)的擬合剛剛好(奧卡姆剃刀)。

下面這張圖片就是加入了正則化(regulation)之后的損失函數(shù)。這里m是樣本數(shù)目,表示的是正則化系數(shù)。

當(dāng)過大時,則會導(dǎo)致后面部分權(quán)重比加大,那么最終損失函數(shù)過大,從而導(dǎo)致欠擬合。

當(dāng)過小時,甚至為0,導(dǎo)致過擬合。

2、對于神經(jīng)網(wǎng)絡(luò),參數(shù)膨脹原因可能是因為隨著網(wǎng)路深度的增加,同時參數(shù)也不斷增加,并且增加速度、規(guī)模都很大。那么可以采取減少神經(jīng)網(wǎng)絡(luò)規(guī)模(深度)的方法。也可以用一種叫dropout的方法。dropout的思想是當(dāng)一組參數(shù)經(jīng)過某一層神經(jīng)元的時候,去掉這一層上的一部分神經(jīng)元,讓參數(shù)只經(jīng)過一部分神經(jīng)元進行計算。注意這里的去掉并不是真正意義上的去除,只是讓參數(shù)不經(jīng)過一部分神經(jīng)元計算而已。

以下摘抄自知乎-flyqq:

https://www.zhihu.com/question/59201590

過擬合(overfitting)是指在模型參數(shù)擬合過程中的問題,由于訓(xùn)練數(shù)據(jù)包含抽樣誤差,訓(xùn)練時,復(fù)雜的模型將抽樣誤差也考慮在內(nèi),將抽樣誤差也進行了很好的擬合。

具體表現(xiàn)就是最終模型在訓(xùn)練集上效果好;在測試集上效果差。模型泛化能力弱。

為什么要解決過擬合現(xiàn)象?這是因為我們擬合的模型一般是用來預(yù)測未知的結(jié)果(不在訓(xùn)練集內(nèi)),過擬合雖然在訓(xùn)練集上效果好,但是在實際使用時(測試集)效果差。同時,在很多問題上,我們無法窮盡所有狀態(tài),不可能將所有情況都包含在訓(xùn)練集上。所以,必須要解決過擬合問題。

為什么在機器學(xué)習(xí)中比較常見?這是因為機器學(xué)習(xí)算法為了滿足盡可能復(fù)雜的任務(wù),其模型的擬合能力一般遠(yuǎn)遠(yuǎn)高于問題復(fù)雜度,也就是說,機器學(xué)習(xí)算法有「擬合出正確規(guī)則的前提下,進一步擬合噪聲」的能力。

而傳統(tǒng)的函數(shù)擬合問題(如機器人系統(tǒng)辨識),一般都是通過經(jīng)驗、物理、數(shù)學(xué)等推導(dǎo)出一個含參模型,模型復(fù)雜度確定了,只需要調(diào)整個別參數(shù)即可。模型「無多余能力」擬合噪聲。

既然過擬合這么討厭,我們應(yīng)該怎么防止過擬合呢?最近深度學(xué)習(xí)比較火,我就以神經(jīng)網(wǎng)絡(luò)為例吧:

1、獲取更多數(shù)據(jù)

這是解決過擬合最有效的方法,只要給足夠多的數(shù)據(jù),讓模型「看見」盡可能多的「例外情況」,它就會不斷修正自己,從而得到更好的結(jié)果:

如何獲取更多數(shù)據(jù),可以有以下幾個方法:

1)從數(shù)據(jù)源頭獲取更多數(shù)據(jù):這個是容易想到的,例如物體分類,我就再多拍幾張照片好了;但是,在很多情況下,大幅增加數(shù)據(jù)本身就不容易;另外,我們不清楚獲取多少數(shù)據(jù)才算夠;

根據(jù)當(dāng)前數(shù)據(jù)集估計數(shù)據(jù)分布參數(shù),使用該分布產(chǎn)生更多數(shù)據(jù):這個一般不用,因為估計分布參數(shù)的過程也會代入抽樣誤差。

2)數(shù)據(jù)增強(Data Augmentation):通過一定規(guī)則擴充數(shù)據(jù)。如在物體分類問題里,物體在圖像中的位置、姿態(tài)、尺度,整體圖片明暗度等都不會影響分類結(jié)果。我們就可以通過圖像平移、翻轉(zhuǎn)、縮放、切割等手段將數(shù)據(jù)庫成倍擴充;

2、使用合適的模型

前面說了,過擬合主要是有兩個原因造成的:數(shù)據(jù)太少+模型太復(fù)雜。所以,我們可以通過使用合適復(fù)雜度的模型來防止過擬合問題,讓其足夠擬合真正的規(guī)則,同時又不至于擬合太多抽樣誤差。

對于神經(jīng)網(wǎng)絡(luò)而言,我們可以從以下四個方面來限制網(wǎng)絡(luò)能力:

2.1、網(wǎng)絡(luò)結(jié)構(gòu) Architecture

這個很好理解,減少網(wǎng)絡(luò)的層數(shù)、神經(jīng)元個數(shù)等均可以限制網(wǎng)絡(luò)的擬合能力;


2.2、訓(xùn)練時間 Early stopping

對于每個神經(jīng)元而言,其激活函數(shù)在不同區(qū)間的性能是不同的:

當(dāng)網(wǎng)絡(luò)權(quán)值較小時,神經(jīng)元的激活函數(shù)工作在線性區(qū),此時神經(jīng)元的擬合能力較弱(類似線性神經(jīng)元)。

有了上述共識之后,我們就可以解釋為什么限制訓(xùn)練時間(early stopping)有用:因為我們在初始化網(wǎng)絡(luò)的時候一般都是初始為較小的權(quán)值。訓(xùn)練時間越長,部分網(wǎng)絡(luò)權(quán)值可能越大。如果我們在合適時間停止訓(xùn)練,就可以將網(wǎng)絡(luò)的能力限制在一定范圍內(nèi)。

2.3、限制權(quán)值 Weight-decay,也叫正則化(regularization)

原理同上,但是這類方法直接將權(quán)值的大小加入到 Cost 里,在訓(xùn)練的時候限制權(quán)值變大。以 L2 regularization為例:

?

訓(xùn)練過程需要降低整體的Cost,這時候,一方面能降低實際輸出與樣本之間的誤差 ,也能降低權(quán)值大小

2.4、增加噪聲 Noise

給網(wǎng)絡(luò)加噪聲也有很多方法:

2.4.1、在輸入中加噪聲:

噪聲會隨著網(wǎng)絡(luò)傳播,按照權(quán)值的平方放大,并傳播到輸出層,對誤差 Cost 產(chǎn)生影響。推導(dǎo)直接看 Hinton 的 PPT 吧:

在輸入中加高斯噪聲,會在輸出中生成 的干擾項。訓(xùn)練時,減小誤差,同時也會對噪聲產(chǎn)生的干擾項進行懲罰,達到減小權(quán)值的平方的目的,達到與 L2 regularization 類似的效果(對比公式)。

2.4.2、在權(quán)值上加噪聲

在初始化網(wǎng)絡(luò)的時候,用0均值的高斯分布作為初始化。Alex Graves 的手寫識別 RNN 就是用了這個方法

Graves,Alex, et al. "A novel connectionist system for unconstrained handwritingrecognition." IEEE transactions on pattern analysis and machineintelligence 31.5 (2009): 855-868.

- Itmay work better, especially in recurrent networks (Hinton)

2.4.3、對網(wǎng)絡(luò)的響應(yīng)加噪聲

如在前向傳播過程中,讓默寫神經(jīng)元的輸出變?yōu)?binary 或 random。顯然,這種有點亂來的做法會打亂網(wǎng)絡(luò)的訓(xùn)練過程,讓訓(xùn)練更慢,但據(jù) Hinton 說,在測試集上效果會有顯著提升 (But it doessignificantly better on the test set!)。

3、結(jié)合多種模型

簡而言之,訓(xùn)練多個模型,以每個模型的平均輸出作為結(jié)果。

從 N 個模型里隨機選擇一個作為輸出的期望誤差,會比所有模型的平均輸出的誤差 大(我不知道公式里的圓括號為什么顯示不了):

大概基于這個原理,就可以有很多方法了:

3.1、Bagging

簡單理解,就是分段函數(shù)的概念:用不同的模型擬合不同部分的訓(xùn)練集。以隨機森林(Rand Forests)為例,就是訓(xùn)練了一堆互不關(guān)聯(lián)的決策樹。但由于訓(xùn)練神經(jīng)網(wǎng)絡(luò)本身就需要耗費較多自由,所以一般不單獨使用神經(jīng)網(wǎng)絡(luò)做Bagging。

3.2、Boosting

既然訓(xùn)練復(fù)雜神經(jīng)網(wǎng)絡(luò)比較慢,那我們就可以只使用簡單的神經(jīng)網(wǎng)絡(luò)(層數(shù)、神經(jīng)元數(shù)限制等)。通過訓(xùn)練一系列簡單的神經(jīng)網(wǎng)絡(luò),加權(quán)平均其輸出。

3.3、Dropout

這是一個很高效的方法。

在訓(xùn)練時,每次隨機(如50%概率)忽略隱層的某些節(jié)點;這樣,我們相當(dāng)于隨機從2^H個模型中采樣選擇模型;同時,由于每個網(wǎng)絡(luò)只見過一個訓(xùn)練數(shù)據(jù)(每次都是隨機的新網(wǎng)絡(luò)),所以類似 bagging 的做法,這就是我為什么將它分類到「結(jié)合多種模型」中;

此外,而不同模型之間權(quán)值共享(共同使用這 H 個神經(jīng)元的連接權(quán)值),相當(dāng)于一種權(quán)值正則方法,實際效果比 L2regularization 更好。

4、貝葉斯方法

這部分我還沒有想好怎么才能講得清楚,為了不誤導(dǎo)初學(xué)者,我就先空著,以后如果想清楚了再更新。當(dāng)然,這也是防止過擬合的一類重要方法。

知乎-李俊毅:

防止overfitting三個角度:
1)數(shù)據(jù):augmentation;
2)網(wǎng)絡(luò):簡單化網(wǎng)絡(luò);
3)plus:正則,dropout等網(wǎng)絡(luò)模型的變種。


總結(jié)

以上是生活随笔為你收集整理的过拟合及常见处理办法整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。