改善深層神經網絡(吳恩達) 第一週 ———— 正則化(Regularization)_02

當一個模型過擬合的時候,該模型的方差比較大。
可以增加數據。
下面介紹的是L2正則化DropOut正則化,以解決過擬合的問題。
詳細代碼作業:改善深層神經網絡(吳恩達) 第一週 ———— 正則化(Regularization)_01_作業
詳細介紹吳恩達《優化深度神經網絡》課程筆記(1)– 深度學習的實用層面
下面是上述文章的簡略版


首先看一張圖:
在這裏插入圖片描述
上圖,(沒有使用正則化)可以很明顯的看出:

  • 訓練集的準確率會很高。
  • 但是在測試集的表現可能會不太好。
  • 過擬合(高方差)

L2 regularization

J(w[1],b[1], ,w[L],b[L])=1mi=1mL(y^(i),y(i))+λ2ml=1Lw[l]2J\left(w^{[1]}, b^{[1]}, \cdots, w^{[L]}, b^{[L]}\right)=\frac{1}{m} \sum_{i=1}^{m} L\left(\hat{y}^{(i)}, y^{(i)}\right)+\frac{\lambda}{2 m} \sum_{l=1}^{L}\left\|w^{[l]}\right\|^{2}
w[l]2=i=1n[l]j=1n[l1](wij[l])2\left\|w^{[l]}\right\|^{2}=\sum_{i=1}^{n^{[l]}} \sum_{j=1}^{n^{[l-1]}}\left(w_{i j}^{[l]}\right)^{2}
在損失函數的後面,增加一部分。(相比較來說,參數很大程度上由w決定,改變b值對整體模型影響較小。所以,一般爲了簡便,就忽略對b的正則化了。)
在這裏插入圖片描述程序的整體思路是:正向—>損失函數—>反向傳播。
由於損失函數的改變,反向傳播的過程,也要增加多出來那一部分的倒數。
即:由於加入了正則化項,梯度下降算法中的dw[l]dw^{[l]}計算表達式需要做如下修改:
dw[l]=dwbefore[l]+λmw[l]w[l]:=w[l]αdw[l]\begin{aligned} d w^{[l]} &=d w_{b e \text {fore}}^{[l]}+\frac{\lambda}{m} w^{[l]} \\ w^{[l]} : &=w^{[l]}-\alpha \cdot d w^{[l]} \end{aligned}

爲什麼正則化可以減輕過擬合?
在這裏插入圖片描述

DropOut regularization

Dropout通過每次迭代訓練時,隨機選擇不同的神經元,相當於每次都在不同的神經網絡上進行訓練,類似機器學習中Bagging的方法(三個臭皮匠,賽過諸葛亮),能夠防止過擬合。

除此之外,還可以從權重w的角度來解釋爲什麼dropout能夠有效防止過擬合。對於某個神經元來說,某次訓練時,它的某些輸入在dropout的作用被過濾了。而在下一次訓練時,又有不同的某些輸入被過濾。經過多次訓練後,某些輸入被過濾,某些輸入被保留。這樣,該神經元就不會受某個輸入非常大的影響,影響被均勻化了。也就是說,對應的權重w不會很大。這從從效果上來說,與L2 regularization是類似的,都是對權重w進行“懲罰”,減小了w的值。
在這裏插入圖片描述
隨機刪除節點的過程(以第三層進行舉例):

  • 產生和A3形狀相同的隨機數矩陣:D3=np.random.rand(A3.shape[0],A3.shape[1])
  • 大於keep_prob爲1,小於keep_prob爲0:D3=D3<keep_prob
  • 關閉某些節點:A3=np.multiply(A3,D3)
  • 確保A3的的期望值不變:A3=A3/keep_prob

關閉的節點不用參與正向、方向傳播。
沒有關閉的節點,正向、方向做相同處理。

  • dA3= np.multiply(dA3,D3)
  • dA3=dA3/keep_prob

很好理解,矩陣相應的元素乘以0,想當於關閉該節點。
期望值的,我理解不了。
在這裏插入圖片描述

Other regularization methods

除了L2 regularization和dropout regularization之外,還有其它減少過擬合的方法。

一種方法是增加訓練樣本數量。但是通常成本較高,難以獲得額外的訓練樣本。但是,我們可以對已有的訓練樣本進行一些處理來“製造”出更多的樣本,稱爲data augmentation。例如圖片識別問題中,可以對已有的圖片進行水平翻轉、垂直翻轉、任意角度旋轉、縮放或擴大等等。如下圖所示,這些處理都能“製造”出新的訓練樣本。雖然這些是基於原有樣本的,但是對增大訓練樣本數量還是有很有幫助的,不需要增加額外成本,卻能起到防止過擬合的效果。

參考文章吳恩達《優化深度神經網絡》課程筆記(1)– 深度學習的實用層面

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