為什麼正則化可以防止過擬合?

2021-09-19 13:59:44 字數 1772 閱讀 1362

為什麼正則化有利於預防過擬合呢?為什麼它可以減少方差問題?我們通過兩個例子來直觀體會一下。

左圖是高偏差,右圖是高方差,中間是just right,這幾張圖我們在前面課程中看到過。

直觀上理解就是如果正則化引數設定得足夠大,權重矩陣被設定為接近於0的值,直觀理解就是把多隱藏單元的權重設為0,於是基本上消除了這些隱藏單元的許多影響。如果是這種情況,這個被大大簡化了的神經網路會變成乙個很小的網路,小到如同乙個邏輯回歸單元,可是網路深度卻很深,它會使這個網路從過度擬合的狀態更接近高偏差狀態。

但是會存在乙個中間值,於是會有乙個接近「just right」的中間狀態。

直觀理解就是增加到足夠大,會接近於0,實際上是不會發生這種情況的,我們嘗試消除或至少減少許多隱藏單元的影響,最終這個網路會變得更簡單,這個神經網路越來越接近邏輯回歸,我們直覺上認為大量隱藏單元被完全消除了,其實不然,實際上是該神經網路的所有隱藏單元依然存在,但是它們的影響變得更小了。神經網路變得更簡單了,貌似這樣更不容易發生過擬合,因此我不確定這個直覺經驗是否有用,不過在程式設計中執行正則化時,你實際看到一些方差減少的結果。

我們再來直觀感受一下,正則化為什麼可以預防過擬合,假設我們用的是這樣的雙曲線啟用函式。

用表示,那麼我們發現,只要非常小,如果只涉及少量引數,這裡我們利用了雙曲正切函式的線性狀態,只要可以擴充套件為這樣的更大值或者更小值,啟用函式開始變得非線性。

現在你應該摒棄這個直覺,如果正則化引數λ很大,啟用函式的引數會相對較小,因為代價函式中的引數變大了,如果很小,

如果很小,相對來說,也會很小。

特別是,如果的值最終在這個範圍內,都是相對較小的值,大致呈線性,每層幾乎都是線性的,和線性回歸函式一樣。

如果每層都是線性的,那麼整個網路就是乙個線性網路,即使是乙個非常深的深層網路,因具有線性啟用函式的特徵,最終我們只能計算線性函式,因此,它不適用於非常複雜的決策,以及過度擬合資料集的非線性決策邊界,如同我們在幻燈片中看到的過度擬合高方差的情況。

總結一下,如果正則化引數變得很大,引數w很小,z也會相對變小,此時忽略b的影響,z會相對變小,實際上,z的取值範圍很小,這個啟用函式,也就是曲線函式tanh會相對呈線性,整個神經網路會計算離線性函式近的值,這個線性函式非常簡單,並不是乙個極複雜的高度非線性函式,不會發生過擬合。

為什麼正則化可以防止過擬合?

加上正則化項之後的損失函式 j w l b l 1m i 1 ml y y 2m l 1 l w l f2j w b frac sum ml y y frac sum l w 2 f j w l b l m 1 i 1 m l y y 2m l 1 l w l f2 f表示frobenius範數 縮...

丟棄法為什麼可以防止過擬合

丟棄法為什麼和weight decay l2 norm 一樣也能達到防止過擬合的效果。什麼是丟棄法 當我們對該隱藏層使 丟棄法時,該層的隱藏單元將有 定概率被丟棄掉。設丟棄概率為p,那麼 有p 的概率hi 會被清零,有1 p 的概率hi 會除以1 p 做拉伸。丟棄概率是丟棄法的超引數。h1,h2,h...

正則化防止過擬合

在之前的線性回歸就有提到正則化,下面就來更具體地介紹正則化。1.正則化的作用 當訓練資料比較少時,或模型訓練過度時,常常會導致過擬合。正則化主要作用就是通過減小模型的複雜度來防止過擬合,提高泛化能力。為了更好的了解過擬合以及為後面做鋪墊,還是先看乙個吳恩達機器學習系列課程中乙個線性回歸來 房價的例子...