大資料的分散式機器學習的策略與原則
大資料的發展已經引領了對能夠學習包含數百萬至數十億引數的複雜模型的機器學習系統的新需求,以保證足夠的能力來消化海量的資料集,提供強大的預測分析(如高維潛特徵、中介表示和決策功能)。為了在這樣的尺度上,在成百上千臺的分散式機器叢集中執行機器學習演算法,關鍵往往是要投入顯著的工程性的努力——有人可能會問,這樣的工程是否還屬於機器學習的研究領域?考慮到如此“大”的機器學習系統可以極大地從根植於機器學習的統計和演算法的理解中受益——因此,機器學習的研究人員應該不會迴避這樣的系統設計——我們討論了一系列從我們近來對工程尺度的機器學習解決方案的研究中提煉的原則和策略。這些原則和策略從機器學習的應用連續跨越到它的工程和理論研究,以及大型機器學習的系統和架構的發展,目標是瞭解如何使其有效、廣泛地適用,並以收斂和縮放保證支援。它們關注的是機器學習研究傳統上注意較少的四個關鍵問題:一個機器學習程式怎樣能分佈到一個叢集中去?機器學習計算怎樣能通過機器間的交流連線起來?這樣的交流是如何被執行的?機器間應該交流的內容是什麼?通過揭示機器學習程式所獨有的,而非常見於傳統計算機程式中的基礎性的統計和演算法上的特點,並通過剖析成功案例,以揭示我們如何利用這些原則來同時設計和開發高效能的分散式機器學習軟體以及通用的機器學習框架,我們為機器學習的研究人員和從業者提供了進一步塑造並擴大機器學習與系統之間的領域的機會。
機器學習已經成為從原始資料中提取結構化資訊和知識,將其轉變成為不同應用的自動預測和運用假說的首要機制。這些應用如分析社會網路 [1]、推理客戶行為 [2];轉譯文字、影像和視訊 [3];確定疾病和治療方法 [4];操縱無人駕駛汽車 [5];跟蹤網路安全異常活動 [6],及其他。機器學習的大多數應用都是由一箇中等數量的發達的機器學習方法族系支援,其中,每種方法都體現了從模型設計到對演算法的創新,甚至對軟體應用的完善這一連串的技術要點,並吸引了來自研究和發展團體的日益增長的創新貢獻。這些方法現代的例子包括圖形模型[7–9]、正則貝葉斯模型[10–12]、非引數貝葉斯模型[13,14]、稀疏結構模型[15,16]、大幅度方法[17,18]、深度學習[19,20]、矩陣分解[21,22]、稀疏編碼[23,24]以及潛在空間建模[1,25]。一個能確保數學合理性和結果可重複性的機器學習的普遍做法,是從業者和研究人員為某種機器學習方式(比如,通過一個卷積神經網路的深度學習模型,提供影像的語義解釋)的一個特定應用的例項編寫一個機器學習程式(使用任何通用的高階程式語言)。理想的情況是,這個程式預計將依託於各種硬體和雲基礎設施——膝上型電腦、伺服器、圖形處理單元(GPU)、雲端計算和虛擬機器、分散式網路儲存、乙太網和InfiniBand網路(僅舉幾例),以得到快速、準確的執行。這樣,程式就是硬體無關但機器學習明確的(即無論硬體如何選取,對於資料都遵循相同的數學原理,並獲得相同的結果)。
隨著感官、數字儲存和網路通訊技術的進步,傳統機器學習的研究與發展——擅長模型、演算法和理論的創新——正面臨日益盛行的大資料收集的挑戰,如每分鐘上傳到視訊共享網站的數百小時視訊 †,或社交媒體中上億使用者產生的幾千萬億位元組(PB)資料 ‡。大資料的興起也伴隨著對包括數百萬至數十億引數的更高維也更復雜的機器學習模型的興趣的增加,以支援日益複雜的資料,或者為了獲得更高的預測精度(比如為客戶提供更好的服務和醫療診斷),支援更智慧的任務(比如無人駕駛車輛和視訊資料的語義解釋)[26,27]。對這樣大規模的資料運作如此大型的機器學習模型是超出單一機器的儲存和計算能力的。這一差距已經激發了近來越來越多對於分散式機器學習的工作,其中,機器學習程式由研究叢集、資料中心和雲提供商使用成千上萬的機器加以執行。從得到數學上等價的或類似於由單一機器產生的解的意義上說,以機器叢集(p個機器)代替一個機器,就可以通過分散式機器學習程式實現幾乎p倍的加速;然而,報告過的加速往往還遠低於這個限度。例如,即使近來使用最先進的技術對主題模型的實現 [28](文字分析的一種常用的方法),由於在實現中的數學錯誤(如在文獻 [25]所示),也無法用4×機達到2×加速,而利用MapReduce-like系統進行的深度學習,如Spark,也尚未用10×機達到5×加速 [29]。因此解決這種可量測性挑戰就是分散式機器學習研究的一個主要目標,以減少執行大型機器學習應用的資本和運營成本。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31495967/viewspace-2893156/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式機器學習常用資料集分散式機器學習
- 【大資料】大資料企業策略與法則大資料
- 分散式機器學習中的模型聚合分散式機器學習模型
- 機器學習 大資料機器學習大資料
- 分散式機器學習中的模型架構分散式機器學習模型架構
- 大資料分析與機器學習之間的區別與聯絡大資料機器學習
- MLSys提前看:機器學習的分散式優化方法機器學習分散式優化
- 分散式儲存中的資料分佈策略分散式
- MLSys提前看:機器學習的分散式最佳化方法機器學習分散式
- 史丹佛大學-機器學習的動機與應用機器學習
- 機器學習工程師與資料科學家的大斗法機器學習工程師資料科學
- 分散式資料庫拆表拆庫的常用策略分散式資料庫
- 知識學習綜合三---分散式系統大資料分散式大資料
- 【大資料】BigTable分散式資料儲存系統分散式資料庫 | 複習筆記大資料分散式資料庫筆記
- 機器學習判別式與生成式機器學習
- 分散式機器學習、聯邦學習、多智慧體的區別和聯絡分散式機器學習聯邦學習智慧體
- TikTok機器學習與資料科學家的面試題 - Reddit機器學習資料科學面試題
- 資料科學家與機器學習工程師的區別? - kdnuggets資料科學機器學習工程師
- 分散式機器學習框架與高維實時推薦系統分散式機器學習框架
- OpML 2019提前看:模型表現預測與分散式機器學習模型分散式機器學習
- 提升資料安全的五大原則
- 規則引擎與機器學習比較與結合機器學習
- 《Spark 3.0大資料分析與挖掘:基於機器學習》簡介Spark大資料機器學習
- 分散式資料(4)分散式與版本化分散式
- 大資料之Hadoop偽分散式的搭建大資料Hadoop分散式
- MySQL資料庫的索引原理、與慢SQL優化的5大原則MySql資料庫索引優化
- 分散式資料庫的需求與場景分散式資料庫
- 大資料 機器學習 演算法概論大資料機器學習演算法
- 機器學習-資料清洗機器學習
- 機器學習中資料清洗的藝術機器學習
- 機器學習之資料集的劃分機器學習
- 谷歌機器學習43條規則:機器學習工程的最佳實踐經驗谷歌機器學習
- 關於分散式鎖原理的一些學習與思考-redis分散式鎖,zookeeper分散式鎖分散式Redis
- .NET資料探勘與機器學習開源框架機器學習框架
- 第二週 機器學習(ML)策略(2):2.6 定位資料不匹配機器學習
- 分散式系統安全設計原則分散式
- 機器學習 # 為什麼機器學習要求資料是獨立同分布的?機器學習
- 大資料、人工智慧、機器學習與深度學習都是什麼?有什麼關係?大資料人工智慧機器學習深度學習