幾種優化方法的整理(SGD,Adagrad,Adadelta,Adam)


參考自:
https://zhuanlan.zhihu.com/p/22252270

常見的優化方法有如下幾種:SGD,Adagrad,Adadelta,Adam,Adamax,Nadam

1. SGD

SGD就是每一次迭代計算mini-batch的梯度,然后對參數進行更新,是最常見的優化方法了。即:

缺點:
1. 選擇合適的learning rate 較難,對所有參數更新使用同樣的learning rate。
2. 容易收斂到局部最優,並且在某些情況下可能被困在鞍點。

2. Momentum

momentum是模擬物理動量的概念,積累之前的動量來替代真正的梯度。公式如下:

其中 u是動量因子
特點:
下降初期時,使用上一次參數更新,下降方向一致,乘上較大的動量因子能夠進行很好的加速
下降中后期時,在局部最小值來回震盪的時候,梯度接近0,動量因子使得更新幅度增大,跳出陷阱
在梯度改變方向的時候,動量因子能夠減少更新 總而言之,momentum項能夠在相關方向加速SGD,抑制振盪,從而加快收斂

3. Adagrad、Adadelta、RMSprop

這三者都是對學習率加以調整的優化方法。

4. Adam

Adam(Adaptive Moment Estimation)本質上是帶有動量項的RMSprop,它利用梯度的一階矩估計和二階矩估計動態調整每個參數的學習率。Adam的優點主要在於經過偏置校正后,每一次迭代學習率都有個確定范圍,使得參數比較平穩。


免責聲明!

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



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