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

點擊上方“AI有道”,選擇“星標”公衆號

重磅乾貨,第一時間送達

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

1. Adaptive Learning Rate

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

AdaGrad :

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

RMSProp

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

RMSProp其實和AdaGrad 是一樣的思路,但是具體求分母的時候,它考慮了歷史gradient和新的g的權重a 。

Momentum

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

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

  • 慢 very slow

  • 局部最優 local minimal

  • 鞍點 saddle point

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

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

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

  • 運動不在是基於梯度,而是基於以前的運動

  • Movement not just based on gradient, but previous movement.

其中 movement = laststep of movement - present gradient

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

Adam 算法

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

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

2. New activation function

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

新的激活函數 new activation function

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

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

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

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

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

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

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

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

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

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

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

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

Relu 可以簡化神經網絡:

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

本專欄圖片、公式很多來自臺灣大學李弘毅老師、斯坦福大學cs229、cs231n 、斯坦福大學cs224n課程。在這裏,感謝這些經典課程,向他們致敬!

作者簡介:武強 蘭州大學博士,谷歌全球開發專家Google Develop Expert(GDE Machine Learing 方向) 

CSDN:https://me.csdn.net/dukuku5038 

知乎:https://www.zhihu.com/people/Dr.Wu/activities 

漫畫人工智能公衆號:DayuAI-Founder

系列筆記: 

系列筆記 | 深度學習連載(1):神經網絡

系列筆記 | 深度學習連載(2):梯度下降

系列筆記 | 深度學習連載(3):反向傳播


推薦閱讀

(點擊標題可跳轉閱讀)

乾貨 | 公衆號歷史文章精選

我的深度學習入門路線

我的機器學習入門路線圖

 

 

 

最新 AI 乾貨,我在看 

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