梯度下降算法總結

    梯度下降算法 

優點

缺點

    BGD(batch)

1、相對噪聲低

2、凸函數可以收斂到全局小值

  1. 每更新一次參數都要遍歷所有樣本,計算量開銷大,計算速度慢
  2. 對於非凸函數收斂到局部最小值

      SGD

1、收斂速度快

2、有機會跳出局部最小值

 

1.失去所有向量化帶來的加速(無法利用矩陣操作加速計算過程)

2.噪聲大

3.永遠不會收斂,一直在最小值附近波動

 

  MBGD(mini-batch)

(事實上很多論文將之稱爲SGD)

  1. BGD和SGD的折中
  2. Batch_size比較小時,可能跳出局部最小值

 

不能收斂到最小值,在最小值附近波動

 

 

Momentum

 

收斂速度非常快

參數採用相同的學習率,對於稀疏數據不友好

Adagrad

 

爲不同的參數設置不同的學習率,易於處理稀疏數據

 

學習率不斷較小最終達到一個非常小的值,模型學習速度很慢

RMSprop

 

  1. 解決了Adagrad學習率消失的問題
  2. 善於處理非平穩目標

 

相對於Adagrad收斂速度慢

Adam

 

1、結合了Adagrad善於處理稀疏梯度和RMSprop善於處理非平穩目標的優點 
2、對內存需求較小  
3、也適用於大多非凸優化 ,適用於大數據集和高維空間 

 

 可能不收斂或者收斂到局部最小值

 

1.SGD + Momentum

被大量用在CNN 、NLP 問題上

2.Adam + SGD

Adam加速收斂過程,可能陷入到局部最小值或無法收斂,此時用小學習率 SGD 幫助 adam 跳出局部最小值。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章