欠擬合與過擬合
欠擬合是指模型在訓(xùn)練集、驗證集和測試集上均表現(xiàn)不佳的情況;
過擬合是指模型在訓(xùn)練集上表現(xiàn)很好,到了驗證和測試階段就大不如意了,即模型的泛化能力很差。
欠擬合和過擬合一直是機(jī)器學(xué)習(xí)訓(xùn)練中的難題,在進(jìn)行模型訓(xùn)練的時候往往要對這二者進(jìn)行權(quán)衡,使得模型不僅在訓(xùn)練集上表現(xiàn)良好,在驗證集以及測試集上也要有出色的預(yù)測能力。下面對解決欠擬合和過擬合的一般方法作一總結(jié),說明大致的處理方向,具體應(yīng)用還得結(jié)合實際的任務(wù)、數(shù)據(jù)和算法模型等。
解決欠擬合(高偏差)的方法
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ù)量往往并非重點,質(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ù)λ或者直接去除正則化項
解決過擬合(高方差)的方法
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ù)量有時可能不是那么容易,需要花費一定的時間和精力去搜集處理數(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)練了
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8445瀏覽量
133122
發(fā)布評論請先 登錄
相關(guān)推薦
神經(jīng)網(wǎng)絡(luò)中避免過擬合5種方法介紹
![神經(jīng)網(wǎng)絡(luò)中避免<b class='flag-5'>過</b><b class='flag-5'>擬合</b>5種<b class='flag-5'>方法</b>介紹](https://file.elecfans.com/web1/M00/B1/D5/pIYBAF3-42eAV_-HAABv6w4ie5c905.png)
深層神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練:過擬合優(yōu)化
![深層神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練:<b class='flag-5'>過</b><b class='flag-5'>擬合</b>優(yōu)化](https://file.elecfans.com/web1/M00/D1/97/o4YBAF_HMbeAGV-1AAAPno3g51M858.png)
機(jī)器學(xué)習(xí)基礎(chǔ)知識 包括評估問題,理解過擬合、欠擬合以及解決問題的技巧
![機(jī)器學(xué)習(xí)基礎(chǔ)知識 包括評估問題,理解<b class='flag-5'>過</b><b class='flag-5'>擬合</b>、<b class='flag-5'>欠</b><b class='flag-5'>擬合</b>以及解決問題的技巧](https://file.elecfans.com//web2/M00/51/EC/poYBAGLMEWaAXD3HAAAiV52q8yI971.png)
深度學(xué)習(xí)中過擬合/欠擬合的問題及解決方案
曲線擬合的判定方法
GPS高程擬合方法研究
Matlab數(shù)據(jù)擬合基礎(chǔ)函數(shù)的使用
解析訓(xùn)練集的過度擬合與欠擬合
![解析訓(xùn)練集的過度<b class='flag-5'>擬合</b>與<b class='flag-5'>欠</b><b class='flag-5'>擬合</b>](https://file.elecfans.com/web1/M00/45/E6/pIYBAFp6wUGAV0_MAAANdyDvUZk335.png)
過擬合的概念和用幾種用于解決過擬合問題的正則化方法
![<b class='flag-5'>過</b><b class='flag-5'>擬合</b>的概念和用幾種用于解決<b class='flag-5'>過</b><b class='flag-5'>擬合</b>問題的正則化<b class='flag-5'>方法</b>](https://file.elecfans.com/web1/M00/4F/C5/o4YBAFri0ImAGbdyAAAuW_8eqn4080.png)
深度學(xué)習(xí)中過擬合、欠擬合問題及解決方案
![深度學(xué)習(xí)中<b class='flag-5'>過</b><b class='flag-5'>擬合</b>、<b class='flag-5'>欠</b><b class='flag-5'>擬合</b>問題及解決方案](https://file.elecfans.com/web1/M00/DB/65/o4YBAGAIdCKAMtFRAACEPgMcu6w711.png)
評論