文章目錄
- 1、随機梯度下降-Stochastic Gradient Descent
- 2、小批量梯度下降 - Mini-batch Gradient descent
- 3、随機梯度下降算法的收斂性
- 4、線上學習-Online Learning
- 5、映射約減-map reduce
- THE END
1、随機梯度下降-Stochastic Gradient Descent
\qquad 随機梯度下降是相對于批量梯度下降(batch gradient descent)提出的,目的在訓練集資料非常大時,加快求解梯度的速度。不同于梯度下降中,每次計算梯度的時候需要計算所有訓練資料的梯度,SGD每次隻計算一個樣本的梯度,使用計算出來的梯度對參數 θ \theta θ進行更新,SGD的流程如下所示:

\qquad 外層循環的次數通常選取1-10次。
2、小批量梯度下降 - Mini-batch Gradient descent
\qquad 小批量梯度下降介于批梯度下降和随機梯度下降之間,批梯度下降使用全部的訓練樣本來計算梯度;随機梯度下降每次隻使用一個訓練樣本來計算梯度;而小批量梯度下降每次使用 b ∈ [ 2 , 100 ] b \in [2,100] b∈[2,100](mini batch size)個訓練樣本來計算梯度。小批量梯度下降的流程如下所示:
3、随機梯度下降算法的收斂性
\qquad 在使用批梯度下降算法時,判斷收斂的方法是通過繪制成本函數 J θ J_{\theta} Jθ關于疊代次數的圖像來觀察成本是否随着疊代次數增加而減小;而在SGD中,通常采用的方法是:每隔1000次疊代,繪制前1000次疊代中單個樣本的成本 c o s t ( θ , ( x i , y i ) ) cost(\theta,(x_i,y_i)) cost(θ,(xi,yi)),進而觀察成本是否随着疊代次數增大而減小。
\qquad 在SGD中,學習率 α \alpha α通常是保持不變的,但是如果我們想得到更好的收斂效果,可以讓 α \alpha α随着疊代次數的增加而逐漸減小, α = c o n s t 1 i t e r a t i o n N u m + c o n s t 2 \alpha = \frac{const1}{iterationNum+const2} α=iterationNum+const2const1,但是這種方法需要仔細校準參數 c o n s t 1 const1 const1和 c o n s t 2 const2 const2的值。
4、線上學習-Online Learning
\qquad 線上學習處理的是連續輸入的資料流,同時需要一個模型從這些連續輸入的資料中進行學習。下面是一個線上學習的情景:某個提供運輸服務的網站,會不斷有顧客點進網站,規定起終點,然後通過網站的報價來購買運輸服務;當得到網站的報價之後,某些顧客選擇使用網站提供的運輸服務(y=1),有些顧客選擇不使用網站提供的運輸服務(y=0)。令特征 x x x記錄顧客的特征,如規定的起終點,詢問的報價等,線上學習模型需要優化網站的報價價格, p ( y = 1 ∣ x ; θ ) p(y=1|x;\theta) p(y=1∣x;θ)。運輸網站的線上學習的模型如下所示:
5、映射約減-map reduce
\qquad 映射約減的思想是将本來一台計算機需要完成的任務分給幾台計算機進行并行計算,進而提高計算效率。