过拟合(overfitting)和欠拟合(underfitting)出现原因及如何避免方案
生活随笔
收集整理的這篇文章主要介紹了
过拟合(overfitting)和欠拟合(underfitting)出现原因及如何避免方案
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 欠擬合
- 一、什么是欠擬合?
- 二、欠擬合出現(xiàn)原因
- 三、解決欠擬合(高偏差)的方法
- 過擬合
- 一、什么是過擬合?
- 二、過擬合出現(xiàn)原因
- 三、解決過擬合(高方差)的方法
欠擬合
一、什么是欠擬合?
欠擬合是指模型不能在訓(xùn)練集上獲得足夠低的誤差。換句換說,就是模型復(fù)雜度低,模型在訓(xùn)練集上就表現(xiàn)很差,沒法學(xué)習(xí)到數(shù)據(jù)背后的規(guī)律。
二、欠擬合出現(xiàn)原因
模型復(fù)雜度過低
特征量過少
三、解決欠擬合(高偏差)的方法
1. 模型復(fù)雜化? 對同一個算法復(fù)雜化。例如回歸模型添加更多的高次項,增加決策樹的深度,增加神經(jīng)網(wǎng)絡(luò)的隱藏層數(shù)和隱藏單元數(shù)等? 棄用原來的算法,使用一個更加復(fù)雜的算法或模型。例如用神經(jīng)網(wǎng)絡(luò)來替代線性回歸,用隨機(jī)森林來代替決策樹等2. 增加更多的特征,使輸入數(shù)據(jù)具有更強(qiáng)的表達(dá)能力? 特征挖掘十分重要,尤其是具有強(qiáng)表達(dá)能力的特征,往往可以抵過大量的弱表達(dá)能力的特征? 特征的數(shù)量往往并非重點(diǎn),質(zhì)量才是,總之強(qiáng)特最重要? 能否挖掘出強(qiáng)特,還在于對數(shù)據(jù)本身以及具體應(yīng)用場景的深刻理解,往往依賴于經(jīng)驗3. 調(diào)整參數(shù)和超參數(shù)? 超參數(shù)包括:- 神經(jīng)網(wǎng)絡(luò)中:學(xué)習(xí)率、學(xué)習(xí)衰減率、隱藏層數(shù)、隱藏層的單元數(shù)、Adam優(yōu)化算法中的β1和β2參數(shù)、batch_size數(shù)值等- 其他算法中:隨機(jī)森林的樹數(shù)量,k-means中的cluster數(shù),正則化參數(shù)λ等4. 增加訓(xùn)練數(shù)據(jù)往往沒有用? 欠擬合本來就是模型的學(xué)習(xí)能力不足,增加再多的數(shù)據(jù)給它訓(xùn)練它也沒能力學(xué)習(xí)好5. 降低正則化約束? 正則化約束是為了防止模型過擬合,如果模型壓根不存在過擬合而是欠擬合了,那么就考慮是否降低正則化參數(shù)λ或者直接去除正則化項過擬合
一、什么是過擬合?
過擬合是指訓(xùn)練誤差和測試誤差之間的差距太大。換句換說,就是模型復(fù)雜度高于實(shí)際問題,模型在訓(xùn)練集上表現(xiàn)很好,但在測試集上卻表現(xiàn)很差。模型對訓(xùn)練集"死記硬背"(記住了不適用于測試集的訓(xùn)練集性質(zhì)或特點(diǎn)),沒有理解數(shù)據(jù)背后的規(guī)律,泛化能力差。
二、過擬合出現(xiàn)原因
三、解決過擬合(高方差)的方法
1. 增加訓(xùn)練數(shù)據(jù)數(shù)? 發(fā)生過擬合最常見的現(xiàn)象就是數(shù)據(jù)量太少而模型太復(fù)雜? 過擬合是由于模型學(xué)習(xí)到了數(shù)據(jù)的一些噪聲特征導(dǎo)致,增加訓(xùn)練數(shù)據(jù)的量能夠減少噪聲的影響,讓模型更多地學(xué)習(xí)數(shù)據(jù)的一般特征? 增加數(shù)據(jù)量有時可能不是那么容易,需要花費(fèi)一定的時間和精力去搜集處理數(shù)據(jù)? 利用現(xiàn)有數(shù)據(jù)進(jìn)行擴(kuò)充或許也是一個好辦法。例如在圖像識別中,如果沒有足夠的圖片訓(xùn)練,可以把已有的圖片進(jìn)行旋轉(zhuǎn),拉伸,鏡像,對稱等,這樣就可以把數(shù)據(jù)量擴(kuò)大好幾倍而不需要額外補(bǔ)充數(shù)據(jù)? 注意保證訓(xùn)練數(shù)據(jù)的分布和測試數(shù)據(jù)的分布要保持一致,二者要是分布完全不同,那模型預(yù)測真可謂是對牛彈琴了2. 使用正則化約束? 在代價函數(shù)后面添加正則化項,可以避免訓(xùn)練出來的參數(shù)過大從而使模型過擬合。使用正則化緩解過擬合的手段廣泛應(yīng)用,不論是在線性回歸還是在神經(jīng)網(wǎng)絡(luò)的梯度下降計算過程中,都應(yīng)用到了正則化的方法。常用的正則化有l(wèi)1正則和l2正則,具體使用哪個視具體情況而定,一般l2正則應(yīng)用比較多3. 減少特征數(shù)? 欠擬合需要增加特征數(shù),那么過擬合自然就要減少特征數(shù)。去除那些非共性特征,可以提高模型的泛化能力4. 調(diào)整參數(shù)和超參數(shù)? 不論什么情況,調(diào)參是必須的5. 降低模型的復(fù)雜度? 欠擬合要增加模型的復(fù)雜度,那么過擬合正好反過來6. 使用Dropout? 這一方法只適用于神經(jīng)網(wǎng)絡(luò)中,即按一定的比例去除隱藏層的神經(jīng)單元,使神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)簡單化7. 提前結(jié)束訓(xùn)練? 即early stopping,在模型迭代訓(xùn)練時候記錄訓(xùn)練精度(或損失)和驗證精度(或損失),倘若模型訓(xùn)練的效果不再提高,比如訓(xùn)練誤差一直在降低但是驗證誤差卻不再降低甚至上升,這時候便可以結(jié)束模型訓(xùn)練了總結(jié)
以上是生活随笔為你收集整理的过拟合(overfitting)和欠拟合(underfitting)出现原因及如何避免方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 视频转字节,如何将视频文
- 下一篇: 静物摄影用光技巧_室内人像摄影想要拍好,