機器學習中防止過擬合的處理方法

過擬合概念

過擬合指的是訓練誤差小,測試誤差大,訓練誤差和測試誤差與模型複雜度的關係如下圖所示。
在這裏插入圖片描述

防止過擬合的方法

early stopping、數據集擴增(Data augmentation)、正則化(Regularization)、Dropout

Early stopping

Early stopping是一種迭代次數截斷的方法來防止過擬合的方法,即在模型對訓練數據集迭代收斂之前停止迭代來防止過擬合。
求解最優化問題的基本方法是迭代算法。迭代算法是指採用逐步逼近的計算方法來逼近問題的精確解的方法。最優化方法有兩種基本結構,分爲線搜索方法和信頼域方法兩種類型。
線搜索方法:對極小化問題,在一個算法中,我們先選定一個初始迭代點x0∈R^n, 在該迭代點處,確定一個使函數值下降的方向,再確定在這個方向上的步長,從而求得下一個迭代點,以此類推,產生一個迭代點列{xk},{xk}或其子列應收斂於問題的最優解。當給定的某種終止準則滿足時,或者表明xk以滿足我們要求的近似最優解的精度,或者表明算法已無力進一步改善迭代點,迭代結束。
Early stopping方法的具體做法是,在每一個Epoch結束時(一個Epoch集爲對所有的訓練數據的一輪遍歷)計算validation data的accuracy,當accuracy不再提高時,就停止訓練。一般的做法是,在訓練的過程中,記錄到目前爲止最好的validation accuracy,當連續10次Epoch(或者更多次)沒達到最佳accuracy時,則可以認爲accuracy不再提高了。此時便可以停止迭代了(Early Stopping)。這種策略也稱爲“No-improvement-in-n”,n即Epoch的次數,可以根據實際情況取,如10、20、30……

數據集擴增

在數據挖掘領域流行着這樣的一句話,“有時候往往擁有更多的數據勝過一個好的模型”。數據集擴增即需要得到更多的符合要求的數據,即和已有的數據是獨立同分布的,或者近似獨立同分布的。一般有以下方法:
a.從數據源頭採集更多數據
b.複製原有數據並加上隨機噪聲
c.重採樣
d.根據當前數據集估計數據分佈參數,使用該分佈產生更多數據等

正則化方法

正則化方法是指在進行目標函數或代價函數優化時,在目標函數或代價函數後面加上一個正則項,一般有L1正則與L2正則等。

Dropout

在神經網絡中,有一種方法是通過修改神經網絡本身結構(在訓練開始時,隨機得刪除一些(可以設定爲一半,也可以爲1/3,1/4等)隱藏層神經元,即認爲這些神經元不存在,同時保持輸入層與輸出層神經元的個數不變)來實現的,其名爲Dropout。
https://blog.csdn.net/heyongluoyao8/article/details/49429629

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章