梯度下降法分爲三種形式:批量梯度下降(Batch Gradient Descent)、隨機梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-Batch Gradient Descent)
-
批量梯度下降(BGD)
每次迭代時使用所有的樣本來更新參數(速度慢,但迭代次數少;可以將所有的樣本放在一個矩陣中,實現並行計算)
僞代碼如下:
注:(在整個數據集上確定梯度下降的方向)當目標函數爲凸函數時,BGD一定可以達到全局最優。
-
隨機梯度下降(SGD)
每次迭代使用一個樣本來更新參數(速度快,但是不利於實現並行操作)
僞代碼如下(注意每次迭代時沒有求和操作,與批量梯度下降是不同的):
注:容易陷入局部最優。(單個樣本不能代表整體樣本的趨勢)
-
小批量梯度下降(MBGD)
每次迭代使用一批樣本來更新參數(batch_size的選擇是一個問題)
僞代碼如下(假設batch_size的大小爲10,樣本數量爲1000):