• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Angel: 一種面向高維度的機(jī)器學(xué)習(xí)框架

      2018-05-08 13:20張維潘濤范震坤
      電子技術(shù)與軟件工程 2018年22期
      關(guān)鍵詞:分布式計(jì)算機(jī)器學(xué)習(xí)大數(shù)據(jù)

      張維 潘濤 范震坤

      摘要 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,各種數(shù)據(jù)的數(shù)據(jù)量也在不斷增長,大數(shù)據(jù)成為各行業(yè)的重要發(fā)展方向之一,如何有效地利用大數(shù)據(jù)技術(shù),對社會中的各行各業(yè)都具有產(chǎn)生巨大推動(dòng)力的作用。分布式機(jī)器學(xué)習(xí)是隨著“大數(shù)據(jù)”概念興起的。目前,由于分布式的機(jī)器學(xué)習(xí)算法具有復(fù)雜性、多樣性以及高維性這樣的特點(diǎn),導(dǎo)致我們從數(shù)據(jù)中挖掘內(nèi)在規(guī)律比較困難,小型的機(jī)器學(xué)習(xí)算法框架在處理這樣的問題上就顯得捉襟見肘了。因此,研究適用于大數(shù)據(jù)背景下的機(jī)器學(xué)習(xí)算法框架成為當(dāng)下的熱點(diǎn)。本文介紹一種面向高維度的機(jī)器學(xué)習(xí)計(jì)算框架稱為Angel。

      【關(guān)鍵詞】大數(shù)據(jù) 分布式計(jì)算 機(jī)器學(xué)習(xí)

      機(jī)器學(xué)習(xí)也就是通過設(shè)計(jì)一些能夠讓計(jì)算機(jī)自主地去“學(xué)習(xí)”的一類算法,它們能夠通過分析已有的數(shù)據(jù),去獲得隱藏在這些信息內(nèi)部的規(guī)律,并利用這些規(guī)律去對未知的數(shù)據(jù)進(jìn)行預(yù)測以及分析。隨著互聯(lián)網(wǎng)的高速發(fā)展,海量數(shù)據(jù)的產(chǎn)生以及工業(yè)界對于計(jì)算速度和計(jì)算成本要求的提升,傳統(tǒng)的計(jì)算機(jī)已經(jīng)很難滿足工業(yè)界的需求,因此分布式計(jì)算技術(shù)就應(yīng)運(yùn)而生了。分布式計(jì)算也即為“并行計(jì)算”,其核心思想就是把一個(gè)需要巨大計(jì)算能力才能解決的計(jì)算任務(wù)拆解成多許多小的子任務(wù),將這些子任務(wù)分配到多個(gè)處理器節(jié)點(diǎn)上做計(jì)算,最后匯總這些計(jì)算結(jié)果得到最終的結(jié)果。分布式計(jì)算或者分布式機(jī)器學(xué)習(xí)除了要把計(jì)算任務(wù)分配到多個(gè)處理器上,更重要的是把計(jì)算所需要的各種數(shù)據(jù)(包括訓(xùn)練數(shù)據(jù)以及中間結(jié)果)分布開來。隨著谷歌的Map Reduce編程模型和開源的Hadoop分布式計(jì)算框架的發(fā)布,分布式計(jì)算技術(shù)逐漸開始普及,并且還呈現(xiàn)出不斷發(fā)展和完善的趨勢。隨著工業(yè)界對于大數(shù)據(jù)進(jìn)行分析和挖掘的需求不斷提升,分布式計(jì)算和機(jī)器學(xué)習(xí)的結(jié)合也就自然而然地成為了學(xué)術(shù)界和工業(yè)界研究的一個(gè)重點(diǎn)。目前,基于分布式計(jì)算平臺的機(jī)器學(xué)習(xí)框架主要有基于Hadoop平臺的Mahout、基于Spark平臺的MLlib以及由騰訊主導(dǎo)開發(fā)的機(jī)器學(xué)習(xí)框架Angel等。本文重點(diǎn)介紹一種稱為Angel的面向高維度的機(jī)器學(xué)習(xí)計(jì)算框架。

      1 Angel框架

      為能夠支持超大維度的機(jī)器學(xué)習(xí)模型運(yùn)算,騰訊公司與香港科技大學(xué)展開了合作,開發(fā)出了面向機(jī)器學(xué)習(xí)的分布式計(jì)算框架一一Angel l.0。Angel是使用Java語言開發(fā)的面向機(jī)器學(xué)習(xí)算法的計(jì)算系統(tǒng)框架,用戶可以不改變使用習(xí)慣,就像使用Spark以及MapReduce一樣,來去完成機(jī)器學(xué)習(xí)算法的模型訓(xùn)練。Angel目前已經(jīng)能夠非常好地支持梯度下降算法、交替乘子法等優(yōu)化算法,同時(shí)Angel也提供了一些常用的模型;如果用戶還有其他的自定義需求,也可以在框架中提供的現(xiàn)有的最優(yōu)化算法上快速方便地去封裝自己的模型。Angel在高維度機(jī)器學(xué)習(xí)的各種參數(shù)更新過程中,對于不同的計(jì)算任務(wù),根據(jù)其計(jì)算速度有針對性地給那些較慢的計(jì)算任務(wù)的參數(shù)傳遞提供更多的計(jì)算資源,從而能夠在整體上大大縮短機(jī)器學(xué)習(xí)算法的運(yùn)算時(shí)間。這一創(chuàng)新的優(yōu)化調(diào)度算法則是源于香港科技大學(xué)陳凱教授及其研究小組開發(fā)的可感知上層應(yīng)用的網(wǎng)絡(luò)優(yōu)化方案,以及楊強(qiáng)教授領(lǐng)導(dǎo)的針對大規(guī)模機(jī)器學(xué)習(xí)算法的研究方案。此外,北京大學(xué)的崔斌教授及其學(xué)生也參與了Angel項(xiàng)目的共同研發(fā),并提供了巨大的幫助。在測試實(shí)驗(yàn)以及實(shí)際的生產(chǎn)工作任務(wù)中,Angel能夠在千萬級到億級的特征緯度條件下運(yùn)行梯度下降算法,并且它的性能能夠達(dá)到Spark的數(shù)倍到數(shù)十倍。

      如圖l所示,Angel的整體架構(gòu)主要參考了由谷歌公司研發(fā)的DistBelief框架。為深度學(xué)習(xí)而設(shè)計(jì)研發(fā)的DistBeilef框架使用了參數(shù)服務(wù)器,從而解決那些深度學(xué)習(xí)中巨大模型在訓(xùn)練時(shí)海量參數(shù)的更新問題。由于基于大數(shù)據(jù)的機(jī)器學(xué)習(xí)算法同樣擁有海量的參數(shù),所以這樣參數(shù)服務(wù)器也就不僅僅局限于深度學(xué)習(xí)算法,同樣可用于基于大數(shù)據(jù)的機(jī)器學(xué)習(xí)算法中的模型了。比如在梯度下降算法、交替乘子法以及擬牛頓法等優(yōu)化算法的計(jì)算過程中面臨著每一輪迭代需要對上億個(gè)參數(shù)進(jìn)行更新,這就需要使用參數(shù)服務(wù)器來將參數(shù)分布式緩存以提高算法的性能。Angel框架在運(yùn)算過程中支持批量同步并行、全異步并行、延遲同步并行這三種計(jì)算并行計(jì)算,其中卡耐基梅隆大學(xué)的邢波教授在Petuum項(xiàng)目中曾經(jīng)驗(yàn)證了延遲同步并行計(jì)算模型,它能夠在機(jī)器學(xué)習(xí)的這種特定運(yùn)算場景下提升算法的收斂速度,從而提高系統(tǒng)的性能。系統(tǒng)有五個(gè)角色:

      主控節(jié)點(diǎn):負(fù)責(zé)資源申請和分配,以及任務(wù)的管理。

      執(zhí)行節(jié)點(diǎn):負(fù)責(zé)任務(wù)的執(zhí)行,以線程的形式存在。

      計(jì)算節(jié)點(diǎn):獨(dú)立進(jìn)程運(yùn)行于Yam的容器中,是執(zhí)行節(jié)點(diǎn)的執(zhí)行容器。

      參數(shù)服務(wù)器:伴隨著一個(gè)任務(wù)的啟動(dòng)而生成,任務(wù)結(jié)束而銷毀,負(fù)責(zé)在算法的訓(xùn)練過程中的更新和存儲各種參數(shù)。

      計(jì)算節(jié)點(diǎn)組:它是一個(gè)虛擬的概念,由若干個(gè)計(jì)算節(jié)點(diǎn)組成,元數(shù)據(jù)由主控節(jié)點(diǎn)維護(hù)。為模型的并行拓展考慮,在同一個(gè)計(jì)算節(jié)點(diǎn)組內(nèi)所有計(jì)算節(jié)點(diǎn)所運(yùn)行的訓(xùn)練數(shù)據(jù)都是一樣的。雖然在Angel已經(jīng)提供了一些通用的模型,但并不能滿足所有用戶的需求,而用戶自定義的模型也可以實(shí)現(xiàn)Angel的通用接口,形式上等同于MapReduce或Spark。

      1.1 友好的用戶交互邏輯

      1.1.1 自動(dòng)化數(shù)據(jù)切分

      Angel系統(tǒng)為用戶提供了自動(dòng)切分訓(xùn)練數(shù)據(jù)的功能,方便用戶進(jìn)行數(shù)據(jù)并行運(yùn)算:系統(tǒng)默認(rèn)兼容了Hadoop FS接口,原始訓(xùn)練樣本存儲在支持Hadoop FS接口的分布式文件系統(tǒng)如HDFS。

      1.1.2 豐富的數(shù)據(jù)管理

      訓(xùn)練的樣本數(shù)據(jù)存儲在分布式的文件系統(tǒng)中,該系統(tǒng)在計(jì)算前將樣本數(shù)據(jù)從文件系統(tǒng)讀取到計(jì)算進(jìn)程中,緩存在內(nèi)存里以加速迭代運(yùn)算;如果內(nèi)存中緩存不下,則將這部分?jǐn)?shù)據(jù)暫存到本地磁盤內(nèi),并且不需要向分布式文件系統(tǒng)再次發(fā)起通訊請求。

      1.1.3 豐富的線性代數(shù)以及優(yōu)化算法庫

      Angel更提供了能夠高效計(jì)算向量及矩陣的運(yùn)算庫,能夠方便用戶自由地去選擇數(shù)據(jù)和參數(shù)的表達(dá)形式。在優(yōu)化算法方面,Angel已實(shí)現(xiàn)了梯度下降法、交替乘子法;而在模型選擇方面,支持了文檔主題生成模型、矩陣分解模型、邏輯回歸模型以及支持向量機(jī)等。

      1.1.4 可選擇的計(jì)算模型

      綜述中我們提到了,Angel的參數(shù)服務(wù)器可以支持批量同步并行、全異步并行、延遲同步并行計(jì)算模型。

      1.1.5 更細(xì)粒度的容錯(cuò)

      在系統(tǒng)中容錯(cuò)主要分為主控節(jié)點(diǎn)的容錯(cuò),參數(shù)服務(wù)器的容錯(cuò),計(jì)算節(jié)點(diǎn)進(jìn)程內(nèi)的參數(shù)的緩存以及遠(yuǎn)程過程調(diào)用的容錯(cuò)。

      1.1.6 友好的任務(wù)運(yùn)行及監(jiān)控

      Angel也具有友好的任務(wù)運(yùn)行方式,支持基于Yam的任務(wù)運(yùn)行模式,同時(shí),Angel的Web頁面也可以方便用戶查看集群計(jì)算的進(jìn)度。

      1.2 內(nèi)存優(yōu)化

      在運(yùn)算過程中為減少對于內(nèi)存的消耗以及提升單次運(yùn)算的運(yùn)算收斂性使用了異步無鎖的Hogwildl模式。它允許在多個(gè)CPU上并行執(zhí)行梯度下降的參數(shù)更新。因?yàn)槎鄠€(gè)CPU之間不可能重寫有用的信息,因此處理器可以訪問共享的內(nèi)存。在大多數(shù)情況下,這樣的更新策略可以達(dá)到一個(gè)非常優(yōu)秀的收斂速率。同一個(gè)運(yùn)算進(jìn)程中的N個(gè)執(zhí)行節(jié)點(diǎn)如果在運(yùn)算中都能夠各自保持一個(gè)獨(dú)立的參數(shù)快照,那么對參數(shù)的內(nèi)存開銷就減少了N倍,在訓(xùn)練模型參數(shù)維度越大時(shí)消耗減少的就越明顯。在梯度下降的優(yōu)化算法中,訓(xùn)練數(shù)據(jù)絕大多數(shù)情況下是稀疏的,因此參數(shù)更新沖突的概率就大大降低了,即便沖突了也都是朝著梯度下降的方向更新的,從而總能達(dá)到收斂。在實(shí)際的使用中,讓多個(gè)執(zhí)行節(jié)點(diǎn)在一個(gè)進(jìn)程內(nèi)共享同一個(gè)參數(shù)快照,這樣能夠明顯減少內(nèi)存的消耗并且提升收斂速度。

      1.3 網(wǎng)絡(luò)優(yōu)化

      (l)進(jìn)程內(nèi)的執(zhí)行節(jié)點(diǎn)運(yùn)算之后的參數(shù),更新合并之后推送到參數(shù)服務(wù)器更新,這樣大大減少了執(zhí)行節(jié)點(diǎn)所在機(jī)器的上行所需要的消耗,同樣的也減少了參數(shù)服務(wù)器的下行消耗,同時(shí)減少在推送更新的過程中的峰值傳輸瓶頸的次數(shù)。

      (2)通過更深一步的網(wǎng)絡(luò)優(yōu)化解決延遲同步并行的問題:由于延遲同步并行是一種半同步的運(yùn)算調(diào)度機(jī)制,能夠在有限的窗口訓(xùn)練參數(shù),當(dāng)運(yùn)算快的節(jié)點(diǎn)達(dá)到窗口邊緣時(shí),任務(wù)就必須要停下來等待最慢的節(jié)點(diǎn)去更新最新的參數(shù)。面對這樣的問題,我們通過網(wǎng)絡(luò)流量的再分配來加速較慢的工作節(jié)點(diǎn)。我們分配給較慢的節(jié)點(diǎn)更高的帶寬;那么比較快的工作節(jié)點(diǎn)就分配更少的帶寬。這樣快的節(jié)點(diǎn)與慢的節(jié)點(diǎn)之間迭代次數(shù)的差距就可以進(jìn)行有效的控制,減少了發(fā)生等待的概率,也就是減少了工作節(jié)點(diǎn)由于延遲同步并行窗口而空閑等待時(shí)間。

      2 總結(jié)

      大數(shù)據(jù),機(jī)器學(xué)習(xí)作為當(dāng)下的熱門,需要有一套科學(xué)合理的算法框架來滿足社會需求,讓數(shù)據(jù)處理變得更具效率。針對大數(shù)據(jù)的各個(gè)特點(diǎn),通過運(yùn)用分布式計(jì)算讓數(shù)據(jù)變得更具條理,更加易于計(jì)算,數(shù)據(jù)處理分析難度得到有效降低,大大提高機(jī)器學(xué)習(xí)的能力。本文介紹的這三種基于大數(shù)據(jù)的機(jī)器學(xué)習(xí)分布式計(jì)算框架各有優(yōu)缺點(diǎn),都是為了去滿足大數(shù)據(jù)以及機(jī)器學(xué)習(xí)對于工業(yè)界生產(chǎn)的需求。只有不斷去發(fā)展我們的算法框架,滿足不斷提高的需求,才能讓其在大數(shù)據(jù)時(shí)代進(jìn)發(fā)出強(qiáng)勁活力。

      參考文獻(xiàn)

      [1] Dean J,

      Ghemawa t S.

      MapReduce:simplified data processing on largeclusters [J] .

      Communications of- theACM, 2008, 51 (01) : 107-113.

      [2] Shvachko K, Kuang H, Radia S, etal. The hadoop distributed filesystem [Cl//Mass storage systems andtechnologies

      (MSST) ,

      2010 IEEE 26thsymposium on. Ieee, 2010: 1-10.

      [3] AsseFi M. Behravesh E, Liu G. etal. Big data machine learning usingapache spark MLlib [C] //Big Data(Big Data) ,

      2017 IEEE InternationalConference on. IEEE, 2017: 3492-3498.

      [4] Jiang J, Yu L, Jiang J, et al.Angel: a new large-scale machinelearning system[Jl. National ScienceReview, 2017, 5 (2) : 216-236.

      [5] Khumoyun A, Cui Y. Hanku L.Spark based distributed deeplearning framework for big dataapplica tions [C] //Informa tion Scienceand Communications Technologies(ICISCT) ,

      Interna tional

      Conferenceon. IEEE, 2016: 1-5.

      [6] Xing E P, Ho Q, Dai W, et al.Petuum: A new platform fordistributed machine learning on bigdata [J] . IEEE Transactions on BigData, 2015, 1 (2) : 49-67.

      猜你喜歡
      分布式計(jì)算機(jī)器學(xué)習(xí)大數(shù)據(jù)
      云計(jì)算中MapReduce分布式并行處理框架的研究與搭建
      前綴字母為特征在維吾爾語文本情感分類中的研究
      基于支持向量機(jī)的金融數(shù)據(jù)分析研究
      面向異構(gòu)分布式計(jì)算環(huán)境的并行任務(wù)調(diào)度優(yōu)化方法
      磐安县| 松原市| 健康| 井研县| 光泽县| 吴旗县| 夏邑县| 视频| 玉门市| 庄浪县| 通许县| 筠连县| 赤水市| 上栗县| 密山市| 南靖县| 资源县| 巴东县| 盘山县| 依安县| 家居| 海伦市| 内黄县| 滨海县| 葫芦岛市| 新丰县| 沁水县| 东乡县| 天等县| 通山县| 济阳县| 昌乐县| 开原市| 永宁县| 乌什县| 渝中区| 辰溪县| 平湖市| 房山区| 西峡县| 民和|