30分布式機(jī)器學(xué)習(xí)課件_第1頁
30分布式機(jī)器學(xué)習(xí)課件_第2頁
30分布式機(jī)器學(xué)習(xí)課件_第3頁
30分布式機(jī)器學(xué)習(xí)課件_第4頁
30分布式機(jī)器學(xué)習(xí)課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

機(jī)器學(xué)習(xí)分布式機(jī)器學(xué)習(xí)章節(jié)介紹機(jī)器學(xué)習(xí)方法是計(jì)算機(jī)利用已有的數(shù)據(jù)生成某種模型,并利用此模型預(yù)測的一種方法。在確定模型結(jié)構(gòu)之后,根據(jù)已知模型尋找模型參數(shù)的過程就是訓(xùn)練,訓(xùn)練過程中不斷依據(jù)訓(xùn)練數(shù)據(jù)來迭代調(diào)整模型的參數(shù)值,從而使模型的預(yù)測結(jié)果更為準(zhǔn)確。在現(xiàn)實(shí)應(yīng)用中,要達(dá)到好的效果,訓(xùn)練數(shù)據(jù)集可能很大,模型參數(shù)量劇增,會(huì)帶來很多性能和算法設(shè)計(jì)問題,單臺(tái)機(jī)器難以勝任,需要分布式的機(jī)器學(xué)習(xí)架構(gòu)。本章主要介紹分布式機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí),并介紹主流的分布式機(jī)器學(xué)習(xí)框架,結(jié)合實(shí)例介紹一些機(jī)器學(xué)習(xí)算法。章節(jié)結(jié)構(gòu)分布式機(jī)器學(xué)習(xí)基礎(chǔ)參數(shù)服務(wù)器分布式并行計(jì)算類型分布式機(jī)器學(xué)習(xí)框架MapReduce編程模型Hadoop

