標籤:

梯度下降、隨機梯度下降(SGD)、mini-batch SGD

對目標函數Jleft( 	heta  
ight) 求梯度如下:

這就是梯度下降里的參數更新公式。

如下就總結這三種方法的不同點

  • 梯度下降:梯度下降就是我上面的推導,在梯度下降中,對於 	heta 的更新,需要計算所有的樣本然後求平均.其計算得到的是一個標準梯度。因而理論上來說一次更新的幅度是比較大的。

  • 隨機梯度下降:可以看到多了隨機兩個字,隨機也就是說我每次用樣本中的一個例子來近似我所有的樣本,用這一個例子來計算梯度並用這個梯度來更新	heta 。因為每次只用了一個樣本因而容易陷入到局部最優解中

  • 批量隨機梯度下降:他用了一些小樣本來近似全部的,其本質就是竟然1個樣本的近似不一定準,那就用更大的30個或50個樣本來近似。將樣本分成m個mini-batch,每個mini-batch包含n個樣本;在每個mini-batch里計算每個樣本的梯度,然後在這個mini-batch里求和取平均作為最終的梯度來更新參數;然後再用下一個mini-batch來計算梯度,如此循環下去直到m個mini-batch操作完就稱為一個epoch結束。

推薦閱讀:

梯度下降法快速教程 | 第二章:衝量(momentum)的原理與Python實現
為什麼 feature scaling 會使 gradient descent 的收斂更好?
為什麼隨機梯度下降方法能夠收斂?
當我們在談論 Deep Learning:DNN 與它的參數們(貳)
詳解softmax函數以及相關求導過程

TAG:梯度下降 |