機器學習筆記(十)大規模機器學習

2022-06-30 04:18:08 字數 1868 閱讀 4864

lage scale machine learnning(大規模機器學習)

1、判斷是否有必要擴大資料量?

使用學習曲線,觀察隨著 m 的增大,測試誤差是否有顯著下降,如高方差情況(過擬合).

2、stochastic gradient descent(隨機梯度下降):

(1)問題背景:

當資料過於龐大,一次性無法完全讀取資料,在求和的時候無法完成所有資料的求和.

(2)對比 batch gradient descent(批量梯度下降):

① 演算法區別:

其中:

外層迴圈一般1 - 10次.

② 擬合流程區別:

批量梯度下降:接近一條直線去靠近全域性最小值;

隨機梯度下降:迂迴徘徊地靠近全域性最小值.

(3)檢查收斂性:

每1000次迭代計算一次平均代價,繪製出影象,影象可能會存在雜訊,但是總體趨勢下降即可判斷是收斂.

下圖紅色線條的學習速率更小,**會更小:

倘若資料總量太少,設定的迭代次數間隔太大,那麼雜訊會很大,下降趨勢不夠明顯,如下圖:

下圖表示演算法發散,可以嘗試更小的學習速率:

3、mini-batch gradient descent(小批量梯度下降):

批量梯度下降每次迭代使用 m 個樣本,隨機梯度下降每次迭代使用 1 個樣本.

而小批量梯度下降每次迭代使用 b 個樣本.

b 為「迷你批次」的引數,通常取值 2 - 100.

舉例說明:假設在貨運系統中,客戶出價 x 讓貨車從a運到b,貨車可以選擇接受(y = 1)和拒絕(y = 0). 依據 p( y = 1 | x; θ),來優化** x.

repeat forever{

get (x, y) corresponding to user;

update θ using (x, y):

θj := θj - α (hθ(x) - y) x; (j = 0, 1, ..., n)

5、map reduce(對映約減):

(1)原理:

假設存在 m 個訓練樣本,將訓練集等分成 c 份(這裡假設是4個).將訓練樣本的子集送到 c 臺不同計算機,每一台對 m/c 個資料進行求和運算,再送到中心計算伺服器:

combine: 求和部分轉為四個 temp的累加.

(2)注意點:

① 若不考慮網路延遲和傳輸時間,演算法可以得到四倍加速.

② 當主要運算量在於訓練樣本的求和時,可以考慮使用對映化簡技術.

機器學習 大規模機器學習

當資料有大量的資料,比如1億以上的時候,如果想擬合乙個線性回歸或者邏輯回歸時,梯度下降演算法的計算量將是非常龐大的。預檢查 為什麼不用1000個樣本,而需要用11億個?遇到高偏差問題時候,選擇合適大小的資料集即可,再增加資料集並不會改善,處理方式為尋找新的模型。如果是低方差的模型,增加資料集的規模可...

大規模機器學習

如果我們有乙個低方差的模型,增加資料集的規模可以幫助你獲得更好的結果。我們應 該怎樣應對乙個有 100 萬條記錄的訓練集?以線性回歸模型為例,每一次梯度下降迭代,我們都需要計算訓練集的誤差的平方和,如果我們的學習演算法需要有 20 次迭代,這便已經是非常大的計算代價。首先應該做的事是去檢查乙個這麼大...

大規模機器學習

如果我們有乙個低方差的模型,增加資料集的規模可以幫助你獲得更好的結果。我們應 該怎樣應對乙個有 100 萬條記錄的訓練集?以線性回歸模型為例,每一次梯度下降迭代,我們都需要計算訓練集的誤差的平方和,如果我們的學習演算法需要有 20 次迭代,這便已經是非常大的計算代價。首先應該做的事是去檢查乙個這麼大...