深度學習的優化算法,說白了就是梯度降低。每次的參數更新有兩種方式。算法
第一種,遍歷所有數據集算一次損失函數,而後算函數對各個參數的梯度,更新梯度。這種方法每更新一次參數都要把數據集裏的全部樣本都看一遍,計算量開銷大,計算速度慢,不支持在線學習,這稱爲Batch gradient descent,批梯度降低。函數
另外一種,每看一個數據就算一下損失函數,而後求梯度更新參數,這個稱爲隨機梯度降低,stochastic gradient descent。這個方法速度比較快,可是收斂性能不太好,可能在最優勢附近晃來晃去,hit不到最優勢。兩次參數的更新也有可能互相抵消掉,形成目標函數震盪的比較劇烈。性能
爲了克服兩種方法的缺點,如今通常採用的是一種折中手段,mini-batch gradient decent,小批的梯度降低,這種方法把數據分爲若干個批,按批來更新參數,這樣,一個批中的一組數據共同決定了本次梯度的方向,降低起來就不容易跑偏,減小了隨機性。另外一方面由於批的樣本數與整個數據集相比小了不少,計算量也不是很大。學習