1. SGD
    1. 隨機拿一個或幾個數據做個梯度下降
  2. Momentum
    1. 當前下降的方向要與之前下降的方向加權平均。這裡的gamma取0.9,可減少震盪,更快的收斂
  3. NAG
    1. NAG(Nesterov accelerated gradient)利用Momentum預測下一步的梯度,而不是使用當前的theta
    2. http://cs231n.github.io/neural-networks-3/#sgd-and-bells-and-whistles
  4. AdaGrad
    1. 利用以前的梯度信息\sum_{i=1}^t \Vg_{i,j}^2判斷對應的特徵j是否經常被更新
    2. http://www.magicbroom.info/Papers/DuchiHaSi10.pdf
  5. RMSProp
    1. 解決AdaGrad中學習速率趨向0的問題,公式多了對累計的信息的一個指數衰減(gamma取0.9),相對AdaGrad,不存在學習速率趨向0的問題,這裡的學習速率eta就可以取小一點如0.001
    2. http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf
  6. AdaDelta
    1. AdaDelta用sqrt{Delta{t-1} + epsilon}來估計學習速率。這裡的gamma取0.95。直觀來說,就是利用之前的步長Delta估計下一步的步長
    2. https://arxiv.org/pdf/1212.5701v1.pdf
  7. Adam
    1. adaptive estimates of lower-order moments
    2. 首先Adam利用了AdaGrad和RMSProp在稀疏數據上的優點。對初始化的偏差的修正也讓Adam表現的更好
    3. http://arxiv.org/abs/1412.6980