天天看點

系列筆記 | 深度學習連載(4):優化技巧(上)

深度學習中我們總結出 5 大技巧:

系列筆記 | 深度學習連載(4):優化技巧(上)

1. Adaptive Learning Rate

我們先從Adaptive Learning Rate 談起,我Gradient Decent 中我們已經讨論了:

AdaGrad :

系列筆記 | 深度學習連載(4):優化技巧(上)

緊着AdaGrad的步伐,我們進一步看:

RMSProp

神經網絡訓練的時候,Error Surface 很有可能非常複雜

系列筆記 | 深度學習連載(4):優化技巧(上)
RMSProp其實和AdaGrad 是一樣的思路,但是具體求分母的時候,它考慮了曆史gradient和新的g的權重a 。
系列筆記 | 深度學習連載(4):優化技巧(上)
系列筆記 | 深度學習連載(4):優化技巧(上)

Momentum

如何找到最優的網絡參數呢?

optimize loss 的時候,很有可能就會遇到如下三大問題:

  • 慢 very slow
  • 局部最優 local minimal
  • 鞍點 saddle point

我們可以考慮在實體世界的場景進行映射:小球從山上滑落,在局部最低的時候,他的動量讓它沖出局部。

系列筆記 | 深度學習連載(4):優化技巧(上)

我們複習一下梯度下降:Gradient的方向和Movement 的方向相反

系列筆記 | 深度學習連載(4):優化技巧(上)

當我們考慮運動的動量後:

  • 運動不在是基于梯度,而是基于以前的運動
  • Movement not just based on gradient, but previous movement.
系列筆記 | 深度學習連載(4):優化技巧(上)

其中 movement = laststep of movement - present gradient

系列筆記 | 深度學習連載(4):優化技巧(上)

Momentum 雖然不能保證走出“困境”,但是這是一個巨大的進步

系列筆記 | 深度學習連載(4):優化技巧(上)

Adam 算法

Adam 算法是結合 RMSProp 和 Momentum, 來尋找最優解。看起來比較複雜,

實際上懂 RMSProp 和 Momentum後,也就很快了解了。

系列筆記 | 深度學習連載(4):優化技巧(上)

2. New activation function

深度學習中我們總結出5大技巧:本節我們就從新的激活函數Relu談起。

系列筆記 | 深度學習連載(4):優化技巧(上)

新的激活函數 new activation function

我們知道,激活函數在基于神經網絡的深度學習中将線性變換,轉換為非線性變換。是神經網絡能夠學到東西的重要一環。常用的激活函數有sigma, tanh 等。

從辛頓大神在2012年imagenet 中的CNN網絡中引入relu,這個神奇的看上去是線性的激活函數進入我們的視野,以後扮演者非常重要的作用。

系列筆記 | 深度學習連載(4):優化技巧(上)

那為什麼要引入relu,sigma、tanh 函數有什麼缺點呢?

最主要的問題在于deep learning 無法真正deep:

系列筆記 | 深度學習連載(4):優化技巧(上)

如圖所示,訓練上8層之後,正确率急速下降。 這是為什麼呢?

主要原因在于梯度消失Vanishing Gradient Problem

如圖所示:傳統的激活函數,資料變化後,輸出的變化比輸入小,而且根據ChainRule, 層數越深,梯度值相乘的結果越小,小到接近于0的時候,就無法學習了。

系列筆記 | 深度學習連載(4):優化技巧(上)

是以,我們引入Relu,他的特點是:

1. 計算快速(導數是1)

2. 生物學原理(貌似是大腦回路,不太了解)

3. linear piece 可以模拟任何函數(在以後的深度學習理論會講)

4. 重點是:可以解決梯度消失的問題

系列筆記 | 深度學習連載(4):優化技巧(上)

Relu 可以簡化神經網絡:

系列筆記 | 深度學習連載(4):優化技巧(上)
系列筆記 | 深度學習連載(4):優化技巧(上)

雖然Relu看起來很好(有嚴格數學證明,以後會深入講),但是在小于0的時候導數為0,對于參數學習是不利的:是以我們引入Relu的變種:leaky Relu, Parametirc Relu, 以後還會談到 Selu

系列筆記 | 深度學習連載(4):優化技巧(上)

繼續閱讀