本書旨在全面介紹分布式機(jī)器學(xué)習(xí)的現(xiàn)狀,深入分析其中的核心技術(shù)問題,并且討論該領(lǐng)域未來的發(fā)展方向。
全書共12章。第1章是緒論,向大家展示分布式機(jī)器學(xué)習(xí)這個領(lǐng)域的全景。第2章介紹機(jī)器學(xué)習(xí)的基礎(chǔ)知識。第3章到第8章是本書的核心部分,向大家細(xì)致地講解分布式機(jī)器學(xué)習(xí)的框架及其各個功能模塊。其中第3章給出整個分布式機(jī)器學(xué)習(xí)框架的綜述,而第4章到第8章則分別針對其中的數(shù)據(jù)與模型劃分模塊、單機(jī)優(yōu)化模塊、通信模塊、數(shù)據(jù)與模型聚合模塊加以介紹。接下來的三章是對前面內(nèi)容的總結(jié)與升華。其中第9章介紹由分布式機(jī)器學(xué)習(xí)框架中不同選項(xiàng)所組合出來的各式各樣的分布式機(jī)器學(xué)習(xí)算法,第10章討論這些算法的理論性質(zhì),第11章則介紹幾個主流的分布式機(jī)器學(xué)習(xí)系統(tǒng)(包括Spark MLlib 迭代式MapReduce系統(tǒng),Multiverso參數(shù)服務(wù)器系統(tǒng),TensorFlow數(shù)據(jù)流系統(tǒng))。*后的第12章是全書的結(jié)語,在對全書內(nèi)容進(jìn)行簡要總結(jié)之后,著重討論分布式機(jī)器學(xué)習(xí)這個領(lǐng)域未來的發(fā)展方向。
本書基于微軟亞洲研究院機(jī)器學(xué)習(xí)研究團(tuán)隊(duì)多年的研究成果和實(shí)踐經(jīng)驗(yàn)寫成,既可以作為研究生從事分布式機(jī)器學(xué)習(xí)方向研究的參考文獻(xiàn),也可以作為人工智能從業(yè)者進(jìn)行算法選擇和系統(tǒng)設(shè)計(jì)的工具書。
人工智能大潮中,市場上已有許多機(jī)器學(xué)習(xí)書籍,但是分布式機(jī)器學(xué)習(xí)的專門書籍還很少見。本書是希望學(xué)習(xí)和了解分布式機(jī)器學(xué)習(xí)的讀者的福音。
全面展示分布式機(jī)器學(xué)習(xí)理論、方法與實(shí)踐
微軟亞洲研究院機(jī)器學(xué)習(xí)核心團(tuán)隊(duì)潛心力作
鄂維南院士、周志華教授傾心撰寫推薦序
內(nèi)容前沿全面,討論系統(tǒng)深刻,全彩印刷
近年來,人工智能取得了飛速的發(fā)展,實(shí)現(xiàn)了一個又一個技術(shù)突破。這些成功的幕后英雄是海量的訓(xùn)練數(shù)據(jù)、超大規(guī)模的機(jī)器學(xué)習(xí)模型以及分布式的訓(xùn)練系統(tǒng)。一系列有關(guān)分布式機(jī)器學(xué)習(xí)的研究工作,從并行模式、跨機(jī)通信到聚合機(jī)制,從算法設(shè)計(jì)、理論推導(dǎo)到系統(tǒng)構(gòu)建,都在如火如荼地展開。人們不僅發(fā)表了大量的學(xué)術(shù)論文,也開發(fā)出一批實(shí)用性很強(qiáng)的分布式機(jī)器學(xué)習(xí)系統(tǒng)。本書的目的是向讀者全面展示分布式機(jī)器學(xué)習(xí)的現(xiàn)狀,深入分析其中的核心技術(shù)問題,并且討論該領(lǐng)域未來發(fā)展的方向。本書既可以作為研究生從事分布式機(jī)器學(xué)習(xí)方向研究的參考文獻(xiàn),也可以作為人工智能從業(yè)者進(jìn)行算法選擇和系統(tǒng)設(shè)計(jì)的工具書。全書共12章。第1章是緒論,向大家展示分布式機(jī)器學(xué)習(xí)這個領(lǐng)域的全景。第2章介紹機(jī)器學(xué)習(xí)的基礎(chǔ)知識,其中涉及的基本概念、模型和理論,會為讀者在后續(xù)章節(jié)中更好地理解分布式機(jī)器學(xué)習(xí)的各項(xiàng)技術(shù)奠定基礎(chǔ)。第3章到第8章是本書的核心部分,向大家細(xì)致地講解分布式機(jī)器學(xué)習(xí)的框架及其各個功能模塊。其中第3章對整個分布式機(jī)器學(xué)習(xí)框架做綜述,而第4章到第8章則針對其中的數(shù)據(jù)與模型劃分模塊、單機(jī)優(yōu)化模塊、通信模塊、數(shù)據(jù)與模型聚合模塊分別加以介紹,展示每個模塊的不同選項(xiàng)并討論其長處與短板。接下來的三章是對前面內(nèi)容的總結(jié)與升華。其中第9章介紹由分布式機(jī)器學(xué)習(xí)框架中不同選項(xiàng)所組合出來的各式各樣的分布式機(jī)器學(xué)習(xí)算法,第10章討論這些算法的理論性質(zhì)(例如收斂性),第11章則介紹幾個主流的分布式機(jī)器學(xué)習(xí)系統(tǒng)(包括Spark MLlib、Multiverso參數(shù)服務(wù)器系統(tǒng)和TensorFlow數(shù)據(jù)流系統(tǒng))。最后的第12章是全書的結(jié)語,在對全書內(nèi)容進(jìn)行簡要總結(jié)之后,著重討論分布式機(jī)器學(xué)習(xí)這個領(lǐng)域未來的發(fā)展方向。有關(guān)本書的寫作,因?yàn)樯婕胺植际綑C(jī)器學(xué)習(xí)的不同側(cè)面,不同的章節(jié)對讀者預(yù)備知識的要求有所不同。尤其是涉及優(yōu)化算法和學(xué)習(xí)理論的部分,要求讀者對于最優(yōu)化理論和概率統(tǒng)計(jì)有一定的知識儲備。不過,如果讀者的目的只是熟悉主流的分布式機(jī)器學(xué)習(xí)框架和系統(tǒng),則可以跳過這些相對艱深的章節(jié),因?yàn)槠溆嗾鹿?jié)自成體系,對于理論部分沒有過多的依賴。我仍然清晰地記得,兩年以前華章公司的姚蕾編輯多次找到我,希望我能撰寫一本關(guān)于分布式機(jī)器學(xué)習(xí)的圖書。一方面被姚蕾的誠意打動,另一方面也考慮到這樣一本書對于在校研究生和人工智能從業(yè)者可能有所幫助,我最終欣然應(yīng)允。然而,平時(shí)工作過于繁忙,真正可以用來寫書的時(shí)間非常有限,所以一晃就是兩年的時(shí)光,直至今日本書才與讀者見面,內(nèi)心十分慚愧;仡欉@兩年的寫作過程,有很多人需要感謝。首先,我要感謝本書的聯(lián)合作者:陳薇博士負(fù)責(zé)書中與優(yōu)化算法和學(xué)習(xí)理論有關(guān)的內(nèi)容,王太峰和高飛則主要負(fù)責(zé)通信機(jī)制、聚合模式和分布式機(jī)器學(xué)習(xí)系統(tǒng)等方面的內(nèi)容。沒有他們夜以繼日的努力,本書無法成文。在寫作過程中,本書的各位作者得到了家人的大力支持。寫書之路實(shí)屬不易,如果沒有她(他)們的默默奉獻(xiàn),作者們很難集中精力,攻克這個艱巨的任務(wù)。其次,我要感謝諸多為本書的寫作做出過重要貢獻(xiàn)的人:我在中國科學(xué)技術(shù)大學(xué)的博士生鄭書新花費(fèi)了大量的精力和時(shí)間幫助我們整理了全書的參考文獻(xiàn);北京大學(xué)的孟琪同學(xué)則幫助我們對全書做了細(xì)致的校驗(yàn);華章公司的編輯姚蕾和遲振春對我們的書稿提出了很多寶貴的意見;普林斯頓大學(xué)教授、中國科學(xué)院院士鄂維南博士,以及南京大學(xué)教授周志華博士分別為本書題寫了推薦序。正是因?yàn)檫@么多幕后英雄的奉獻(xiàn),本書才得以順利面世。最后,我還要感謝微軟亞洲研究院院長洪小文博士,他的大力支持使得我們在分布式機(jī)器學(xué)習(xí)這個領(lǐng)域做出了很多高質(zhì)量的研究工作,也使得我們有機(jī)會把這些成果記錄下來,編纂成書,與更多的同行分享。慚愧的是,即便耗時(shí)兩載,即便集合了多人的智慧和努力,本書的寫作仍然略顯倉促。加之分布式機(jī)器學(xué)習(xí)這個領(lǐng)域飛速發(fā)展,本書成稿之時(shí),又有很多新的研究成果發(fā)表,難以周全覆蓋。再則,本書的作者才疏學(xué)淺,書中難免有疏漏、錯誤之處,還望讀者海涵,不吝告知,日后加以勘誤,不勝感激。劉鐵巖于北京中關(guān)村2018年6月
作者介紹:
劉鐵巖
微軟亞洲研究院副院長。劉博士的先鋒性研究促進(jìn)了機(jī)器學(xué)習(xí)與信息檢索之間的融合,被國際學(xué)術(shù)界公認(rèn)為排序?qū)W習(xí)領(lǐng)域的代表人物。近年來在深度學(xué)習(xí)、分布式學(xué)習(xí)、強(qiáng)化學(xué)習(xí)等方面也頗有建樹,發(fā)表論文200余篇,被引用近兩萬次。多次獲得最佳論文獎、最高引用論文獎、Springer十大暢銷華人作者、Elsevier
最高引中國學(xué)者等。被聘為卡內(nèi)基-梅隆大學(xué)(CMU)客座教授,諾丁漢大學(xué)榮譽(yù)教授,中國科技大學(xué)教授、博士生導(dǎo)師;被評為國際電子電氣工程師學(xué)會(IEEE)會士,國際計(jì)算機(jī)學(xué)會(ACM)杰出會員。
陳薇 微軟亞洲研究院機(jī)器學(xué)習(xí)組主管研究員,研究機(jī)器學(xué)習(xí)各個分支的理論解釋和算法改進(jìn),尤其關(guān)注深度學(xué)習(xí)、分布式機(jī)器學(xué)習(xí)、強(qiáng)化學(xué)習(xí)、博弈機(jī)器學(xué)習(xí)、排序?qū)W習(xí)等。2011年于中國科學(xué)院數(shù)學(xué)與系統(tǒng)科學(xué)研究院獲得博士學(xué)位,同年加入微軟亞洲研究院,負(fù)責(zé)機(jī)器學(xué)習(xí)理論項(xiàng)目,先后在NIPS、ICML、AAAI、IJCAI等相關(guān)領(lǐng)域頂級國際會議和期刊上發(fā)表文章30余篇。
王太峰 螞蟻金服人工智能部總監(jiān)、資深算法專家。在螞蟻金服負(fù)責(zé)AI算法組件建設(shè),算法工作服務(wù)于螞蟻金服的支付、國際、保險(xiǎn)等多條業(yè)務(wù)線。在加入螞蟻之前在微軟亞洲研究院工作11年,任主管研究員,他的研究方向包括大規(guī)模機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、計(jì)算廣告學(xué)等。在國際頂級的機(jī)器學(xué)習(xí)會議上發(fā)表近20篇的論文,在大規(guī)模機(jī)器學(xué)習(xí)工具開源方面也做出過很多貢獻(xiàn),在微軟期間主持開發(fā)過DMTK的開源項(xiàng)目。
高飛 微軟亞洲研究院副研究員,主要從事分布式機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的研究工作,并在國際會議上發(fā)表多篇論文。2014年設(shè)計(jì)開發(fā)了當(dāng)時(shí)規(guī)模最大的主題模型算法和系統(tǒng)LightLDA。他還開發(fā)了一系列分布式機(jī)器學(xué)習(xí)系統(tǒng),并通過微軟分布式機(jī)器學(xué)習(xí)工具包(DMTK)開源在GitHub上。
序言一序言二前 言作者介紹第1章 緒論/ 11.1 人工智能及其飛速發(fā)展/ 21.2 大規(guī)模、分布式機(jī)器學(xué)習(xí)/ 41.3 本書的安排/ 6參考文獻(xiàn)/ 7第2章 機(jī)器學(xué)習(xí)基礎(chǔ)/ 92.1 機(jī)器學(xué)習(xí)的基本概念/ 102.2 機(jī)器學(xué)習(xí)的基本流程/ 132.3 常用的損失函數(shù)/ 162.3.1 Hinge損失函數(shù)/ 162.3.2 指數(shù)損失函數(shù)/ 162.3.3 交叉熵?fù)p失函數(shù)/ 172.4 常用的機(jī)器學(xué)習(xí)模型/ 182.4.1 線性模型/ 182.4.2 核方法與支持向量機(jī)/ 182.4.3 決策樹與Boosting/ 212.4.4 神經(jīng)網(wǎng)絡(luò)/ 232.5 常用的優(yōu)化方法/ 322.6 機(jī)器學(xué)習(xí)理論/ 332.6.1 機(jī)器學(xué)習(xí)算法的泛化誤差/ 342.6.2 泛化誤差的分解/ 342.6.3 基于容度的估計(jì)誤差的上界/ 352.7 總結(jié)/ 36參考文獻(xiàn)/ 36第3章 分布式機(jī)器學(xué)習(xí)框架/ 413.1 大數(shù)據(jù)與大模型的挑戰(zhàn)/ 423.2 分布式機(jī)器學(xué)習(xí)的基本流程/ 443.3 數(shù)據(jù)與模型劃分模塊/ 463.4 單機(jī)優(yōu)化模塊/ 483.5 通信模塊/ 483.5.1 通信的內(nèi)容/ 483.5.2 通信的拓?fù)浣Y(jié)構(gòu)/ 493.5.3 通信的步調(diào)/ 513.5.4 通信的頻率/ 523.6 數(shù)據(jù)與模型聚合模塊/ 533.7 分布式機(jī)器學(xué)習(xí)理論/ 543.8 分布式機(jī)器學(xué)習(xí)系統(tǒng)/ 553.9 總結(jié)/ 56參考文獻(xiàn)/ 57第4章 單機(jī)優(yōu)化之確定性算法/ 614.1 基本概述/ 624.1.1 機(jī)器學(xué)習(xí)的優(yōu)化框架/ 624.1.2 優(yōu)化算法的分類和發(fā)展歷史/ 654.2 一階確定性算法/ 674.2.1 梯度下降法/ 674.2.2 投影次梯度下降法/ 694.2.3 近端梯度下降法/ 704.2.4 Frank-Wolfe算法/ 714.2.5 Nesterov加速法/ 724.2.6 坐標(biāo)下降法/ 754.3 二階確定性算法/ 754.3.1 牛頓法/ 764.3.2 擬牛頓法/ 774.4 對偶方法/ 784.5 總結(jié)/ 81參考文獻(xiàn)/ 8第5章 單機(jī)優(yōu)化之隨機(jī)算法/ 855.1 基本隨機(jī)優(yōu)化算法/ 865.1.1 隨機(jī)梯度下降法/ 865.1.2 隨機(jī)坐標(biāo)下降法/ 885.1.3 隨機(jī)擬牛頓法/ 915.1.4 隨機(jī)對偶坐標(biāo)上升法/ 935.1.5 小結(jié)/ 955.2 隨機(jī)優(yōu)化算法的改進(jìn)/ 965.2.1 方差縮減方法/ 965.2.2 算法組合方法/ 1005.3 非凸隨機(jī)優(yōu)化算法/ 1015.3.1 Ada系列算法/ 1025.3.2 非凸理論分析/ 1045.3.3 逃離鞍點(diǎn)問題/ 1065.3.4 等級優(yōu)化算法/ 1075.4 總結(jié)/ 109參考文獻(xiàn)/ 109第6章 數(shù)據(jù)與模型并行/ 1136.1 基本概述/ 1146.2 計(jì)算并行模式/ 1176.3 數(shù)據(jù)并行模式/ 1196.3.1 數(shù)據(jù)樣本劃分/ 1206.3.2 數(shù)據(jù)維度劃分/ 1236.4 模型并行模式/ 1236.4.1 線性模型/ 1236.4.2 神經(jīng)網(wǎng)絡(luò)/ 1276.5 總結(jié)/ 133參考文獻(xiàn)/ 133第7章 通信機(jī)制/ 1357.1 基本概述/ 1367.2 通信的內(nèi)容/ 1377.2.1 參數(shù)或參數(shù)的更新/ 1377.2.2 計(jì)算的中間結(jié)果/ 1377.2.3 討論/ 1387.3 通信的拓?fù)浣Y(jié)構(gòu)/ 1397.3.1 基于迭代式MapReduce/AllReduce的通信拓?fù)? 1407.3.2 基于參數(shù)服務(wù)器的通信拓?fù)? 1427.3.3 基于數(shù)據(jù)流的通信拓?fù)? 1437.3.4 討論/ 1457.4 通信的步調(diào)/ 1457.4.1 同步通信/ 1467.4.2 異步通信/ 1477.4.3 同步和異步的平衡/ 1487.4.4 討論/ 1507.5 通信的頻率/ 1507.5.1 時(shí)域?yàn)V波/ 1507.5.2 空域?yàn)V波/ 1537.5.3 討論/ 1557.6 總結(jié)/ 156參考文獻(xiàn)/ 156第8章 數(shù)據(jù)與模型聚合/ 1598.1 基本概述/ 1608.2 基于模型加和的聚合方法/ 1608.2.1 基于全部模型加和的聚合/ 1608.2.2 基于部分模型加和的聚合/ 1628.3 基于模型集成的聚合方法/ 1678.3.1 基于輸出加和的聚合/ 1688.3.2 基于投票的聚合/ 1718.4 總結(jié)/ 174參考文獻(xiàn)/ 174第9章 分布式機(jī)器學(xué)習(xí)算法/ 1779.1 基本概述/ 1789.2 同步算法/ 1799.2.1 同步SGD方法/ 1799.2.2 模型平均方法及其改進(jìn)/ 1829.2.3 ADMM算法/ 1839.2.4 彈性平均SGD算法/ 1859.2.5 討論/ 1869.3 異步算法/ 1879.3.1 異步SGD/ 1879.3.2 Hogwild!算法/ 1899.3.3 Cyclades算法/ 1909.3.4 帶延遲處理的異步算法/ 1929.3.5 異步方法的進(jìn)一步加速/ 1999.3.6 討論/ 1999.4 同步和異步的對比與融合/ 1999.4.1 同步和異步算法的實(shí)驗(yàn)對比/ 1999.4.2 同步和異步的融合/ 2019.5 模型并行算法/ 2039.5.1 DistBelief/ 2039.5.2 AlexNet/ 2049.6 總結(jié)/ 205參考文獻(xiàn)/ 205第10章 分布式機(jī)器學(xué)習(xí)理論/ 20910.1 基本概述/ 21010.2 收斂性分析/ 21010.2.1 優(yōu)化目標(biāo)和算法/ 21110.2.2 數(shù)據(jù)和模型并行/ 21310.2.3 同步和異步/ 21510.3 加速比分析/ 21710.3.1 從收斂速率到加速比/ 21810.3.2 通信量的下界/ 21910.4 泛化分析/ 22110.4.1 優(yōu)化的局限性/ 22210.4.2 具有更好泛化能力的非凸優(yōu)化算法/ 22410.5 總結(jié)/ 226參考文獻(xiàn)/ 226第11章 分布式機(jī)器學(xué)習(xí)系統(tǒng)/ 22911.1 基本概述/ 23011.2 基于IMR的分布式機(jī)器學(xué)習(xí)系統(tǒng)/ 23111.2.1 IMR和Spark/ 23111.2.2 Spark MLlib/ 23411.3 基于參數(shù)服務(wù)器的分布式機(jī)器學(xué)習(xí)系統(tǒng)/ 23611.3.1 參數(shù)服務(wù)器/ 23611.3.2 Multiverso參數(shù)服務(wù)器/ 23711.4 基于數(shù)據(jù)流的分布式機(jī)器學(xué)習(xí)系統(tǒng)/ 24111.4.1 數(shù)據(jù)流/ 24111.4.2 TensorFlow數(shù)據(jù)流系統(tǒng)/ 24311.5 實(shí)戰(zhàn)比較/ 24811.6 總結(jié)/ 252參考文獻(xiàn)/ 252第12章 結(jié)語/ 25512.1 全書總結(jié)/ 25612.2 未來展望/ 257索引/ 260