隨機(jī)梯度下降法SGD
Github
由于批量梯度下降法在更新每一個參數(shù)時,都需要所有的訓(xùn)練樣本,所以訓(xùn)練過程會隨著樣本數(shù)量的加大而變得異常的緩慢。隨機(jī)梯度下降法(Stochastic Gradient Descent,簡稱SGD)正是為了解決批量梯度下降法這一弊端而提出的。
- 對上述的能量函數(shù)求偏導(dǎo):

- 由于是最小化風(fēng)險函數(shù),所以按照每個參數(shù)θ的梯度負(fù)方向來更新每個θ:

具體的偽代碼形式為:

隨機(jī)梯度下降是通過每個樣本來迭代更新一次,如果樣本量很大的情況(例如幾十萬),那么可能只用其中幾萬條或者幾千條的樣本,就已經(jīng)將theta迭代到最優(yōu)解了,對比上面的批量梯度下降,迭代一次需要用到十幾萬訓(xùn)練樣本,一次迭代不可能最優(yōu),如果迭代10次的話就需要遍歷訓(xùn)練樣本10次。但是,SGD伴隨的一個問題是噪音較BGD要多,使得SGD并不是每次迭代都向著整體最優(yōu)化方向。
優(yōu)點:訓(xùn)練速度快;
缺點:準(zhǔn)確度下降,并不是全局最優(yōu);不易于并行實現(xiàn)。
從迭代的次數(shù)上來看,SGD迭代的次數(shù)較多,在解空間的搜索過程看起來很盲目。其迭代的收斂曲線示意圖可以表示如下:

image
文章引用于 https://www.cnblogs.com/maybe2030/p/5089753.html
編輯 Lornatang
校準(zhǔn) Lornatang