从 SGD 到 Adam —— 深度学习优化算法概览 各种优化器 重点
20210701
https://blog.51cto.com/u_15064630/2571266
【機器學習基礎】優化算法詳解
詳細
https://blog.csdn.net/u013385018/article/details/92377371
指數加權 對之前的梯度進行加權越近的權重越大,越遠的權重下降越快
詳解深度學習中的常用優化算法(寫的非常好)
https://mp.weixin.qq.com/s/Bu9GDxQQRaw74uLFPteI5w
重點
SGD沒有動量的概念 SGD最大的缺點是下降速度慢,而且可能會在溝壑的兩邊持續震蕩,停留在一個局部最優點。
SGD with Momentum
為了抑制SGD的震蕩,SGDM認為梯度下降過程可以加入慣性。下坡的時候,如果發現是陡坡,那就利用慣性跑的快一些
一階動量是各個時刻梯度方向的指數移動平均值,約等于最近 1/(1-β1)?個時刻的梯度向量和的平均值。
也就是說,t 時刻的下降方向,不僅由當前點的梯度方向決定,而且由此前累積的下降方向決定
SGD with Nesterov Acceleration
SGD 還有一個問題是困在局部最優的溝壑里面震蕩
NAG全稱Nesterov ?Accelerated Gradient?是在SGD、SGD-M的基礎上的進一步改進
不如先看看如果跟著累積動量走了一步,那個時候再怎么走??然后用下一個點的梯度方向,與歷史累積動量相結合
自適應學習率的優化算法
二階動量出現
SGD及其變種以同樣的學習率更新每個參數
對于經常更新的參數,我們已經積累了大量關于它的知識,不希望被單個樣本影響太大,希望學習速率慢一些;對于偶爾更新的參數,我們了解的信息太少,希望能從每個偶然出現的樣本身上多學一些,即學習速率大一些
AdaGrad
那就是二階動量——該維度上,迄今為止所有梯度值的平方和
參數更新越頻繁,二階動量越大,學習率就越小。
因為是單調遞增的,會使得學習率單調遞減至0,可能會使得訓練過程提前結束,即便后續還有數據也無法學到必要的知識。
AdaDelta/RMSProp
不累積全部歷史梯度,而只關注過去一段時間窗口的下降梯度
指數移動平均值大約就是過去一段時間的平均值,因此我們用這一方法來計算二階累積動量:
就避免了二階動量持續累積、導致訓練過程提前結束的問題了。
Adam
把一階動量和二階動量都用起來,就是Adam了——Adaptive + Momentum
Nadam
就是Nesterov + Adam = Nadam了
先根據一階動量走一下,然后根據一階動量和二階動量以及當前的梯度共同決定下一步的走向
Radam
RAdam將“預熱”作為降低方差的方法,但所需的預熱程度未知,而且具體情況會根據數據集不同而變化。考慮到warmup是一種方差衰減器,但所需的warmup程度是未知的,而且數據集之間是不同的,因此,作者決定用一種數學算法來作為一種動態方差衰減器
https://zhuanlan.zhihu.com/p/79506425
立即嘗鮮!碾壓Adam,最好的AI優化器RAdam來了
https://zhuanlan.zhihu.com/p/342003515
優化器怎么選?一文教你選擇適合不同ML項目的優化器
可視化分析
20210116
https://zhuanlan.zhihu.com/p/343564175
https://baijiahao.baidu.com/s?id=1613121229156499765&wfr=spider&for=pc
重點
References
[1]?Adam那么棒,為什么還對SGD念念不忘 (1) —— 一個框架看懂優化算法
[2]?An overview of gradient descent optimization algorithms
[3]?On the momentum term in gradient descent learning algorithms
[4]?Adaptive Subgradient Methods for Online Learning and Stochastic Optimization
[5]?CSC321 Neural Networks for Machine Learning - Lecture 6a
[6]?Adam: A Method for Stochastic Optimization
[7]?Incorporating Nesterov Momentum into Adam
[8]?CS231n Convolutional Neural Networks for Visual Recognition
總結
以上是生活随笔為你收集整理的从 SGD 到 Adam —— 深度学习优化算法概览 各种优化器 重点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch更新
- 下一篇: Pytorch实现MNIST(附SGD、