批量梯度下降(BGD),隨機梯度下降(SGD),小批量梯度下降(MBGD)對比理解

1.批量梯度下降(BGD)

我們所說的梯度下降算法一般都默認是批量梯度下降。我們用每個樣本去計算每個參數的梯度後,要將這個梯度進行累加求和
在這裏插入圖片描述
注意這裏有一個求和符號,意思就是我們每次計算參數都是用全部的樣本來計算這個參數的變化。
優點:
1.每次都使用全部全部數據,能更好的代表樣本總體,從而更好的指示了正確的梯度下降的方向。
2.對於凸最優化問題,一定能夠收斂的全局最優
3 可以並行化
缺點:
每次都使用全部樣本進行計算,會導致計算量很大,對於樣本數量很大的情況,這種計算會很耗費時間。

2.隨機梯度下降(SGD)

與批量梯度下降不同,隨機梯度下降每次迭代只使用一個樣本來更新參數,使得訓練速度更快。
在這裏插入圖片描述
注意這裏是沒有求和符號的,因爲只用第i個樣本來進行這次更新的計算。

優點:
每次迭代只用一個樣本來更新參數,這就使得每次迭代的速度會大大加快,雖然不是每次迭代得到的損失函數都向着全局最優方向, 但是大的整體的方向是向全局最優解的。
缺點:
很大可能會收斂於局部最優

3.小批量梯度下降(MBGD)

小批量梯度下降實際上是在批量梯度下降和隨機梯度下降之間做了箇中和。
下面我們假設一共1000個樣本,每次迭代用10個樣本進行參數更新,那麼參數的更新如下。
在這裏插入圖片描述
對於小批量梯度下降需要注意的就是這個批量batch大小的選擇:
如果選擇過大:
1.如果batch過大的話,那麼我們每個batch就變化很小,就有點接進去批量梯度下降算法
2.內存可能會撐不住
如果選擇過小:
會導致其接近於隨機梯度下降算法,它的梯度方向可能沒那麼準確

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