Large Scale Machine Learning
1. Gradient Descent with Large Datasets
1.1 Learning with large Datasets
左側(cè)是高方差,右側(cè)是高偏差提完;對于高方差來說增大數(shù)據(jù)集是有效的改進(jìn)方法萨咕,對于高偏差不需要增大數(shù)據(jù)集惯疙。
1.2 Stochastic Gradient Descent【隨機(jī)梯度下降】
隨機(jī)梯度下降:
- 隨機(jī)打亂dataset
-
循環(huán)遍歷m個(gè)訓(xùn)練樣本,用每個(gè)訓(xùn)練樣本進(jìn)行θ調(diào)整骂因,不需要讀入全部的m個(gè)數(shù)據(jù)就已經(jīng)開始將參數(shù)朝著全局最小值方向調(diào)整了。
隨機(jī)梯度下降外層循環(huán)通常1-10次,有時(shí)一次就能達(dá)到一個(gè)不錯(cuò)的效果跨扮;每次更新θ,大多向著cost function最小的方向進(jìn)行验毡;最后的結(jié)果是在全局最優(yōu)較小的附近范圍內(nèi)衡创。
1.3 Mini-Batch Gradient Descent【小批量梯度下降】
有時(shí)比隨機(jī)梯度下降快一些
1.4 Stochastic Gradient Descent Convergence
隨機(jī)梯度下降算法在每步更新θ前,計(jì)算cost(θ晶通,(,))璃氢,每1000次迭代后計(jì)算這1000個(gè)cost的均值并通過畫圖觀察SGD是否在收斂。
- 左上.紅線相對于藍(lán)線學(xué)習(xí)速率α更小录择,cost振動(dòng)頻率較低拔莱,可能會(huì)獲得更優(yōu)的結(jié)果碗降,但是與學(xué)習(xí)速率較大的結(jié)果差異一般不大;
- 右上.紅線增大了平均的訓(xùn)練樣本數(shù)塘秦,如從1000改為5000讼渊;
- 左下.藍(lán)線因?yàn)樵肼曁鬀]有收斂;紅線是5000個(gè)樣本取平均的運(yùn)行效果尊剔,能夠看出收斂趨勢爪幻;粉線也是5000個(gè)樣本的平均運(yùn)行效果,但是沒有收斂趨勢须误,需要調(diào)整學(xué)習(xí)速率挨稿、或者改變特征變量等;
- 右下.算法在發(fā)散京痢,因此需要使用一個(gè)較小的學(xué)習(xí)速率α奶甘。
-
綜上,曲線上下振動(dòng)噪聲較大時(shí)祭椰,可以采用更多數(shù)據(jù)的平均值臭家;如果曲線上升,可以換一個(gè)小點(diǎn)的α值方淤。
大多隨機(jī)梯度下降算法中钉赁,學(xué)習(xí)速率α是保持不變的,因此最終得到的一般是全局最小值附近的一個(gè)值携茂;如果想要得到更優(yōu)的解你踩,可以隨運(yùn)行時(shí)間減小α的值,但這種做法需要確定一些額外的參數(shù)讳苦。
2. Advanced Topics
2.1 Online Learning
當(dāng)在線網(wǎng)址數(shù)據(jù)流足夠大的時(shí)候带膜,每次用戶做了決定就對參數(shù)集θ進(jìn)行更新,不重復(fù)使用數(shù)據(jù)医吊;如果數(shù)據(jù)流不夠大钱慢,應(yīng)該像之前那樣取一定得數(shù)據(jù)集進(jìn)行訓(xùn)練;當(dāng)進(jìn)行動(dòng)態(tài)更新θ時(shí)卿堂,更加能夠應(yīng)對價(jià)格敏感情況束莫。
預(yù)測點(diǎn)擊率(Click through rate)
2.2 Map Reduce and Data Parallelism