深度學習之優化算法


前言

          以下內容是個人學習之后的感悟,轉載請注明出處~

 

 

Mini-batch梯度下降法

  見另一篇文章:梯度下降法

 

指數加權平均

  其原理如下圖所示,以每天的溫度為例,每天的溫度加權平均值等於β乘以前一天的溫度加權平均值,再加上(1-β)乘以

當天溫度的和。β值得選取對溫度加權平均值的影響非常明顯,圖中的紅黃綠三條曲線即β取不同值時的曲線。

             

  不過此方法有個弊端,就是前期v0為0,導致初期階段的值很小,並不准確。對此,我們可以對它進行偏差修正,

vt  := v/ ( 1-β t ) 。但是大部人都不太喜歡用偏差修正,寧願忍受初期階段。

 

動量(momentum)梯度下降法

  有時候遇到下圖中的情況,我們用傳統的梯度下降法,需要花費很長的時間這並不是我們想要的效果。

                 

 

  想要解決這種問題,我們能夠快速想到的便是增大橫向的跨度,減小縱向的跨度,那么具體該怎么實施呢?

  這就需要用到動量梯度下降法了,其具體實現如下圖所示,其中β一般取0.9 。

                                 

  總之,該方法可以加快梯度下降。

 

RMSprop

  除了上述的方法外,RMSprop也可以加快梯度下降,解決動量梯度下降法提到的問題。其具體實現如下圖所示,其中寫成β2

為了和上面的β區分開來,取值一般取0.999,至於ε是為了防止分母太接近0,其一般取10-8

                                        

 

 

Adam優化算法

  該算法結合了動量(momentum)下降梯度法和RMSprop法,其具體實現見下圖:

                              

  其具體參數的取值一般如下圖所示:

                                          

 

學習率衰減

   在訓練模型的時候,通常會遇到這種情況:我們平衡模型的訓練速度和損失(loss)后選擇了相對合適的學習率(learning rate),

但是訓練集的損失下降到一定的程度后就不在下降了,比如training loss一直在0.7和0.9之間來回震盪,不能進一步下降。如下圖所示:

                                         

  遇到這種情況通常可以通過適當降低學習率(learning rate)來實現。但是,降低學習率又會延長訓練所需的時間。

  學習率衰減(learning rate decay)就是一種可以平衡這兩者之間矛盾的解決方案。學習率衰減的基本思想是:學習率隨着訓練的

進行逐漸衰減。

  學習率衰減基本有兩種實現方法:

  1. 線性衰減。例如:每過5個epochs學習率減半
  2. 指數衰減。例如:每過5個epochs將學習率乘以0.1

 

注:不同的優化算法適用於不同的深度結構。

 

 

 

 

 

 

 

以上是全部內容,如果有什么地方不對,請在下面留言,謝謝~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM