深層神經網絡-吳恩達神經網絡和深度學習學習筆記

1 L2正則化

       \begin{aligned} &J = (W^{[1]},b^{[1]},\cdots,W^{[l]},b^{[l]})=\frac{1}{m}\sum_{i=1}^m \mathbb{L}(\hat(y)^{(i)},y^{(i)}) + \frac{\lambda}{2m}||W^{[l]}||^2 \\ &dW^{[l]}=(from \ backprop) + \frac{\lambda}{m}W^{[l]} \\ &W^{[l]} = W^{[l]} - \alpha dW^{[l]} \\ &= W^{[l]} -\frac{\alpha\lambda}{m} W^{[l]} - \alpha (from \ backprop) \\ &= (1-\frac{\alpha\lambda}{m})W^{[l]} - \alpha (from \ backprop) \end{aligned}

L2正則化又被稱作權重衰減,因爲相當於在爲正則化的基礎上將之前的W^{[l]}先衰減(1-\frac{\alpha\lambda}{m})倍。

正則化爲啥能降低過擬合?

  1. 正則化會使一部分參數接近於0,相當於降低了一些隱藏層單元的影響,相對是模型變得簡單
  2. 因爲神經網絡使用了非線性激活函數,但是當w比較小時,z通常也會比較小,對有些激活函數來說會相對集中在近線性區,例如tanh中紅線部分,會使模型相對簡單。

     

2 Droup out 正則化

Droup Out 可以隨機刪除上鏡網絡中的單元,使得每次迭代只是用到了網絡的一部分,我們不願意把賭注都放在一個節點上,即不願意給任意一個輸入加入過多權重(這邊通過可能被隨機刪除實現),droup out將產生收縮權重的平方範數的效果,若覺得某層更容易過擬合,可與將對應層的keep_prob設置的小一點。Droup out一大缺點就是損失函數J不能被明確定義,每次迭代都會隨機移除一些節點,這導致我們無法check是否每一次都在朝梯度減小的方向運行,若想要debug,可以關掉Droup out。上圖以第3層舉例,這邊我們需要注意,爲了儘量不影響到第四層的計算,我們期望第3層的輸出期望不變,故在進行隨機失活後,我們會將第三層的輸出除以keep_prob,這邊keep_prob表示被保留的概率,keep_prob=1表示保留所有單元,即不做Droup out。

3 其他正則化

  1. 數據增廣
  2. early stopping:因爲權重參數通常是隨機初始化的比較小的數據,隨着迭代的進行,權重參數可能慢慢變大,及早停止,可能有部分權重參數還比較小

    

4 提升速度

  1. 數據歸一化,同傳統機器學習一樣,方便執行梯度下降
  2. 梯度消失/爆炸

產生原因:

         下圖舉了一個🌰,深度神經網絡,激活函數使用恆等函數,權重矩陣相同,權重參數是這些層的所有的權重矩陣的乘積,相當於指數級別的增長,若參數大於1,則很容易變得很大,若小於1,則很容易變得很小。

     

       再舉一個例子,假設前一層單元很多,則該層輸入很多,累加值有可能比較大,爲了防止值過大或過小,單元數n越大,我們希望權重參數越小,這樣累加值才小。所以在權重參數初始化的時候,我們可以在隨機初始化的基礎上除以輸入特徵規模相關。

       

 

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