泛統計理論初探——梯度下降新方法簡介

數據挖掘-梯度下降新方法簡介

梯度下降新方法簡介
   在之前的兩篇文章裏,我們介紹了梯度下降方法的歷史和演變,從批量梯度下降、隨機梯度下降方法到後續的新方法如動量加速法、AdaGrad、RMSprop、Adadelta方法等,本文再介紹幾種比較新的梯度下降方法,即Adam方法、以及在這個基礎上的AdaMax、AMSGrad等優化方法。主要是介紹Adam方法,其他的幾種方法是在Adam方法上的一種再優化,可能適應特定的問題,某種程度有可能不如Adam方法更好。
   Adam方法是最近這10年被提出的新方法,該方法在非凸優化問題的處理上效果較好,比普通的一階梯度下降方法、如SGD、RMSprop、Adadelta要更快更好地收斂到局部最優點;相比於二階梯度下降方法,該方法計算速度較快並且所需的資源較少,因爲二階梯度下降方法需要計算海塞矩陣較爲耗時。同時,該方法由於不需要設置學習率,是一種自適應的梯度下降方法,並且對於含有部分異常值數據的問題也能穩定收斂到平坦局部最優點。
   該方法的核心思路其實是吸收了之前兩篇文章介紹過的動量法Momentum和RMSProp方法的思考,即不僅在學習率調整上是自適應的,而且使用了動量方法進行了加速。在參數的迭代過程中,也是使用了指數加權平均,但是該方法是同時對梯度平方和梯度的指數平均計算,爲什麼會對梯度和梯度的平方去做指數平均計算呢,目的就是用來當作梯度的一階矩和二階矩,從而近似達到了二階梯度下降方法的效果。具體公式如下圖:
在這裏插入圖片描述
   根據公式我們發現,m(t)和v(t)分別是梯度和梯度平方的指數加權平均求得的,即最近的梯度影響較大,較早的梯度影響較小。但是在後面的兩個步驟裏是對m(t)和v(t)做了修正,因爲不修正這兩個參數可能會使得參數與真實值相差較大。最終的參數迭代是hat(m(t))除以sqrt(hat(v(t))+e)的後乘以一個很小的常數學習速度α,一般是0.001,該方法從最後一個公式就可以看出梯度和學習率都是自適應的,所以Adam在常見的梯度下降方法裏是效果比較好的。
   在Adam方法的基礎上,又有了幾種變種的方法,比如AdaMax方法,該方法在梯度迭代還是使用指數加權的方法,但對於學習率使用了max函數,函數內部是梯度和β*u(t-1) 的最大值,其實就是規範了學習率的上確界,公式如下所示:
在這裏插入圖片描述
   與此同時,其實還有其他變種的Adam方法,比如Nadam方法、AMSGrad方法,這些方法都是比較新的方法,但沒有明確例子可以說明它們在實際問題上收斂的比Adam方法更快或者更好。在後續文章還會介紹步長衰減的技巧以及二階梯度下降方法,但實際上Adam方法或者說Nadam方法基本就是目前梯度下降方法中下降最快、收斂較好的梯度下降方法了。
   總的來說,梯度下降方法的優化是還在繼續的,一階的梯度下降方法的計算效率是較高的,同時收斂的也較好,受異常值的影響較小。二階梯度下降方法由於需要計算海塞矩陣,受異常值的影響較大,不太穩定。初學者在使用不同的梯度下降方法時需要注意使用場景,儘量使用不同的梯度下降方法進行比較,從而達到更穩定的效果。

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