《分布式機器學習平台與算法綜述》學習筆記


2019年3月發表於計算機科學。可在知網下載。

本文內容

摘要

分布式機器學習的核心思想“分而治之”。分布式機器學習是機器學習的研究領域之一。分布式機器學習的主流平台有Spark、MXNet、Petuum、TensorFlow及PyTorch。本文對這些平台深入總結,分析對比其特性。其次,從數據並行和模型並行兩方面深入闡述了機器學習算法的分布式實現方式,而后依照整體同步並行模型、異步並行模型和延遲異步並行模型3種方法對機器學習算法的分布式計算模型進行概述;最后從平台性能改進研究、算法優化、模型通信方式、大規模計算下算法的可擴展性和分布式環境下模型的容錯性5個方面探討了分布式機器學習在未來的研究方向。

引言

分布式機器學習的目標是將具有龐大數據和計算量的任務分布式地部署到多台機器上,以提高數據計算地速度和可擴展性,減少任務耗時。

有文獻分析總結了基於大數據地機器學習算法與並行算法地研究現狀,有文獻比較了當下主流分布式機器學習平台地規模和可用性,有文獻回顧了並行機器學習算法地研究現狀與應用情況,有文獻回顧了機器學習領域中一些流行地算法和優化技術,重點闡述了分布式機器學習的相關平台與算法的現狀、應用及未來的發展趨勢。

各分布式平台比較

有Spark、MXNet、Petuum、TensorFlow及PyTorch各個平台的介紹和比較。這里就不做記錄。筆者想了解並行機器學習算法方面的內容,然后改進結合Spark分布式平台。

機器學習算法

有文獻介紹了大數據下的機器學習算法,從大數據特征選擇、分類、聚類及關聯分析等方面闡述了傳統算法的弊端及機器學習算法在各適用領域的發展情況。

機器學習算法的分布式實現方式

實現思想是划分大規模網絡模型並將其分配給不同的機器進行分布式計算,在每次迭代后對各機器的計算結果進行融合,直至算法收斂。

分布式實現的障礙:

  • 機器之間的通信延遲較大
  • 各機器計算結果的差異影響模型收斂
數據並行

將數據划分為P部分,分配給工作節點,每個工作節點獨立計算更新函數,最后將結果累加,然后更新參數值。有一個擁有全部參數的機器節點與各個機器交互。

模型並行

對模型進行划分,然后各個工作節點負責本地局部模型的參數更新。個人理解為每個工作節點負責更新部分參數,這樣的話,數據就需要每個節點都跑一遍?

計算模型

常見的並行計算模型有整體同步並行模型、異步並行模型、延遲異步並行模型。

整體同步並行模型

各工作節點下的機器負責一部分數據計算並將參數傳到對應的參數管理節點,參數管理節點接收后對所有參數進行整合,統一同步更新各工作節點參數,然后再進行一輪新的迭代計算。這樣的壞處是,較快執行完的Worker節點執行完要等待最慢的。准確率高,但是浪費計算資源,效率低。

異步並行模型

以互相不干擾、互相不等待為執行原則,各工作節點負責一部分計算,將部分參數傳到相應的參數管理節點進行參數同步更新,執行下一次迭代計算。會導致每次迭代計算中每個工作節點獲取到不同的參數,造成模型計算結果不一致,從而導致模型的准確率降低。

延遲異步並行模型

結合了BSP和ASP兩者的優點。各工作節點以不同的迭代輪數計算並更新參數,同時設置了閾值s,當最快節點和最慢節點迭代次數差值到達s時,阻塞該節點,等待最慢的節點執行。時最終歡迎的分布式算法計算模型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM