在大數(shù)據(jù)下應用機器學習算法

大量的數(shù)據(jù)對機器學習算法的研究很有幫助,當我們直到算法有較高的方差(variance)時,增加m會有助于改善算法。
但是當m很大時,比如m=100,000,000時,在這種情況下,在計算時就會消耗更多的成本。

使用隨機梯度下降或小批量梯度下降

在使用批量梯度下降時,假設有1億的樣本,就要對1億的樣本求和,這樣的成本太高了,使用隨機梯度下降,每次對一個樣本,或者小批量梯度下降,對幾十個樣本求和,可以大大減小計算,加快速度。

映射約減(Map Reduce),并行化處理

在設計網(wǎng)站時,當用戶量增加時,一臺服務器不足以承載這么多用戶,我們會增加服務器,用負載均衡來解決。
同樣的在解決大量數(shù)據(jù)的機器學習問題上,一臺機器有時也不足以完成任務。

以線性回歸為例,假設有400個樣本,它的批量梯度下降的內(nèi)部迭代為:
\theta_j:=\theta_j?\alpha \left( \frac{1}{400} \sum_{i=1}^{400}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} \right)

同時有四臺機器,將樣本分為四份:
機器1: x^{(1)},x^{(2)},...,x^{(100)}
機器2: x^{(101)},x^{(102)},...,x^{(200)};
機器3: x^{(201)},x^{(202)},...,x^{(300)};
機器4: x^{(301)},x^{(302)},...,x^{(400)}。

分別將梯度下降大括號里的求和分成4在四個機器上運算:
機器1:temp_j^{(1)}=\sum_{i=1}^{100}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
機器2:temp_j^{(2)}=\sum_{i=1}^{200}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
機器3:temp_j^{(3)}=\sum_{i=1}^{300}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
機器4:temp_j^{(4)}=\sum_{i=1}^{400}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}

然后將4份數(shù)據(jù)匯總到另一臺機器上做求和運算。
\theta_j := \theta_j - \alpha \dfrac{1}{400}(temp_j^{(1)} + temp_j^{(2)} + temp_j^{(3)} + temp_j^{(4)})
這樣能將原來的速度提升解決4倍,這是一個很大的提升。

將類似的求和運算分攤到多個機器上,它就是映射約減。
在線性回歸和邏輯回歸問題上很容易實現(xiàn),而在神經(jīng)網(wǎng)絡上,也可以在多臺機器上運行正向傳播和反向傳播,然后將結果匯總到主服務器上,加快運行速度。

處理使用多臺計算機實現(xiàn)并行化,一臺多核處理器的計算機也能實現(xiàn)類似的效果。

在線學習(Online Learning)

在一個大型網(wǎng)站中,有不斷的用戶訪問,數(shù)據(jù)源保持不斷,這時就可以使用在線學習系統(tǒng)在解決一些問題。

與通常的機器學習問題使用固定的數(shù)據(jù)集來訓練算法不同,在線學習每次處理單獨的樣本,在利用單獨的樣本更新完參數(shù)\theta,改善算法性能后就丟棄該樣本。這與隨機梯度下降的處理方式有類似之處,區(qū)別就是在線學習不會使用一個固定的數(shù)據(jù)集。

算法過程:
一直迭代下去 {
  獲取單獨的數(shù)據(jù)(x,y);
  通過該樣本更新\theta {
    \theta_j:=\theta_j?\alpha (h_\theta(x)-y)x_j
  }
}

這種做法的優(yōu)點在于可以減少數(shù)據(jù)的存儲空間和計算速度,在大型網(wǎng)站中,數(shù)據(jù)是海量的,要集中處理時占用的硬盤和內(nèi)存空間非常大,也非常耗時。而當有連續(xù)的數(shù)據(jù)時,就可以使用在線學習來處理。
另一個優(yōu)點是可以適應業(yè)務不同發(fā)展的需求和不同時段用戶的需求,因為參數(shù)\theta會隨著輸入樣本的不同而改變。

轉(zhuǎn)載自:
https://codeeper.com/2020/02/09/tech/machine_learning/learn_large_datasets.html

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容