Ref:https://www.zhihu.com/question/323747423/answer/790457991
首先看一下下面的流程圖,機器學習中常用的一個有梯度優化算法之間的關係:
隨機梯度下降SGD:
- 隨機採樣一個樣本,根據預測值和真實值得到損失,然後計算損失函數對參數的偏導數,來對參數進行更新
動量法momentum:
- 動量法在梯度下降法的基礎上加入一個動量變量來控制不同方向的梯度,
- 通過加入 ,使得梯度方向不變的維度上速度變快,梯度方向改變的維度上更新速度變慢,這樣就可以加快收斂並減小震盪。
Adagrad:
- 用梯度平方和對學習率進行衰減,從而實現在接近最優解時 降低學習率,提高精度的目的。
RMSprop:
- Adagrad 的學習率隨着迭代次數的增加,衰減係數累積的太大,導致學習率就變得很小,參數更新很小,使得訓練速度很慢。
- RMSprop 在Adagrad基礎上對衰減係數的計算進行了優化,降低原有梯度對衰減係數的影響,從而使學習率不會降低那麼快。
Adam:
Adam是結合了momentum(引入動量來控制梯度) 和RMSprop(引入時間衰減的梯度平方和 來降低學習率)
詳情請參閱 Ref:
8種優化器簡介 https://blog.csdn.net/weixin_38664232/article/details/104936612
如何理解Adam算法 https://www.zhihu.com/question/323747423/answer/790457991
機器學習面試之各種優化器的比較 https://www.jianshu.com/p/ee39eca29117