參考我們知道,無論是機器學習還是深度學習,都希望達到乙個bias-variance tradeoff,即偏差和方差的均衡,之前部落格中也貼過乙個**:
訓練集上模型表現
測試集上模型表現
結論不好
不好欠擬合–對應高偏差或者高方差&高偏差好不好
過擬合–對應高方差好好
完美-適度擬合
以及一張來自ng課堂的:
由上表可以看到,過擬合的由來就是:模型在訓練集上表現很好,而在測試集上表現很糟糕,這時候很可能出現了過擬合:即低偏差高方差!也即過擬合的**!
同時,補充以下破壞了低偏差低方差時候的相應解決方案:
低偏差高方差:即過擬合
注:可以做到偏差和方差都降,而且一般更大的網路效果會更好,前提是網路已經正則化了!
之前在:面試 | vivo機器學習提前批面試題 已經總結過,過擬合的原因大概有以下幾個:
建模時的「邏輯假設」到了模型應用時已經不能成立了。任何**模型都是在假設的基礎上才可以搭建和應用的,常用的假設包括:假設歷史資料可以推測未來,假設業務環節沒有發生顯著變化,假設建模資料與後來的應用資料是相似的,等等。如果上述假設違反了業務場景的話,根據這些假設搭建的模型當然是無法有效應用的。
引數太多、模型複雜度高決策樹模型。如果我們對於決策樹的生長沒有合理的限制和修剪的話,決策樹的自由生長有可能每片葉子裡只包含單純的事件資料(event)或非事件資料(no event),可以想象,這種決策樹當然可以完美匹配(擬合)訓練資料,但是一旦應用到新的業務真實資料時,效果是一塌糊塗。
神經網路模型。
前文已經提到,低偏差高方差,即訓練集表現優秀,測試集表現糟糕~
上面提到的部落格中同樣提出了解決過擬合的方法,但是沒有細說,下面筆者帶著大家來深扒一波~
之前的內容重新總結了一下,大概處理方法歸為幾大類:資料集處理;正則化;整合方法;交叉驗證!
正則化。
ensemble方法。整合學習演算法也可以有效的減輕過擬合。上文也提到,過擬合的本質就是低偏差高方差,要解決過擬合,則一方面降低偏差,一方面要降低方差。bagging通過平均多個模型的結果,來降低模型的方差。boosting更多能減小偏差。
交叉驗證。詳情見之前寫的推文:機器學習 | 交叉驗證。為什麼交叉驗證能解決過擬合呢?因為交叉驗證能夠選擇比較好的泛化性的模型,不易於導致過擬合。
下面分開詳細來說一下:
優點:成本低。我們這麼做基本沒有花費,代價幾乎為零,除了一些對抗性代價。以這種方式擴增演算法資料,進而正則化資料集,減少過擬合比較廉價。
即獲取更多的資料可以有效避免過擬合。
關於l1/l2正則,early stopping是機器學習和深度學習都有的方法,而dropout是深度學習特有的處理方式!
先上公式:
機器學習l1/l2範數正則:
這時候就要問了,什麼叫l1/l2範數呢?以及l0範數?
l0/l1範數問題:為什麼用l1範數而不用l0範數?
l2範數優化和求解變得穩定快速。
l1/l2範數比較:
深度學習frobenius 弗羅貝尼烏斯範數正則:即將每個神經元的權重平方求和。
上面就是l1/l2,frobenius 弗羅貝尼烏斯範數正則化的原理,細心的小夥伴肯定發現了,這三個範數中都有乙個超引數,即 λ
\lambda
λ !這個超引數有什麼作用呢?要解釋這個問題可以首先考慮乙個問題:即為什麼基於這三種範數的正則化可以防止過擬合?
機器學習中:
深度學習中:類似機器學習
關於l1 l2正則,分別為下面兩張ppt:
什麼叫dropout呢?
那如何實現呢? 可以在兩個步驟中分別實現
模型**階段
為什麼是乘以p而不是像上面一樣除以p呢?即為啥兩個階段的縮放方式不同?
為什麼dropout能起到處理過擬合的作用呢?
形象解釋:
首先還是靈魂拷問:什麼是early stopping?
那麼如何實現呢?
神經網路中具體的做法如下:
切分資料集。首先將訓練資料劃分為訓練集和驗證集(劃分比例為2:1);
訓練模型。在訓練集上進行訓練,並且在驗證集上獲取測試結果(比如每隔5個epoch測試一下),隨著epoch的增加,如果在驗證集上發現測試誤差上公升,則停止訓練;
將停止之後的權重作為網路的最終引數。
為什麼不能一直訓練下去呢? 而非要提前停止?因為一直訓練下去測試集上的準確率會下降!為什麼會下降?可能有兩個原因:
深度學習過擬合
過擬合是深度學習中十分常見的問題,乙個模型如果過擬合了就無法很好的適用於實際的業務場景中。防止過擬合的方法 1 引入正則化 2 dropout 3 提前終止訓練 4 增加樣本量 下面一一作出詳細的介紹 模型過擬合極有可能是模型過於複雜造成的。模型在訓練的時候,在對損失函式進行最小化的同時,也需要對引...
深度學習 過擬合問題
overfitting 表現 策略 1.正則化措施 a.權值衰減 weight decay b.多模型ensemble c.資料增強 d.雜訊 e.dropout 更多參考資料 訓練集好測試集不好 1 資料增多 2 模型簡化 3 正則化 regularization 以訓練效能為代價 思路是為了將權...
深度學習 過擬合問題
1 過擬合問題 欠擬合 根本原因是特徵維度過少,模型過於簡單,導致擬合的函式無法滿足訓練集,誤差較大 解決方法 增加特徵維度,增加訓練資料 過擬合 根本原因是特徵維度過多,模型假設過於複雜,引數過多,訓練資料過少,雜訊過多,導致擬合的函式完美的 訓練集,但對新資料的測試集 結果差。過度的擬合了訓練資...