優化算法:動量梯度下降+RMSprop+Adam算法+學習率衰減

原作:http://www.cnblogs.com/cloud-ken/p/7728427.html


動量梯度下降法(Momentum)

  • 另一種成本函數優化算法,優化速度一般快於標準的梯度下降算法.
  • 基本思想:計算梯度的指數加權平均數並利用該梯度更新你的權重

  • 假設圖中是你的成本函數,你需要優化你的成本函數函數形象如圖所示.其中紅點所示就是你的最低點.使用常規的梯度下降方法會有擺動這種波動減緩了你訓練模型的速度,不利於使用較大的學習率,如果學習率使用過大則可能會偏離函數的範圍.爲了避免擺動過大,你需要選擇較小的學習率.

2017-10-24_153618

  • 而是用Momentum梯度下降法,我們可以在縱向減小擺動的幅度在橫向上加快訓練的步長.

基本公式


2.7 RMSprop(均方根)

RMSprop (root mean square prop),也可以加速梯度下降.

1

  • 對於梯度下降,橫軸方向正在前進,但是縱軸會有大幅度的波動.我們現將橫軸代表參數W,縱軸代表參數b.橫軸也可以代表W[1],W[2],W[3]...W[n],但是爲了便於理解,我們將其稱之爲b和W


  •   w的在橫軸上變化變化率很小,所以dw的值十分小,所以Sdw也小,而b在縱軸上波動很大,所以斜率在b方向上特別大.所以這些微分中,db較大,dw較小.這樣W除數是一個較小的數,總體來說,W的變化很大.而b的除數是一個較大的數,這樣b的更新就會被減緩.縱向的變化相對平緩.
  • 注意:這裏的W和b標記只是爲了方便展示,在實際中這是一個高維的空間,很有可能垂直方向上是W1,W2,W5..的合集而水平方向上是W3,W4,W6...的合集.
  • 實際使用中公式建議爲:

    爲了保證實際使用過程中分母不會爲0.

  • 主要目的是爲了減緩參數下降時的擺動,並允許你使用一個更大的學習率α,從而加快你的算法速率.

2.8 Adam算法

Adam 算法基本原理是將Momentum和RMSprop結合在一起.

算法原理

IMG_20171025_110513

超參數取值


2.9 學習率衰減(learning rate decay)

  • 加快學習算法的一個辦法就是隨時間慢慢減少學習率,我們將之稱爲學習率衰減(learning rate decay)

概括

  • 假設你要使用mini-batch梯度下降法,mini-batch數量不大,大概64或者128個樣本,但是在迭代過程中會有噪音,下降朝向這裏的最小值,但是不會精確的收斂,所以你的算法最後在附近擺動.,並不會真正的收斂.因爲你使用的是固定的α,在不同的mini-batch中有雜音,致使其不能精確的收斂.

2017-10-25_125505

  • 但如果能慢慢減少學習率α的話,在初期的時候,你的學習率還比較大,能夠學習的很快,但是隨着α變小,你的步伐也會變慢變小.所以最後的曲線在最小值附近的一小塊區域裏擺動.所以慢慢減少α的本質在於在學習初期,你能承受較大的步伐, 但當開始收斂的時候,小一些的學習率能讓你的步伐小一些.

2017-10-25_125903

細節


IMG_20171025_131549

其他學習率衰減公式

指數衰減



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