MapReduce框架SparkPMLSTensorFlow并行決策樹并行k-均值算法分布式機(jī)器學(xué)習(xí)基礎(chǔ)分布式機(jī)器學(xué)習(xí)中的一些核心問題:如何提高各分布式任務(wù)節(jié)點(diǎn)之間的網(wǎng)絡(luò)傳輸效率;如何解決參數(shù)同步問題,傳統(tǒng)訓(xùn)練模型是采用同步方法,如果機(jī)器性能不統(tǒng)一,必然會(huì)產(chǎn)生訓(xùn)練任務(wù)之間的協(xié)作;分布式環(huán)境下如何提高容錯(cuò)能力,需要避免單點(diǎn)故障,并能合理處理異常,訓(xùn)練子節(jié)點(diǎn)出錯(cuò)不影響全局任務(wù)。議程參數(shù)服務(wù)器應(yīng)用傳統(tǒng)的大數(shù)據(jù)處理框架訓(xùn)練大型的機(jī)器學(xué)習(xí)模型時(shí),由于數(shù)據(jù)量比較大并且訓(xùn)練方法多樣,存在著一致性、擴(kuò)展性、穩(wěn)定性的問題。較大的模型也意味著參數(shù)較多,因而需要實(shí)現(xiàn)分布式并行訓(xùn)練,參數(shù)服務(wù)器是分布式并行訓(xùn)練框架之一,存儲(chǔ)著模型的參數(shù)和狀態(tài)。參數(shù)服務(wù)器具有如下特點(diǎn):高效通信寬松一致性靈活可擴(kuò)展容錯(cuò)能力強(qiáng)易用議程靈活可擴(kuò)展訓(xùn)練過程中支持動(dòng)態(tài)擴(kuò)展節(jié)點(diǎn),不需要重啟訓(xùn)練任務(wù)就可以動(dòng)態(tài)插入新節(jié)點(diǎn)到集合中,這一特性無疑有利于那些訓(xùn)練周期較長(長達(dá)數(shù)天或數(shù)周)的機(jī)器學(xué)習(xí)項(xiàng)目,可節(jié)省大量訓(xùn)練時(shí)間。在大型服務(wù)器集群中,由于節(jié)點(diǎn)較多,小概率故障往往常態(tài)化,所以需要節(jié)點(diǎn)的恢復(fù)(狀態(tài)清理、任務(wù)重啟)時(shí)間要短,而且不能中斷訓(xùn)練過程,這就要求并行化系統(tǒng)具有較強(qiáng)的容錯(cuò)能力。目前機(jī)器學(xué)習(xí)項(xiàng)目開發(fā)者數(shù)量較少,為了減少學(xué)習(xí)難度,需要盡可能的使用常用語言或?qū)?shù)表示成通用的形式,如向量、矩陣等,并與現(xiàn)有機(jī)器學(xué)習(xí)框架無縫拼接。容錯(cuò)能力強(qiáng)易用議程分布式并行計(jì)算框架分布式并行計(jì)算的類型一般分為三種:模型并行數(shù)據(jù)并行混合并行議程模型并行模型并行是指將模型按照其結(jié)構(gòu)放在不同的分布式機(jī)器上進(jìn)行訓(xùn)練,一般用在那些內(nèi)存要求較高的機(jī)器學(xué)習(xí)項(xiàng)目,例如,單機(jī)訓(xùn)練一個(gè)1000層的DNN網(wǎng)絡(luò),內(nèi)存容易溢出,而使用模型并行,用不同的機(jī)器負(fù)責(zé)不同的層進(jìn)行訓(xùn)練,通過維護(hù)各層間參數(shù)同步實(shí)現(xiàn)整個(gè)DNN網(wǎng)絡(luò)的并行訓(xùn)練。議程數(shù)據(jù)并行數(shù)據(jù)并行是指各機(jī)器上的模型相同,對訓(xùn)練數(shù)據(jù)進(jìn)行分割,并分配到各機(jī)器上,最后將計(jì)算結(jié)果按照某種方式合并。該方法主要應(yīng)用在海量訓(xùn)練數(shù)據(jù)的情況,數(shù)據(jù)以并行化方式訓(xùn)練,訓(xùn)練過程中組合各工作節(jié)點(diǎn)的結(jié)果,實(shí)現(xiàn)模型參數(shù)的更新。參數(shù)并行常用的方法有參數(shù)平均和異步梯度下降的方法。議程參數(shù)平均參數(shù)平均是在每次訓(xùn)練迭代完成后計(jì)算各節(jié)點(diǎn)各模型參數(shù)平均值,這一方法操作簡單,主要依賴網(wǎng)絡(luò)同步更新,如果更新頻率較慢會(huì)導(dǎo)致參數(shù)差別較大,平均之后的模型參數(shù)的局部差異化被抵消,效果較差,影響模型的精確性。反之,如果更新較快,對網(wǎng)絡(luò)壓力較大,通信和同步的成本較高,所以在應(yīng)用中需要結(jié)合模型復(fù)雜度和優(yōu)化方法進(jìn)行平衡。議程異步梯度下降異步梯度下降是一種基于更新的數(shù)據(jù)并行化,它傳遞的是模型訓(xùn)練過程中的梯度、動(dòng)量等信息,而沒有直接傳遞參數(shù)值,這樣一方面可以減少傳輸數(shù)據(jù)量,提高網(wǎng)絡(luò)傳輸效率;另一方面不同計(jì)算節(jié)點(diǎn)通過共享梯度,可以提高模型收斂速度。該方法的不足之處在于會(huì)隨著引入?yún)?shù)數(shù)量的增多出現(xiàn)梯度值過時(shí)的問題。議程混合并行混合并行的方式是指綜合應(yīng)用模型并行和數(shù)據(jù)并行,在訓(xùn)練集群的設(shè)計(jì)中,將上述兩種方式進(jìn)行合并,各取所長,形成互補(bǔ)。例如,可以在同一臺(tái)機(jī)器上采用模型并行化,在GPU和CPU之間使用模型并行。然后在機(jī)器之間采用數(shù)據(jù)并行化,將數(shù)據(jù)分配在不同的機(jī)器上,既實(shí)現(xiàn)了計(jì)算資源利用的最大化,也減少了數(shù)據(jù)分發(fā)的壓力。分布式機(jī)器學(xué)習(xí)框架分布式機(jī)器學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域的一大主要研究方向,其中MapReduce適合做離線計(jì)算,Storm適合做流式計(jì)算,Spark是內(nèi)存計(jì)算框架,能快速得到計(jì)算結(jié)果。分布式機(jī)器學(xué)習(xí)平臺(tái)歸類為三種基本設(shè)計(jì)方法:基本數(shù)據(jù)流、參數(shù)服務(wù)器模型以及高級數(shù)據(jù)流?;谶@三種方法來介紹分布式機(jī)器學(xué)習(xí)框架。議程MapReduce編程模型MapReduce是一個(gè)能處理和生成超大數(shù)據(jù)集的算法模型,該架構(gòu)能夠在大量硬件配置不高的計(jì)算機(jī)上實(shí)現(xiàn)并行化處理,這一編程模型結(jié)合用戶自定義的Map和Reduce函數(shù)。Map函數(shù)處理一個(gè)輸入的基于<Key,value>對的集合,輸出中間基于<Key,value>對的集合,Reduce函數(shù)是將所有具有相同key值的value值進(jìn)行合并,將數(shù)據(jù)集合進(jìn)行壓縮。議程MapReduce編程模型一個(gè)典型的MapReduce程序的執(zhí)行流程如下圖所示。議程Hadoop

MapReduce框架Hadoop

MapReduce是Hadoop三大組件之一,包括JobTracker和一定數(shù)量的TaskTracker。JobTracker負(fù)責(zé)任務(wù)分配和調(diào)度,一個(gè)MapReduce作業(yè)通常會(huì)把輸入的數(shù)據(jù)集切分為若干獨(dú)立的數(shù)據(jù)塊,由Map任務(wù)以并行方式處理它們,框架會(huì)對Map的輸出先進(jìn)行排序,然后把結(jié)果輸入到Reduce任務(wù)中。通常作業(yè)的輸入和輸出都會(huì)被存儲(chǔ)在文件系統(tǒng)HDFS中,由JobTracker負(fù)責(zé)任務(wù)的調(diào)度和監(jiān)控,以及重新執(zhí)行已經(jīng)失敗的任務(wù)。議程Hadoop

MapReduce框架Hadoop

MapReduce框架由一個(gè)單獨(dú)的主JobTracker和每個(gè)集群節(jié)點(diǎn)對應(yīng)一個(gè)備TaskTracker組成。JobTracker負(fù)責(zé)調(diào)度作業(yè)的所有任務(wù),并監(jiān)控它們的執(zhí)行,這些任務(wù)分布在不同的備TaskTracker上。如果TaskTracker上的任務(wù)執(zhí)行失敗,還會(huì)調(diào)度其重新執(zhí)行。而TaskTracker僅負(fù)責(zé)執(zhí)行指派的任務(wù)。議程Hadoop

MapReduce框架議程Spark與Hadoop

MapReduce相比,Spark的優(yōu)勢在于處理迭代計(jì)算的機(jī)器學(xué)習(xí)任務(wù),尤其是內(nèi)存要求小的應(yīng)用,性能提升很大,Spark還可以進(jìn)行批處理、實(shí)時(shí)數(shù)據(jù)處理、機(jī)器學(xué)習(xí)以及圖算法等計(jì)算模塊。使用Spark平臺(tái)無需關(guān)心分布式并行計(jì)算的細(xì)節(jié),可以智能地進(jìn)行數(shù)據(jù)切分、算法復(fù)制、分布執(zhí)行、結(jié)果合并,以支持?jǐn)?shù)據(jù)分析人員快速開發(fā)分布式應(yīng)用。議程SparkSpark的基本框架如下圖所示議程SparkSpark應(yīng)用核心由啟動(dòng)環(huán)境和執(zhí)行程序兩部分組成,其中執(zhí)行程序負(fù)責(zé)執(zhí)行任務(wù),運(yùn)行執(zhí)行程序的機(jī)器是工作節(jié)點(diǎn),而啟動(dòng)環(huán)境由用戶程序啟動(dòng),通過集群管理器與各個(gè)執(zhí)行程序進(jìn)行通信。集群管理器主要負(fù)責(zé)集群的資源管理和調(diào)度,目前支持Standalone、Apache

Mesos和YARN三種類型的管理器。議程SparkSpark使用彈性分布式數(shù)據(jù)集(RDD)抽象分布式計(jì)算,RDD是Spark并行數(shù)據(jù)處理的基礎(chǔ),它是一種只讀的分區(qū)記錄的集合,用戶可以通過RDD對數(shù)據(jù)顯示地控制存儲(chǔ)位置和選擇數(shù)據(jù)的分區(qū)。RDD主要通過轉(zhuǎn)換和動(dòng)作操作來進(jìn)行分布式計(jì)算,轉(zhuǎn)換是根據(jù)現(xiàn)有數(shù)據(jù)集創(chuàng)建新數(shù)據(jù)集,動(dòng)作是在數(shù)據(jù)集上進(jìn)行計(jì)算后返回值給Driver程序。使用RDD可以用基本一致的方式應(yīng)對不同的大數(shù)據(jù)處理場景,還能夠提高分布式計(jì)算的容錯(cuò)性。議程SparkSpark是一種粗粒度、基于數(shù)據(jù)集的并行計(jì)算框架。其計(jì)算范式是數(shù)據(jù)集上的計(jì)算,在使用Spark的時(shí)候,要按照這一范式編寫算法。所謂的數(shù)據(jù)集操作,就是成堆的數(shù)據(jù),如果源數(shù)據(jù)集是按行存儲(chǔ)的話,就需要對其進(jìn)行適配,將若干記錄組成一個(gè)集合。因此在提交給Spark任務(wù)時(shí),需要先構(gòu)建數(shù)據(jù)集,然后通過數(shù)據(jù)集的操作,實(shí)現(xiàn)目標(biāo)任務(wù)。議程TensorFlowTensorFlow為用戶封裝了底層的分布式操作,使其可以專注于編寫機(jī)器學(xué)習(xí)代碼。使用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算,用有向圖中的節(jié)點(diǎn)表示,節(jié)點(diǎn)的狀態(tài)是可變的,邊是張量,對應(yīng)為多維數(shù)組。TensorFlow中數(shù)據(jù)并行化的方式由In-graph、Between-graph、異步訓(xùn)練、同步訓(xùn)練幾種方式,通過將模型訓(xùn)練分配給不同的工作節(jié)點(diǎn),并使用參數(shù)服務(wù)器共享參數(shù)。并行決策樹隨著大數(shù)據(jù)時(shí)代的到來,算法需要處理的數(shù)據(jù)量急劇增加,僅依靠原始的決策樹算法進(jìn)行分類無論在效率上還是準(zhǔn)確性上都不足以滿足需求。高效出色的在大數(shù)據(jù)量下使用決策樹算法,需要將決策樹算法并行化。并行決策樹并行決策樹算法基于MapReduce框架,核心思想是分而治之的策略。MapReduce通過將海量數(shù)據(jù)集分割成多個(gè)小數(shù)據(jù)集交給多臺(tái)不同計(jì)算機(jī)進(jìn)行處理,實(shí)現(xiàn)并行化數(shù)據(jù)處理。應(yīng)用到?jīng)Q策樹算法上,通過MapReduce將決策樹算法并行處理,將耗時(shí)的屬性相似度計(jì)算的步驟并行執(zhí)行。Map階段,以單元組形式分解數(shù)據(jù),計(jì)算屬性相似度,以<屬性名,相似度>形式輸出。Reduce階段,匯總所有局部結(jié)果,找到最大相似度屬性名,以這個(gè)屬性作為測試節(jié)點(diǎn),若是葉子節(jié)點(diǎn),則返回,否則執(zhí)行分裂,將其錄入待計(jì)算數(shù)據(jù)庫中進(jìn)行存儲(chǔ)。不斷重復(fù)上述過程完成決策樹的構(gòu)建。鍵值對<并行決策樹算法<并行化的隨機(jī)森林——并行CART決策樹算法并行k-均值算法k-均值算法是應(yīng)用最廣泛的聚類算法之一,隨著大數(shù)據(jù)的發(fā)展,在實(shí)際使用過程中如何提升該算法的性能成為了一個(gè)有挑戰(zhàn)性的任務(wù)??梢曰贛apReduce實(shí)現(xiàn)k-均值算法,在Hadoop環(huán)境中并行運(yùn)行,能夠高效且廉價(jià)的處理大型數(shù)據(jù)集。并行k-均值算法在具體實(shí)現(xiàn)該算法時(shí),將輸入數(shù)據(jù)集存儲(chǔ)在分布式文件系統(tǒng)HDFS中,作為<key,value>的序列文件,每個(gè)鍵值對代表數(shù)據(jù)集的一條記錄,其中key記錄的是數(shù)據(jù)文件距離起始位置的偏移量,value是該條記錄的內(nèi)容。將迭代后或初始化后的k個(gè)聚類中心放到Configuration中,然后在Mapper的setUp計(jì)算讀取這k個(gè)聚類中心。Mapper會(huì)將同一類的數(shù)據(jù)發(fā)送至同一個(gè)Reducer。在Reducer中,只需要根據(jù)數(shù)據(jù)重新計(jì)算聚類中心即可。并行k-均值算法使用MapReduce框架實(shí)現(xiàn)k-均值聚類算法時(shí),需要將每一次迭代作為一個(gè)MapReduce

Job進(jìn)行計(jì)算,通過多次運(yùn)行該Job達(dá)到迭代的效果,最終得到k個(gè)聚類中心?;贛apReduce的并行k-均值算法,可以在廉價(jià)機(jī)器上有效處理大型數(shù)據(jù)集。k-均值算法算例進(jìn)行k-均值聚類的數(shù)據(jù)如下表:x1x2x3x4x5x6x7x8x9x10x1112239101011151616225314131516658k-均值算法算例將x1—x6分配給node1,將x7-x11分配給node2,選擇k=3,在開始階段,創(chuàng)建一個(gè)如下表的全局文件。迭代次數(shù)0簇ID簇中心樣本點(diǎn)數(shù)目1(1,2)02(2,2)03(2,5)0k-均值算法算例Map階段對于數(shù)據(jù)集中的每一個(gè)節(jié)點(diǎn),讀取全局文件,獲得上一輪迭代生成的簇中心信息,計(jì)算樣本點(diǎn)到簇中心的距離。在Reduce階段每個(gè)reduce收到關(guān)于某一個(gè)簇的信息。包括該簇的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論