過擬合: 隨著模型複雜度的增加: 訓練集誤差減小,驗證集誤差增大,
(1) early stopping
每次迭代計算驗證集的accuracy,連續10次沒突破最佳就停止訓練。
(2) 資料集擴增:
複製原有資料加上隨機雜訊,重取樣,根據當前資料集估計資料分布引數,使用該分布產生更多的資料。
(3)正則化:
範數:滿足 正定,齊次,三角不等式
||a||=n*max(|aij|)
l1 範數:各個元素絕對值之和
l2 範數: 在回歸中,稱為嶺回歸。歐幾里得距離,樣本和標籤之差的平方之和。
l1: 基於l1範數,引數絕對值和與引數的積項。
c0 是最原始的代價函式,n是樣本格式, lambda 是正則項表示式。
對於有些模型,如線性回歸(l1 正則線性回歸即為lasso 回歸),常數項b的更新方程不包括正則項,即:
梯度下降演算法中,
從上式可以看出,當w為正時,更新後w會變小,當w為負時,更新後w 會變大,因此l1正則項是為了使得那些原先處於0附近的引數w往0移動,從而降低模型的複雜度,防止過擬合,
l2 正則:l2 正則是基於l2 範數,即在目標函式後面加上引數的l2範數和項,即引數的平方和與引數的積項。即:
l2 項引數乘了1/2 ,是為了便於計算以及公式的美感。
l2 的正則項可以 使w變下加劇,更小的引數值w意味著模型的複雜度更低,對訓練資料的擬合剛剛好(奧卡姆剃刀),不會過分擬合訓練資料,從而使得不會過擬合。以提高模型的泛化能力。
比較:l1比l2 魯棒性更好,對異常點有很好的抗干擾的能力。
l2 誤差會放大很多,對異常點更敏感
l1 不太穩定,每一次調整回歸線會跳很大。
l1 會使得係數更稀疏,l2 往往有非稀疏的係數。
l2 的計算更高效。
從公式上看,兩者的區別:
l1的絕對值之和,因此同乙個問題得出的解可能有多個,
ref:
(4) dropout
(5)合適的模型:合適的層數和結構
(6) 對網路加雜訊,在權重上加雜訊,對網路的響應加雜訊
(7)結合多個模型:從n個模型中隨機選乙個的期望誤差會比所有模型的平均輸出誤差大。
bagging: 就是分段函式的概念:用不同模型擬合不同部分的訓練集,以隨機森林為例,就是訓練了一堆互不關聯的決策樹,但是神經網路本身時間長,所以不單獨使用神經網路做 。
boosting:只使用簡單的神經網路,加權平均其輸出。
參考:
機器學習中防止過擬合的處理方法
我們都知道,在進行資料探勘或者機器學習模型建立的時候,因為在統計學習中,假設資料滿足獨立同分布 i.i.d,independently and identically distributed 即當前已產生的資料可以對未來的資料進行推測與模擬,因此都是使用歷史資料建立模型,即使用已經產生的資料去訓練,...
機器學習中防止過擬合方法
在進行資料探勘或者機器學習模型建立的時候,因為在統計學習中,假設資料滿足獨立同分布,即當前已產生的資料可以對未來的資料進行推測與模擬,因此都是使用歷史資料建立模型,即使用已經產生的資料去訓練,然後使用該模型去擬合未來的資料。但是一般獨立同分布的假設往往不成立,即資料的分布可能會發生變化 distri...
深度學習中過擬合與防止過擬合的方法
1.什麼是過擬合?過擬合 overfitting 是指在模型引數擬合過程中的問題,由於訓練資料報含抽樣誤差,訓練時,複雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。具體表現就是最終模型在訓練集上效果好 在測試集上效果差。模型泛化能力弱。2.過擬合產生的原因?1 在對模型進行訓練時,有可...