Coursera_機器學習_week10_筆記

大數據集的梯度下降算法

主要內容包括:
- 批量梯度下降法Batch Gradient Descent(BSD)
- * 隨機梯度下降Stochastic gradient descent ( SGD) *
- 小批量梯度下降 Mini-Batch Gradient Descent
- online learning
-Map-reduce 並行化計算

回顧
梯度下降算法

Jtrain(θ)=12mmi=1(hθ(x(i))y(i))2

批量梯度下降法Batch Gradient Descent(BSD)

每次迭代的時候,都對全部樣本進行計算

隨機梯度下降Stochastic gradient descent ( SGD)

先將樣本數據隨機打亂順序,然後在每次迭代中,只是用一個樣本數據
優點:節約計算成本
缺點:不是每次迭代都會是J變小,可能陷入局部最優解
爲了確保SGD收斂(Convergence),在使用第i個樣本更新θ 之前,先計算cost,也可以選擇將結果plot畫出來,來感受算法的效果,如果cost振幅很大而且不變小,試試換個learning rate 或者增加feature,如果反而增大,試試減小learning rate(α
一般情況下learning rate(α )都保持恆定;如果希望最終得到全局最優解,可以試試逐漸減小learning rate(α ):α=const1iterrationNumber+const2 ,但那樣你又多了兩個參數要調,所以通常還是用恆定learning rate(α )的多。

小批量梯度下降 Mini-Batch Gradient Descent

每次迭代使用b個樣本,b通常取值範圍2~100,Angrew經常用的是10

藉助octave的向量化計算函數,Mini-Batch 的 性能會優於 SGD;但多了一個參數b要調

online learning

當你的網站有很多訪問量,有很多免費的數據,來一個數據,計算一次,丟棄這個樣本,使用onlinelearning。如果你的網站數據量很小,那還是把數據保存下來慢慢train 比較好。
online learning 可以很好的使用用戶的變化,比如經濟危機的時候用戶可能會價格更加敏感。
舉一個搜索引擎學習CTR的例子
在線機器學習

Map-reduce 並行化計算

就是將批量梯度下降算法的求和計算分配給整個集羣
將訓練集分成若干份,每一份在一個slave機器上跑,再彙總到master機器上
如果機器學習算法中有求和計算,就可以考慮用MapReduce進行優化
Mapreduce可以用於集羣,數據中心,也可以用戶多核的單機

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章