本書關注云計算、大數據、物聯網、認知計算、機器學習的基本原理、智能應用和編程實戰,包括AWS、微軟Azure云、谷歌DeepMind和寒武紀神經芯片等大量案例。全書共四個部分,部分介紹云計算、數據科學和自適應計算的基本原理,第二部分涵蓋云架構、虛擬機、Docker容器和多云混搭服務等,第三部分講解機器學習、深度學習、類腦計算機和AR/VR等的原理,第四部分討論MapReduce、Hadoop、Spark、TensorFlow和GraphX云編程。本書適合作為高等院校計算機相關專業高年級本科生和研究生的教材,也適合互聯網、物聯網等領域的專業技術人員參考。
前 言Cloud Computing for Machine Learning and Cognitive Applications以“云大物移智”為標志的新技術革命開啟了科技的新時代,我們看到了云計算、大數據、物聯網、移動互聯網與人工智能等新興領域的蓬勃發展。這對計算機科學與信息工程專業人才的知識結構與創新能力提出了新的要求。在這樣的智能時代,計算機與人工智能學科的教育及人才培養需要結合數理基礎知識、算法與軟件知識以及云平臺核心知識與能力,特別是在領域應用與知識交叉方面需要新的教材,這也是出版本書的主要目的。
本書英文版在美國南加州大學完成,中文版的翻譯由武漢大學計算機學院的五位老師承擔:袁志勇,杜瑞穎,張立強,伍春香,蔡朝暉。全書的翻譯與校對工作在袁志勇教授和杜瑞穎教授的協調下完成。我在此對他們專業的學術工作與敬業精神表示由衷的感謝。
全書共10章,強調云計算、大數據、物聯網、認知計算、機器學習的基本原理與智能應用。本書可作為高等院校與研究院的基礎教材,專業領域跨越計算機科學、人工智能、機器學習與大數據。本書之前的版本《云計算與分布式系統》曾作為美國南加州大學、清華大學與武漢大學的教材。我們為授課教師提供配套的課件與習題解答,請訪問華章網站(www.hzbook.com)下載教輔資料。
計算機、互聯網與人工智能的突飛猛進自新舊千年交替以來,計算機和信息技術在規模、設備以及平臺方面都發生了重大變化。全球數以千計的數據中心正在轉化為云端,使數以億計的個人、企業和政府用戶受益。30億部智能手機正在用于與社交網絡云進行互動。所有這些都大大改變了人類的活動和交往。物聯網(IoT)和機器智能正在重塑我們的生活方式。這些信息技術的進展正在把我們的社會轉變為由許多人工智能(AI)和自動化認知解決方案所支撐的規模經濟。事實上,我們正在進入一個擁有云數據分析、智能機器人、機器學習和認知服務的時代。
為實現新的計算和通信模式,我們必須用新功能提升云計算生態系統,這些新功能涵蓋機器學習、物聯網感知、數據分析以及能模擬或增強人類智能的認知能力。最終目標是建立大數據產業,提供認知服務,在更高的效率下處理勞動密集型任務,從而彌補人類在這方面的缺陷。我們必須設計成功的云系統、網絡服務和數據中心,用于存儲、處理、學習和分析大數據,以發現新知識或做出重要決策。這些目標可通過硬件虛擬化、機器學習、經訓練的深度學習、神經形態計算機架構以及認知服務來實現。例如,新的云服務可以包括學習即服務(LaaS)、分析即服務(AaaS)或安全即服務(SaaS)等。
如今,IT公司、大型企業、大學和政府正逐漸將其數據中心轉移到云設施中,以支持移動和網絡應用。擁有類似于云的集群架構的超級計算機也正在轉型,以處理大數據集或數據流。智能云對于支持社交、媒體、移動端、商業和政府運營的需求量極大。谷歌、亞馬遜、微軟、臉書、蘋果、百度、阿里巴巴、騰訊和IBM等公司正在爭相開發物聯網設備、智能機器人、自動駕駛汽車、飛行汽車和認知系統。高科技產業正在進入一個挑戰與機遇并存的新世界。
本書速覽與導讀本書旨在幫助高年級本科生或研究生掌握現代云系統架構、機器學習算法、并行和分布式編程以及用于大數據挖掘、預測分析和認知服務應用的軟件工具,并推動大數據和機器智能時代的職業發展和業務轉型。它也可以作為專業人士、科學家或工程師的參考書。本書是我過去二十年的研究、教學和授課經驗的結晶,讀者可利用本書學習云和機器學習方面的技能。本書共四個部分,包含10 章,現簡要介紹如下。
第一部分有兩章,介紹大數據應用中的云計算、數據科學和自適應計算的基本原理。這兩章為后續八章提供了必要的理論基礎和技術基礎。
第二部分有三章,涵蓋云架構、虛擬機、Docker容器、移動云、物聯網和多云混搭服務,案例研究包括AWS、谷歌云、微軟Azure云、IBM智能云、Salesforce云、SGI Cyclone、蘋果iCloud、NASA Nebula云及CERN云。
第三部分有兩章,主要介紹機器學習、深度學習、人工智能機器、智能機器人、神經形態處理器、類腦計算機、增強現實(AR)和虛擬現實(VR)的原理, 涵蓋谷歌腦計劃、DeepMind、X-Lab計劃、IBM SyNapse神經形態芯片、Bluemix云和認知計劃以及中國的寒武紀神經芯片。
第四部分有三章,介紹關于MapReduce、Hadoop、Spark、TensorFlow和GraphX的云編程范例、軟件工具以及應用開發,最后一章專門討論云性能、隱私和安全問題。所有云系統、編程范例、機器學習方法和軟件工具在書中都有具體的應用示例。
將人工智能賦予云端和物聯網平臺本書將大數據理論與智能云中的新興技術相結合,并利用新的應用探索分布式數據中心。如今,信息物理系統(CPS)出現在智慧城市、自動駕駛、情感檢測機器人、送貨無人機、虛擬現實、增強現實以及認知服務中。為促進智能云或數據中心的有效大數據計算,本書采用技術融合方式將大數據理論與云設計原理及超級計算標準相結合。物聯網感知技術可實現大規模的數據采集和篩選。在云端或物聯網平臺上,機器學習和數據分析有助于智能決策,自動且無人為干預。
擁有AI特性的增強云和超級計算機是我們的根本目標。這些人工智能和機器學習任務在實際中的應用由Hadoop、Spark和TensorFlow程序庫支持。數據分析師、認知科學家和計算機專業人士須共同努力解決實際問題。這種協作學習必須包含云端、移動設備、數據中心和物聯網資源,最終目標是發現新知識或者做出重要決策。多年以來,我們一直在探索如何建造類腦計算機,它能在感知、記憶、識別和理解中模仿或增強人類功能。
當今,谷歌、IBM、微軟、臉書、中國科學院以及百度都在探索云計算、機器學習和物聯網應用中的人工智能。本書涵蓋一些新的神經形態芯片和領先的研究中心構建的軟件平臺,它使認知計算成為可能。本書考察了在硬件、軟件和生態系統方面的進步,不僅注重機器學習技術,包括模式識別、語音/圖像理解以及低成本、低功耗需求的語言翻譯和理解,而且強化了用手機、機器人、物聯網平臺、數據中心以及云計算構建未來網絡空間的新方法。
讀者對象和教師指南本書是為滿足日益增長的計算機科學和電氣工程教育課程的需求而編寫的。教師可選擇與課程相適應的不同章節進行講授,從而滿足各層次學生的需求。本書適合在高年級本科生和研究生的教學中使用,同時,也能幫助那些希望增進技能以迎接新的IT技術挑戰的計算機專業人士。
講授云計算課程應至少覆蓋8章。如果教學課時有限,可跳過第2章和第7章。對于機器學習課程,可跳過第3章或第10章。對于高年級本科生課程,講授7章(1,2,3,4,5,6,8)足夠。任何課程都要覆蓋云計算和機器學習兩個主題,此外,本書也適合作為大數據科學、物聯網應用和分布式計算課程的參考書。
計算機、互聯網等高科技行業的工程師、科學家及管理者也能從本書中找到有益的參考。例如:英特爾工程師可能會發現本書有助于推動物聯網的概念;亞馬遜、谷歌、微軟、Apache、Databricks和Cloudera的軟件工程師及大數據分析師可能會發現它在日常工作中有用;谷歌腦計劃、X-Lab計劃和DeepMind的開發人員可在深度學習服務中使用書中知識進行語音、文字、圖像理解以及醫療保健和自動駕駛開發;在新興認知行業中,IBM已確定將物聯網和認知服務用于擴大其在社會和政府部門的業務;臉書、蘋果和百度可能希望利用AR和VR技術探索新的AI特性、社交服務與個性化娛樂;最后,亞馬遜和阿里巴巴云的買賣雙方可能希望在電子商務和P2P社交服務之外拓展網絡購物及交易業務。
黃鎧2018年5月于深圳
作者簡介Cloud Computing for Machine Learning and Cognitive Applications黃鎧教授是計算機系統和互聯網技術領域的國際知名學者。目前,他是香港中文大學(深圳)校長講座教授,兼任中國科學院云計算中心首席科學家。他擁有加州大學伯克利分校的博士學位,主要研究領域為計算機體系結構、并行與分布式處理、云計算、大數據、物聯網、移動互聯網、網絡安全與人工智能應用等方面,目前主要關注大數據在醫療保健、智慧城市與移動社交網絡方面的應用。
加盟香港中文大學與中國科學院之前,他是美國南加州大學(USC)電子工程與計算機科學系的終身教授,現在已從該校退休。他曾在普渡大學任教多年,并先后在清華大學、香港大學、臺灣大學和浙江大學擔任特聘講座教授。他在專業領域發表了260篇科學論文,截至2018年4月在谷歌學術搜索中被引次數超過17400次,h指數為55。他是IEEE計算機協會的終身會士。他于2012年獲得國際云計算大會(IEEE CloudCom)終身成就獎,2004年獲得中國計算機學會(CCF)首屆海外杰出貢獻獎。
黃教授創作或合著了10余本英文學術專著,被翻譯為五國語言。其中,有5本被翻譯為中文,包括清華大學出版社出版的《高等計算機系統結構》(1995),以及機械工業出版社出版的《可擴展并行計算》(2000)、《云計算與分布式系統》(2013)與《認知計算與深度學習:基于物聯網云平臺的智能應用》(2018)等。這些書與本書是配套的關系。此外,他曾擔任《并行與分布式計算》(JPDC)雜志主編28年,還曾擔任IEEE《云計算會刊》(TCC)、《并行和分布式系統》(TPDS)、《服務計算》(TSC)以及《大數據智能》雜志的編委。
多年來,黃教授在南加州大學和普渡大學共培養博士生21人,其中4人晉升為IEEE會士,1人為IBM會士。他在IEEE與ACM國際會議和全球領先的大學進行過60多次主題演講和杰出講座。他曾在IBM研究院、Intel 公司、富士通研究院、麻省理工學院林肯實驗室、加州理工學院噴氣推進實驗室(JPL)、臺灣工業技術研究院(ITRI)、法國國家計算科學研究中心(ENRIA)和中國科學院計算所擔任高級顧問或首席科學家。
目 錄
Cloud Computing for Machine Learning and Cognitive Applications
出版者的話
譯者序
前言
作者簡介
第一部分 云平臺、大數據與認知計算
第1章 云計算系統原理 2
1.1 可擴展計算的彈性云系統 2
1.1.1 云計算的驅動技術 2
1.1.2 可擴展的分布式/并行計算的演化 3
1.1.3 云系統中的虛擬資源 5
1.1.4 云計算與本地計算 7
1.2 云平臺架構與分布式系統的比較 8
1.2.1 基本云平臺的架構 8
1.2.2 公共云、私有云、社區云和混合云 10
1.2.3 物理集群與虛擬集群 12
1.2.4 云與傳統并行/分布式系統的比較 14
1.3 云服務模型、生態系統與可擴展性分析 16
1.3.1 云服務模型:IaaS、PaaS和SaaS 16
1.3.2 云性能分析與可擴展性定理 18
1.3.3 云生態系統與用戶環境 20
1.3.4 云計算的技術成熟度曲線 23
1.3.5 云計算與其他技術的關系 24
1.4 集群的可用性、移動性和優化 26
1.4.1 云服務器集群的可用性分析 26
1.4.2 虛擬集群操作中的容錯 28
1.4.3 云中多服務器集群的排隊模型 29
1.4.4 云計算的多服務器集群優化 30
1.5 結論 32
習題 33
參考文獻 35
第2章 數據分析、物聯網與認知計算 37
2.1 大數據科學與應用面臨的挑戰 37
2.1.1 數據科學與大數據特征 37
2.1.2 物聯網的技術成熟度曲線 38
2.1.3 走向大數據工業 40
2.1.4 大數據應用概述 41
2.2 物聯網與云平臺的互動模式 44
2.2.1 IoT感知與平臺架構 45
2.2.2 IoT價值鏈與發展路線 47
2.2.3 獨立使用和與云平臺結合的IoT應用 49
2.2.4 智慧城市與智慧社區的發展 52
2.3 在云平臺上的數據收集、挖掘與分析 54
2.3.1 數據質量控制與表達 54
2.3.2 數據挖掘與分析 57
2.3.3 在云平臺上提升數據分析能力 59
2.3.4 支撐大數據分析的云資源 61
2.4 神經形態硬件與認知計算 63
2.4.1 認知計算與神經形態處理器 63
2.4.2 IBM SyNAPSE與相關的神經類腦計算機項目 66
2.4.3 中國科學院的神經處理器Cambricon 68
2.4.4 Google TPU與相關的人工智能應用 68
2.5 結論 70
習題 71
參考文獻 72
第二部分 云系統架構與服務平臺設計
第3章 虛擬機、Docker容器和服務器集群 74
3.1 云計算系統中的虛擬化 74
3.1.1 虛擬化的基本概念 74
3.1.2 虛擬化的實現層級 75
3.1.3 集群或云系統中的資源虛擬化 78
3.2 用于創建虛擬機的虛擬機監控器 79
3.2.1 虛擬機架構類型 79
3.2.2 完全虛擬化和托管虛擬化 81
3.2.3 修改客戶操作系統的半虛擬化 83
3.2.4 平臺虛擬化軟件產品與工具包比較 85
3.3 Docker引擎和應用程序容器 86
3.4 Docker容器和部署要求 89
3.4.1 使用Linux內核函數創建的Docker容器 89
3.4.2 虛擬機與Docker容器的比較 91
3.4.3 從虛擬機到容器和unikernel的架構演變 92
3.5 虛擬機管理和容器編排 94
3.5.1 虛擬機管理解決方案 94
3.5.2 用于災難恢復的虛擬機遷移 95
3.5.3 Docker容器調度和編排 98
3.6 Eucalyptus、OpenStack和VMware云構建 100
3.6.1 私有云中的Eucalyptus虛擬集群 100
3.6.2 用于構建私有云或公共云的OpenStack軟件 102
3.6.3 支持構建混合云的VMware虛擬化 103
3.7 結論 105
習題 105
參考文獻 107
第4章 云架構與服務平臺設計 109
4.1 云架構與基礎設施設計 109
4.1.1 公共云平臺及其服務項目 109
4.1.2 云服務的商業模型 111
4.1.3 數據中心到云平臺的轉換 113
4.1.4 資源彈性配置方法 117
4.2 虛擬集群的動態配置 119
4.2.1 虛擬集群配置項目 119
4.2.2 虛擬集群配置自適應 121
4.2.3 數據中心集群的虛擬化支持 122
4.2.4 VMware vSphere 6:商用云操作系統 123
4.3 AWS云及其服務項目 124
4.3.1 三大云架構與服務融合 124
4.3.2 AWS EC2計算引擎和S3存儲云服務 127
4.3.3 其他AWS云服務產品 129
4.4 Google AppEngine與Microsoft Azure 133
4.4.1 Google AppEngine及其計算引擎 133
4.4.2 Google硬件/軟件支持下的機器學習服務 137
4.4.3 Microsoft Azure云及其服務項目 138
4.5 Salesforce、IBM SmartCloud及其他云平臺 141
4.5.1 用于SaaS服務的Salesforce云平臺 141
4.5.2 IBM SmartCloud云平臺、物聯網及認知項目 143
4.5.3 SGI、NASA和CERN建立的云平臺 145
4.6 結論 148
習題 149
參考文獻 150
第5章 移動云、物聯網、社交媒體與混搭云服務 153
5.1 無線互聯網與移動云計算 153
5.1.1 移動設備與邊際互聯子網 153
5.1.2 WiFi、藍牙和無線傳感器網絡 155
5.1.3 移動云計算的微云網 156
5.1.4 移動云與托管云 158
5.2 物聯網感知以及與云的交互 160
5.2.1 本地與全球定位系統 161
5.2.2 構建移動云的無線接入網 162
5.2.3 物聯網和云的互動框架與設備 164
5.3 社交媒體應用中的云計算 167
5.3.1 社交媒體大數據工業應用 167
5.3.2 社交網絡與應用編程接口 170
5.3