Pytorch Optimizers 03 — ADAM & ADAMAX

吳政龍
3 min readMay 26, 2019

--

ADAM

ADAM和ADAMAX來自同一篇論文[1],也是目前最泛用的optimizer.

其中要手動調整的參數共有三個,分別是𝛃1,𝛃2和𝛈

g本身代表誤差對權重的篇微分

𝛃1是偏微分的調整項

𝛃2是偏微分平方的調整項

𝛈是學習速率

運算如下:

以下是一些參數的比較:

ADAM的特性是可以在很短的運算次數中到達local minimum附近,但是當到達附近的時候,就會開始產生震盪的效應,或是收斂的速度變得很慢,因此目前常用的方法是當準確率上升速度變慢或停滯時,便轉換成SGD系列來持續優化.

ADAMAX

和ADAM同一篇論文所出,是作者假設ADAM運作無限次之後的數學模型,和ADAM相比可以節省一些運算資源.

以下是一些比較:

基本上收斂的模式和ADAM相似,但在接近local minimum的震盪和收斂有所不同.

各種optimizer比較

以pytorch 預設的值來跑resnet18,dataset是CIFAR-10,跑15輪的結果如下圖,可以發現不論是Loss還是準確度,ADAdelta, ADAM, ADAMAX,RMSprop都差不多在同一個水準,如果這個連續跑100輪也許會有所不同,但因為訓練時間的問題,所以就沒有做這樣的測試.

以上就是pytorch optimizer的一些介紹.

參考資料

[1]https://arxiv.org/pdf/1412.6980.pdf

--

--