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