【原創】batch-GD, SGD, Mini-batch-GD, Stochastic GD, Online-GD -- 大數據背景下的梯度訓練算法


機器學習中梯度下降(Gradient Descent, GD)算法只需要計算損失函數的一階導數,計算代價小,非常適合訓練數據非常大的應用。

梯度下降法的物理意義很好理解,就是沿着當前點的梯度方向進行線搜索,找到下一個迭代點。但是,為什么有會派生出 batch、mini-batch、online這些GD算法呢?

原來,batch、mini-batch、SGD、online的區別在於訓練數據的選擇上:

  batch mini-batch Stochastic Online
訓練集 固定 固定 固定 實時更新
單次迭代樣本數 整個訓練集 訓練集的子集 單個樣本 根據具體算法定
算法復雜度 一般
時效性 一般(delta 模型) 一般(delta 模型)
收斂性 穩定 較穩定 不穩定 不穩定

 

1. batch GD

每次迭代的梯度方向計算由所有訓練樣本共同投票決定,

batch GD的損失函數是:

\[J(\theta ) = \frac{1}{{2m}}\sum\limits_{i = 1}^m {{{({h_\theta }({x^{(i)}}) - {y^{(i)}})}^2}} \]

訓練算法為:

\[\begin{array}{l}
repeate\{ \\
\theta : = \theta - \alpha \frac{1}{m}\sum\limits_{i = 1}^m ( {h_\theta }({x^{(i)}}) - {y^{(i)}})x_j^{(i)}\\
\}
\end{array}\]

什么意思呢,batch GD算法是計算損失函數在整個訓練集上的梯度方向,沿着該方向搜尋下一個迭代點。”batch“的含義是訓練集中所有樣本參與每一輪迭代。

2. mini-batch GD

batch GD每一輪迭代需要所有樣本參與,對於大規模的機器學習應用,經常有billion級別的訓練集,計算復雜度非常高。因此,有學者就提出,反正訓練集只是數據分布的一個采樣集合,我們能不能在每次迭代只利用部分訓練集樣本呢?這就是mini-batch算法。

假設訓練集有m個樣本,每個mini-batch(訓練集的一個子集)有b個樣本,那么,整個訓練集可以分成m/b個mini-batch。我們用\(\omega \)表示一個mini-batch, 用\({\Omega _j}\)表示第j輪迭代中所有mini-batch集合,有:

\[\Omega  = \{ {\omega _k}:k = 1,2...m/b\} \]

那么, mini-batch GD算法流程如下:

\[\begin{array}{l}
repeate\{ \\
{\rm{ }}repeate\{ \\
{\rm{ for each }}{\omega _k}{\rm{ in }}\Omega :\\
{\rm{ }}\theta : = \theta - \alpha \frac{1}{b}\sum\limits_{i = 1}^b ( {h_\theta }({x^{(i)}}) - {y^{(i)}}){x^{(i)}}\\
{\rm{ }}\} for(k = 1,2...m/b)\\
\}
\end{array}\]

3. Stochastic GD (SGD)

 隨機梯度下降算法(SGD)是mini-batch GD的一個特殊應用。SGD等價於b=1的mini-batch GD。即,每個mini-batch中只有一個訓練樣本。

4. Online GD

隨着互聯網行業的蓬勃發展,數據變得越來越“廉價”。很多應用有實時的,不間斷的訓練數據產生。在線學習(Online Learning)算法就是充分利用實時數據的一個訓練算法。

Online GD於mini-batch GD/SGD的區別在於,所有訓練數據只用一次,然后丟棄。這樣做的好處是可以最終模型的變化趨勢。比如搜索廣告的點擊率(CTR)預估模型,網民的點擊行為會隨着時間改變。用batch算法(每天更新一次)一方面耗時較長(需要對所有歷史數據重新訓練);另一方面,無法及時反饋用戶的點擊行為遷移。而Online Leaning的算法可以實時的最終網民的點擊行為遷移。

 

Ref:

1. http://en.wikipedia.org/wiki/Gradient_descent

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM