隨機(jī)梯度下降算法從零實現(xiàn),基于Numpy

隨機(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容