Thursday, July 18, 2019

深入淺出 Deep Learning(六):Optimization

深入淺出 Deep Learning(六):Optimization

2018/03/13

施工中...

-----

由於批次迭代 (Batch Gradient Descent) 把所有的資料算過一遍才會前進一步,可是當資料(訓練)非常多的時候,計算量會變成很大,所以我們會考慮使用 mini-batch 或隨機迭代。

(Stochastic Gradient Descent) 概念是把所有的訓練資料分成許多的小量資料 (mini-batch),當mini-batch的數量m=1時,即稱為 stochastic gradient descent。

現在的 SGD 一般都指 mini-batch gradient descent。

-----

BGD,全部算完更新一次,很慢。
SGD 一筆就更新一次。
mini-batch gradient descent,約 50 到 256 筆訓練資料更新一次,目前 SGD 通常指 MGD。


Momentum 是模擬物理裡動量的概念,積累之前的動量來替代真正的梯度。
Nesterov 在梯度更新時做一個校正,避免前進太快,同時提高靈敏度。

Adagrad 其實是對學習率進行了一個約束。
Adadelta 是對 Adagrad 的擴展,但是進行了計算上的簡化。
RMSprop 可以算作 Adadelta的一個特例。
Adam(Adaptive Moment Estimation)本質上是帶有動量項的 RMSprop。
Adamax 是 Adam 的一種變體,此方法對學習率的上限提供了一個更簡單的範圍。
Nadam 類似於帶有 Nesterov 動量項的 Adam。

-----

References

[4] An overview of gradient descent optimization algorithms
http://ruder.io/optimizing-gradient-descent/

[5] Deniz Yuret's Homepage  Alec Radford's animations for optimization algorithms
http://www.denizyuret.com/2015/03/alec-radfords-animations-for.html

[6] Neural Network Optimization Algorithms – Towards Data Science
https://towardsdatascience.com/neural-network-optimization-algorithms-1a44c282f61d

[7] 梯度下降优化算法综述 - CSDN博客
http://blog.csdn.net/google19890102/article/details/69942970

[8] 深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
https://zhuanlan.zhihu.com/p/22252270 

[9] 一文概览深度学习中的五大正则化方法和七大优化策略 _ 机器之心
https://www.jiqizhixin.com/articles/2017-12-20

[10] SGD算法比较 – Slinuxer
https://blog.slinuxer.com/2016/09/sgd-comparison

AdaGrad, RMSProp, Adam, ND-Adam, AMSGrad - Qiita
https://qiita.com/skitaoka/items/e6afbe238cd69c899b2a

超越Adam,从适应性学习率家族出发解读ICLR 2018高分论文 _ 机器之心
https://www.jiqizhixin.com/articles/adam-iclr-2018

[] Optimization for Deep Learning Highlights in 2017
http://ruder.io/deep-learning-optimization-2017/

-----

BGD
[] 深入淺出 Deep Learning(二):LeNet & BP
http://hemingwang.blogspot.tw/2018/02/deep-learninglenet-bp.html

BGD、SGD
[] Difference between Batch Gradient Descent and Stochastic Gradient Descent
https://towardsdatascience.com/difference-between-batch-gradient-descent-and-stochastic-gradient-descent-1187f1291aa1

BGD、SGD
[] 機器學習-隨機梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent ) - 掃文資訊
https://tw.saowen.com/a/d9c6a834a8ed189a8ff7987497c4f3070e49624ecfc1fb61822b8ed19c6572d3

BGD、SGD、MGD
[] 梯度下降法-Gradient Descent « ihong學習筆記
http://ihong-blog.logdown.com/posts/418731-gradient-descent

BGD、SGD、MGD
[] 機器學習基石 學習筆記 (3):機器可以怎麼樣學習  - YC Note
http://www.ycc.idv.tw/YCNote/post/27

-----

Momentum

Momentum
[] 路遥知马力——Momentum
https://zhuanlan.zhihu.com/p/21486826

Why Momentum Really Works
https://distill.pub/2017/momentum/


Momentum、NAG
[] Nesterov Accelerated Gradient and Momentum
https://jlmelville.github.io/mize/nesterov.html

Momentum、NAG
[] optimization - What's the difference between momentum based gradient descent, and Nesterov's accelerated gradient descent  - Cross Validated

NAG
[] 比Momentum更快:揭开Nesterov Accelerated Gradient的真面目
https://zhuanlan.zhihu.com/p/22810533

-----

RMSprop
[] 【优化算法】一文搞懂RMSProp优化算法
https://zhuanlan.zhihu.com/p/34230849 

Adam
[] Deep Learning 最优化方法之Adam - CSDN博客
https://blog.csdn.net/bvl10101111/article/details/72616516 


Incorporating Nesterov Momentum into Adam _ OpenReview
https://openreview.net/forum?id=OM0jvwB8jIp57ZJjtNEZ

AMSgrad
Adagrad、Adadelta、 RMSprop、Adam、AMSgrad
超越Adam,从适应性学习率家族出发解读ICLR 2018高分论文 _ 机器之心
https://www.jiqizhixin.com/articles/adam-iclr-2018 

On the Convergence of Adam and Beyond _ OpenReview
https://openreview.net/forum?id=ryQu7f-RZ

No comments: