2020-5-20 吳恩達-改善深層NN-w1 深度學習的實用層面(1.5 爲什麼正則化可以減少過擬合?(L2正則化舉例))

1.視頻網站:mooc慕課https://mooc.study.163.com/university/deeplearning_ai#/c
2.詳細筆記網站(中文):http://www.ai-start.com/dl2017/
3.github課件+作業+答案:https://github.com/stormstone/deeplearning.ai

1.5 爲什麼正則化可以減少過擬合?Why regularization reduces overfitting

本節將介紹爲什麼正則化有利於預防過擬合和減少方差問題。

以上一節介紹過的L2正則化爲例。

在這裏插入圖片描述

觀察上圖,在前面已經介紹過,左邊是偏差大欠擬合;右邊是方差大過擬合;中間是合適的分類器,偏差和方差都不大。

假設有一個過擬合的NN,如下圖(這張圖不夠大,深度也不夠,只是做個例子解釋原理而已)
在這裏插入圖片描述

這個NN的成本函數上節課已經介紹過
J(W[l],b[l])=1mi=1mL(y^[i],y[i])+λ2ml=1LW[l]F2J(W^{[l]},b^{[l]})=\frac 1m\sum_{i=1}^mL(\hat y^{[i]},y^{[i]})+\frac \lambda{2m}\sum_{l=1}^L||W^{[l]}||^2_F
成本函數裏有一個包含弗羅貝尼烏斯範數的正則項

那麼爲什麼弗羅貝尼烏斯範數(壓縮L2範數)可以減少過擬合呢?

直觀上理解就是如果正則化參數λ\lambda設置得足夠大,那麼權重矩陣W就會被設置爲接近於0的值W[l]0W^{[l]}\approx0,於是基本上消除了一些隱藏單元的影響。
在這裏插入圖片描述

觀察上圖。
此時,這個被大大簡化了的NN會變成一個很小的網絡,小到如同一個邏輯迴歸單元,可是深度卻很大,它會使這個網絡從過度擬合的狀態更接近高偏差狀態。

當然實際上不會發生W接近0的情況,NN的所有隱藏單元依然存在,並沒有被消除,但是它們的影響變得更小了。這就使得NN變得更簡單了,貌似這樣更不容易發生過擬合,因此我不確定這個直覺經驗是否有用,不過在編程中執行正則化時,你實際可以看到一些方差減少的結果。

我們再來利用激活函數曲線解釋一下爲什麼正則化可以減少過擬合。
在這裏插入圖片描述

觀察上圖,這是激活函數tanh(z)函數曲線。
當z比較小,也就是函數在原點附近,雙曲正切函數的呈現線性狀態,上圖中間部分。
當z變得非常大或者非常小,也就是遠離原點,激活函數開始變得非線性,上圖左右2邊。

我們已經瞭解了NN正向傳播的算法公式
Z[l]=W[l]A[l1]+b[l]Z^{[l]}=W^{[l]}A^{[l−1]}+b^{[l]}
當正則化參數λ\lambda設置得足夠大,W很小,那麼Z也會變得相對比較小,也就是靠近原點位置。此時激勵函數大致呈線性,這樣每層幾乎都是線性的,和線性迴歸函數一樣。

如果每層都是線性的,那麼整個網絡就是一個線性網絡,即使是一個非常深的深層網絡,因具有線性激活函數的特徵,最終我們只能計算線性函數。

因此,它不適用於非常複雜的決策,以及過度擬合數據集的非線性決策邊界,即過擬合高方差的情況,如下圖。

在這裏插入圖片描述

總結
如果正則化參數λ\lambda變得很大,參數W很小,忽略參數b的影響,z也會相對變小。實際上,z的取值範圍很小,tanh(z)曲線函數會相對呈線性,整個NN會計算離線性函數近的值,這個線性函數非常簡單,並不是一個極複雜的高度非線性函數,不會發生過擬合。

在編程中實現正則化時候,可以看到這些結果。

最後提醒一下,在實現梯度下降時候,請使用帶正則的代價函數J,因爲只有這樣才能使代價函數對於梯度下降的每個調幅都單調遞減。如下圖
在這裏插入圖片描述

如果使用不帶正則項的代價函數J,它可能不會在所有調幅範圍內都單調遞減

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