1. stochastic gradient decent(CGD)
將data分小批放入神經網絡中進行計算
W += -Learning rate * dx
缺點:選擇合適的learning rate比較困難
速度慢
容易收斂到局部最優,並且在某些情況下可能被困在鞍點
2. momentum
模擬物理里動量的概念,積累之前的動量來替代真正的梯度。(利用斜坡的慣性)
m = b1 * m - Learning rate * dx
W += m
特點:在相關方向加速SGD,抑制振盪,從而加快收斂
依靠人工設置全局學習率,中后期分母上梯度平方的累加將會越來越大,使得訓練提前結束
3. adagrad
每一個參數的更新都有自己的學習率(不好走的鞋子)
v += dx^2
W += -Learning rate * dx / √v
特點:前期放大梯度,后期約束梯度,適合處理稀疏梯度
4. RMSProp
綜合了momentum和adagrad的優勢
v = b1 * v + (1 - b1) * dx^2
W += -Learning rate * dx / √v
特點:依賴於全局學習率
適合處理非平穩目標 - 對於RNN效果很好
5. Adam(又快又好)
m = b1 * m + (1 - b1) * dx
v = b2 * v + (1 - b2) * dx^2
W += -Learning rate * m / √v
特點:結合了Adagrad善於處理稀疏梯度和RMSprop善於處理非平穩目標的優點
對內存需求較小
為不同的參數計算不同的自適應學習率
也適用於大多非凸優化 - 適用於大數據集和高維空間
6. 優化器
用於改變學習效率