總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 自動化基礎理論
 
 
 
 
移動平台深度神經網絡實戰:原理•架構與優化(配件另行下載)
 叢書名稱: 智能系統與技術叢書
 作  者: 盧譽聲
 出版單位: 機械工業
 出版日期: 2020.01
 進貨日期: 2020/1/6
 ISBN: 9787111641001
 開  本: 16 開    
 定  價: 968
 售  價: 774
  會 員 價: 710
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

(1)業界專家聯袂推薦,資深專家手把手教你開發移動平台人工智能系統;

(2)精講移動平台深度學習系統所需核心算法、硬件級指令集、系統設計與編程實戰、海量數據處理、業界流行框架裁剪與產品級性能優化策略等。


內容簡介:

本書精講移動平台深度學習系統所需核心算法、硬件級指令集、系統設計與編程實戰、海量數據處理、業界流行框架裁剪與產品級性能優化策略等,深入、翔實。

深度學習基礎(第1∼4章),介紹開發機器學習系統所需重要知識點,以及開發移動平台機器學習系統算法基石,諸如人工神經網絡、稀疏自編碼器、深度網絡、卷積神經網絡等。

移動平台深度學習基礎(第5∼6章),介紹移動平台開發環境搭建、移動平台開發基礎、ARM指令集加速技術,以及輕量級網絡的實現原理與實戰。

深入理解深度學習(第7∼8章),剖析數據預處理原理與方法,高性能實時處理系統開發,以及基於深度神經網絡的物體檢測與識別。本篇是下一篇內容的前導與“基石”。

深入理解移動平台深度學習(第9∼12章),本篇應用前述章節的框架與技術,實現移動平台深度學習系統的實現與集成,具體涵蓋:? 移動平台性能優化,數據採集與訓練,為開發移動平台圖像分類系統建立基礎;? 深入剖析TensorFlow Lite代碼體系、構建原理、集成方法以及核心代碼與裁剪分析,模型處理工具,並完成移動平台系統集成;? 結合實戰分析主流移動平台機器學習框架、接口,並展望未來。


作者簡介:

盧譽聲

Autodesk數據平台和計算平台資深工程師,負責平台架構研發工作。工作內容涵蓋大規模分布式系統的服務器後端、前端以及SDK的設計與研發,在數據處理、實時計算、分布式系統設計與實現、性能調優、高可用性和自動化等方面積累了豐富的經驗。擅長C/C 、JavaScript開發,此外對Scala、Java以及移動平台等也有一定研究。著有《移動平台深度神經網絡實戰:原理、架構與優化》、《分布式實時處理系統:原理架構與實現》,並譯有《高級C/C 編譯技術》和《JavaScript編程精解(原書第2版)》等。


圖書目錄:

序一

序二

前言

第一篇 深度學習基礎

第1章 向未來問好 2

1.1 機器學習即正義 2

1.1.1 照本宣科 3

1.1.2 關鍵概念概述 4

1.1.3 數學之美 5

1.2 機器學習的場景和任務 6

1.3 機器學習算法 8

1.3.1 分類算法 8

1.3.2 回歸算法 8

1.3.3 聚類算法 8

1.3.4 關聯分析算法 9

1.3.5 集成算法 9

1.3.6 強化算法 10

1.4 如何掌握機器學習 10

1.4.1 學習曲線 10

1.4.2 技術棧 11

1.5 深度學習 12

1.5.1 深度學習的貢獻 12

1.5.2 深度學習框架簡介 13

1.5.3 安裝使用深度學習框架 16

1.5.4 深度學習進展 22

1.6 走進移動世界的深度學習 25

1.6.1 移動平台機器學習概述 25

1.6.2 難度和挑戰 26

1.7 本書框架 26

1.8 本章小結 27

第2章 機器學習基礎 28

2.1 機器學習的主要任務 28

2.2 貝葉斯模型 29

2.3 Logistic回歸 33

2.3.1 線性回歸 33

2.3.2 幾率與Logit 35

2.3.3 Logistic回歸 38

2.3.4 背景溯源 39

2.3.5 實現Logistic回歸 42

2.4 本章小結 44

第3章 人工神經網絡 45

3.1 人工神經網絡簡介 45

3.2 基本結構與前向傳播 46

3.2.1 神經元 46

3.2.2 連接與網絡 47

3.2.3 神經網絡向量化 48

3.2.4 前向傳播 50

3.3 反向傳播算法 50

3.4 實現前向神經網絡 53

3.4.1 神經網絡與前向傳播實現 53

3.4.2 Softmax回歸 60

3.5 稀疏自編碼器 61

3.5.1 引子 61

3.5.2 自編碼器簡介 61

3.5.3 稀疏自編碼算法 63

3.6 神經網絡數據預處理 64

3.6.1 去均值 64

3.6.2 歸一化 65

3.7 本章小結 65

第4章 深度網絡與卷積神經網絡 66

4.1 深度網絡 66

4.1.1 自我學習 66

4.1.2 特徵學習 67

4.1.3 深度神經網絡 68

4.1.4 逐層貪婪訓練方法 69

4.2 卷積神經網絡 70

4.2.1 全連接與部分連接網絡 70

4.2.2 卷積 70

4.2.3 池化 72

4.2.4 卷積神經網絡 73

4.3 卷積神經網絡實現 73

4.3.1 Layer實現 74

4.3.2 Net實現 79

4.3.3 InnerProduct實現 92

4.3.4 Convolution實現 95

4.3.5 Pooling實現 101

4.3.6 定義註冊頭文件 109

4.4 本章小結 110

第二篇 移動平台深度學習基礎

第5章 移動平台深度學習框架設計與實現 112

5.1 移動平台深度學習系統開發簡介 112

5.2 ARM Linux基礎開發環境 113

5.2.1 通用ARM工具鏈安裝 114

5.2.2 Android NDK安裝 114

5.2.3 樹莓派工具鏈安裝 115

5.3 TensorFlow Lite介紹 115

5.3.1 TensorFlow Lite特性 115

5.3.2 TensorFlow Lite架構 116

5.3.3 TensorFlow Lite代碼結構 117

5.4 移動平台性能優化基礎 118

5.4.1 ARM v8體系結構 119

5.4.2 ARM v8數據類型與寄存器 120

5.4.3 Neon指令集介紹 122

5.4.4 ARM v8內存模型 124

5.4.5 Neon指令集加速實例 127

5.5 本章小結 140

第6章 移動平台輕量級網絡實戰 141

6.1 適用於移動平台的輕量級網絡 141

6.2 SqueezeNet 142

6.2.1 微觀結構 142

6.2.2 宏觀結構 142

6.2.3 核心思路 143

6.2.4 實戰:用PyTorch實現SqueezeNet 144

6.3 MobileNet 153

6.4 ShuffleNet 154

6.5 MobileNet V2 155

6.5.1 MobileNet的缺陷 155

6.5.2 MobileNet V2的改進 155

6.5.3 網絡結構 156

6.5.4 實戰:用PyTorch實現MobileNet V2 157

6.6 本章小結 161

第三篇 深入理解深度學習

第7章 高性能數據預處理實戰 164

7.1 數據預處理任務 164

7.1.1 數據清理 165

7.1.2 數據集成 165

7.1.3 數據歸約 165

7.1.4 數據變換 166

7.2 數據標準化 166

7.3 PCA 167

7.3.1 PCA的現實問題 167

7.3.2 PCA的計算方法 167

7.3.3 PCA的數學理論基礎 169

7.4 在Hurricane之上實現PCA 170

7.4.1 Hurricane實時處理系統 171

7.4.2 實現Hurricane Topology 172

7.4.3 實現PCA 178

7.5 本章小結 192

第8章 基於深度神經網絡的物體檢測與識別 193

8.1 模式識別與物體識別 193

8.1.1 模式識別 193

8.1.2 模式識別系統 194

8.1.3 傳統模式識別方法 194

8.1.4 深度學習模式識別方法 197

8.2 圖像分類 197

8.2.1 LeNet 197

8.2.2 AlexNet 200

8.2.3 數據抓取整理 203

8.2.4 數據預處理 204

8.2.5 數據訓練 206

8.3 目標識別與物體檢測 207

8.3.1 目標識別簡介 207

8.3.2 R-CNN 208

8.3.3 SPP-Net 209

8.3.4 Fast R-CNN 211

8.3.5 Faster R-CNN 211

8.3.6 RetinaNet 213

8.4 檢測識別實戰 213

8.4.1 Faster R-CNN 214

8.4.2 RetinaNet 230

8.5 移動平台檢測識別實戰 237

8.5.1 移動平台系統開發思路 237

8.5.2 基於RetinaNet的檢測定位實現 237

8.5.3 基於AlexNet的識別分類實現 244

8.5.4 接口設計封裝 247

8.6 本章小結 258

第四篇 深入理解移動平台深度學習

第9章 深入移動平台性能優化 260

9.1 模型壓縮 260

9.2 權重稀疏化 262

9.2.1 Structured Sparsity Learning 262

9.2.2 Dynamic Network Surgery 262

9.2.3 Dynamic Network Surgery實現 264

9.3 模型加速 275

9.3.1 半精度與權重量化 275

9.3.2 深度壓縮 276

9.3.3 二值化網絡 278

9.3.4 三值化網絡 280

9.3.5 DoReFa-Net 282

9.3.6 編程實戰 283

9.4 嵌入式優化 287

9.4.1 算法侷限與改進 287

9.4.2 理論改進 287

9.4.3 編程實戰 288

9.5 嵌入式優化代碼實現 290

9.5.1 量化分析實現 290

9.5.2 層實現 302

9.5.3 量化矩陣計算 309

9.6 本章小結 313

第10章 數據採集與模型訓練實戰 314

10.1 收集海量數據 314

10.1.1 搜索引擎工作原理 315

10.1.2 HTTP會話 316

10.1.3 解決JavaScript渲染問題 316

10.2 圖片數據爬蟲實現 317

10.2.1 獲取任務 318

10.2.2 解析圖片 320

10.2.3 圖片存儲 326

10.2.4 圖片去重 327

10.2.5 完成Topology 328

10.3 訓練與測試 330

10.3.1 模型定義 330

10.3.2 訓練 334

10.3.3 測試 342

10.3.4 封裝 344

10.4 本章小結 345

第11章 移動和嵌入式平台引擎與工具實戰 346

11.1 TensorFlow Lite構建 346

11.2 集成TensorFlow Lite 357

11.3 核心實現分析 358

11.3.1 解釋器代碼分析 358

11.3.2 圖代碼分析 373

11.3.3 操作符註冊 381

11.3.4 操作符擴展實現 384

11.3.5 計算與優化模塊 399

11.4 模型處理工具 407

11.5 本章小結 425

第12章 移動平台框架與接口實戰 426

12.1 Core ML 426

12.1.1 準備數據和生成模型 427

12.1.2 App實戰:引入Core ML實現 430

12.2 Android Neural Networks API 437

12.2.1 等等,Google還有一個ML Kit 437

12.2.2 NNAPI編程模型 437

12.2.3 創建網絡與計算 439

12.2.4 JNI封裝與調用 451

12.2.5 App實戰:集成NNAPI 454

12.3 實戰:實現Android圖像分類器App 459

12.3.1 JNI封裝 459

12.3.2 Java調用 474

12.4 未來之路 479

12.5 本章小結 480


章節試讀:

為什麼要寫這本書

機器學習、雲計算與移動技術的興起為計算機科學領域注入了前所未有的活力,而海量數據時代的來臨更是為機器學習技術帶來了新的發展契機。我們可以看到,越來越多的企業和研發機構開始在自己的產品當中加入機器智能,曾經僅僅是為了錦上添花而使用的機器學習應用,如今搖身一變,成了現代軟件產品或服務的核心競爭力。通過機器學習技術,軟件或服務的功能和體驗得到了質的提升。比如,我們甚至可以通過啟發式引擎智能地預測並調節雲計算分布式系統的節點壓力,以此改善服務的彈性和穩定性,這是多麼美妙。而對移動平台來說,越來越多的移動終端、邊緣計算設備和App開始引入人工智能技術,而且對預測實時性要求高的環境也越來越依賴於離線實時機器學習,另外移動技術的普及也讓邊緣計算支持機器智能成為可能。

然而,開發成熟完善的機器學習系統並不簡單。不同於傳統計算機軟件系統開發,研發機器學習系統不僅需要掌握紮實的軟件開發技術、算法原理,還需要掌握紛繁複雜的數據處理原理和實踐方法。此外,機器學習系統的實際載體多種多樣。一個典型的機器學習系統可以是運行在雲計算平台(比如Amazon AWS)之上的實例,通過API調用的方式提供預測服務。另一種情況是,集中式提供機器學習服務固然不錯,但離線機器學習計算是一項重大補充。在對實時性要求極為苛刻的生產環境中,實時的本地機器學習預測技術就顯得尤為關鍵,如何在確保准確率的前提下,提升整體計算效率、降低系統功耗成為需要攻克的難題。在移動技術、邊緣計算等技術突飛猛進的當下,研發高可靠、高效率以及低功耗的移動平台機器學習系統擁有廣闊的發展願景和市場,這既為我們創造了新的機遇,也使研發麵臨巨大的挑戰。這是筆者撰寫本書的原動力。本書著眼於移動平台之上的深度神經網絡系統的研發和實戰,從理論開始,抽絲剝繭地闡述、歸納和總結研發高性能計算系統的各個方面,同時輔以實戰,帶領讀者一起掌握實際的工程落地方法。

未來已至,我們需要做好準備!

本書特色

本書是一本由淺入深詳細講解研發高性能移動平台深度學習系統的編程實戰書。本書從基礎機器學習知識開始講起,涵蓋設計和使用高性能分布式實時處理系統,移動平台編程,前向引擎優化和裁剪,實際的代碼編寫,最終實現一整套針對移動領域開發的完整機器學習解決方案。在本書中,我們將介紹一套以C 編寫的高性能分布式實時處理系統Hurricane及其使用方法,供數據收集和預處理使用。在此基礎上,我們會深入剖析機器學習原理和深度神經網絡概念,而概念講解伴隨而來的是編程實戰,本書主要使用Python來講解基礎算法,驗證設想。

另外,本書採用循序漸進的方式講解理論知識,從基礎知識入手到艱澀的優化算法。相比於C/C ,Python是一門易於上手並實驗友好的膠水語言,因此在講解各類概念與算法時,我們會使用Python來驗證設想。從神經網絡和深度學習篇章開始,為了給工程開發學習打下堅實的基礎,本書除了使用Python代碼驗證設想外,還使用C/C 來實現產品級的代碼。

由於本書的主題是講解如何開發實現高性能的移動平台深度學習系統,因此會花費大量篇幅講解各種旨在提升算法速度和減小模型的小的算法與技術手段,從輕量級網絡等算法模型層面改良到Neon指令集應用、權重稀疏化、半精度、權重量化等優化算法與技術實現,最終完成適用於移動平台的深度學習引擎性能增強與模型裁剪。為了完成完整的深度學習系統,我們除了要掌握基本原理外還需要掌握各類實現應用所需的工程技術。例如,在第三篇講解與完成整個系統相關的所有技術時,還介紹了如何爬取訓練用的圖像數據、清理訓練數據、編寫訓練代碼等內容,並以TensorFlow Lite為例,講解移動平台深度學習引擎框架的搭建方法,卷積層、池化層和全連接層實現與iOS(包括iPadOS)、Android等平台的互操作實現與封裝方案,最終完成可以在iOS與Android上實際運行的深度學習系統。

期待讀者能從本書中學到新的知識,以便對深度學習與移動平台系統開發有更加深入的認識,了解如何構建一個高性能移動平台深度學習系統。

如何閱讀本書

本書從最基本的機器學習基礎概念和原理開始,逐步引入研發高性能移動平台機器學習系統所需要的方方面面,抽絲剝繭地把有關機器學習和框架的問題娓娓道來。

第一篇為深度學習基礎,包含第1∼4章。

第1章 介紹機器學習的一些基本概念、學習方法和開發機器學習系統所需的重要知識點,由此引出開發移動平台機器學習系統的主題,帶領讀者進入移動平台機器學習實戰領域。

第2章 進一步介紹機器學習方法、原理和算法,為理解人工神經網絡打下基礎。

第3章 介紹人工神經網絡、基於無監督學習的稀疏自編碼器以及相應的數據預處理實戰。

第4章 介紹深度網絡和卷積神經網絡的概念以及相應的編程實戰,作為移動平台實現算法的基石。

第二篇為移動平台深度學習基礎,包含第5∼6章。

第5章 介紹移動平台深度學習開發基礎,聚焦於ARM指令集加速技術。

第6章 介紹移動平台輕量級網絡的實現原理和編程實戰。

第三篇為深入理解深度學習,包含第7∼8章。

第7章 介紹數據預處理原理、方法,及基於高性能實時處理系統開發的PCA產品級數據預處理解決方案。

第8章 介紹模式識別和物體識別的基本概念以及經典算法,並通過深度神經網絡編程實戰實現AlexNet、Faster R-CNN和Retina Net。本書最後實現的移動平台示例主要是圖像分類,因此本章的作用是先介紹一下前導知識。

第四篇為深入理解移動平台深度學習,包含第9∼12章。

第9章 深入介紹移動平台性能優化主題,在移動平台對深度網絡的速度進行優化,使移動平台系統能夠高速低功耗使用模型的具體策略和方法。

第10章 介紹採集、訓練數據的方法和編程實戰,並通過TensorFlow完成訓練與測試,最後完成整個數據採集和訓練平台,為開發移動平台圖像分類系統建立基礎。

第11章 介紹了TensorFlow Lite的代碼體系、構建原理、集成方法以及核心代碼與裁剪分析,並介紹模型處理工具,完成移動平台系統集成。

第12章 介紹流行的移動平台機器學習框架和接口並輔以實戰,最後總結並展望未來。

閱讀前提

本書採用Ubuntu、Debian以及Windows操作系統作為基本的開發環境。此外,本書不會介紹基礎的編程概念和理論。我們假定讀者在閱讀本書之前已經具備基本的編程技術以及一定的Python、C/C 編程經驗(最後一章還需要一些Swift和Java的基本語法知識)。除此之外,數據對深度學習來說至關重要,讀者還應該具備基本的實時數據處理方法和實踐經驗。建議讀者先閱讀《Python程序設計》和《C 編程思想》以了解編程的基本概念,然後閱讀《高級C/C 編譯技術》和《分布式實時處理系統:原理、架構與實現》來進行提高。

本書排版約定

在本書中,讀者會發現針對不同信息類型的文本樣式。下面是這些樣式的示例和解釋。

所有命令行輸入和輸出如下所示:

mkdir mobile-ml-learning

cd mobile-ml-learning

代碼清單通常以以下格式展現:



2 #include

3

4 int main()

5 {

6 std::cout << "Hello mobile ML_world!!" << std::endl;

7

8 return 0;

9 }

在正文當中,我們可能會用以下方式拓展所講解的內容:

這裡是相關提示的文字。

讀者對象

本書適合以下讀者:

移動平台應用程序研發人員

嵌入式設備軟件研發人員

智能系統架構設計與開發工作者。

對於研發人員來說,本書是一本系統學習和掌握深度學習原理及深入剖析移動平台開發機器學習系統的指南。對於架構師來說,本書是一本移動平台機器學習系統架構設計的實戰書。讀者可以深入理解移動平台機器學習系統的內部構造以及重要組成部分,並自己設計、優化和改進系統的層次。同時,本書適合初學者學習機器學習實戰技術,掌握開發機器學習系統當中慣用的編程技巧。

勘誤和支持

雖然筆者在編寫本書的過程中經過反覆審校,全力確保本書內容的準確性,但錯誤在所難免。書中難免可能會出現一些錯誤或不準確的描述,懇請讀者批評指正。書中所涉及的所有源代碼及工程都可以從華章官網(www.hzbook.com)或GitHub(https://github.com/samblg/book-mobile-ml)下載,這些項目都是開源項目。現在我懷著期盼和忐忑的心情,將這本拙作呈獻給大家,我渴望得到您的認可,更渴望和您成為朋友,如果您有任何問題和建議,請與我聯繫(電子郵件:samblg@me.com),期待能夠得到您的真摯反饋。

致謝

在創作本書的過程中,我得到了很多人的幫助,這裡必須要一一感謝,聊表寸心(排名不分先後):顧仁民、侯捷、魯昌華、彭垚、邵良、夏臻新、於俊、彭敏、曠天亮、徐立冰、風辰、陳煒、俞歡、Eddie Ruan、龍俊彤、石蓮、徐航、曾玉明、李佳和錢曙光。感謝我在Autodesk的同事和Cisco Systems的朋友。特別是我的良師益友金柳頎,感謝你在技術問題上的嚴謹精神。還要感謝機械工業出版社的高婧雅編輯對我的信任。

謹以此書獻給我最親愛的家人與朋友,你們是我奮鬥路上堅強的後盾。



盧譽聲

於上海


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。