本書帶領(lǐng)讀者用原生Python語言和Numpy線性代數(shù)庫實現(xiàn)一個基于計算圖的深度學習框架MatrixSlow(類似簡易版的PyTorch、TensorFlow或Caffe)。全書分為三個部分。第一部分是原理篇,實現(xiàn)了MatrixSlow框架的核心基礎(chǔ)設(shè)施,并基于此講解了機器學習與深度學習的概念和原理,比如模型、計算圖、訓練、梯度下降法及其各種變體。第二部分是模型篇,介紹了多種具有代表性的模型,包括邏輯回歸、多層全連接神經(jīng)網(wǎng)絡(luò)、因子分解機、Wide & Deep、DeepFM、循環(huán)神經(jīng)網(wǎng)絡(luò)以及卷積神經(jīng)網(wǎng)絡(luò),這部分除了著重介紹這些模型的原理、結(jié)構(gòu)以及它們之間的聯(lián)系外,還用MatrixSlow框架搭建并訓練它們以解決實際問題。第三部分是工程篇,討論了一些與深度學習框架相關(guān)的工程問題,內(nèi)容涉及訓練與評估,模型的保存、導入和服務部署,分布式訓練,等等。
1.大咖推薦:復旦大學計算機學院教授邱錫鵬、一流科技創(chuàng)始人兼CEO袁進輝(@老師木)、格靈深瞳創(chuàng)始人兼CEO趙勇、奇虎360集團副總裁鄧亞峰聯(lián)合推薦
2.干貨滿滿:從零開始用Python實現(xiàn)自己的深度學習框架,搭建從邏輯回歸到卷積神經(jīng)網(wǎng)絡(luò)的各類模型和網(wǎng)絡(luò),涵蓋模型的訓練、評估、保存與部署等工程問題
3.聚焦實戰(zhàn):360智能工程部高級機器學習算法工程師傾力打造
4.提供源代碼
這是一本引人入勝的書,它通過由淺入深的講解讓你了解深度學習的原理、模型和實現(xiàn)方法,內(nèi)容清晰易懂,表達生動形象。當從零開始一步一步實現(xiàn)一個深度學習框架MatrixSlow后,你會更加深入地理解深度學習的奧秘,進而快速提升自己的能力。
--邱錫鵬,復旦大學計算機學院教授
張覺非
本科畢業(yè)于復旦大學計算機系,于中國科學院古脊椎動物與古人類研究所取得古生物學碩士學位,目前在互聯(lián)網(wǎng)行業(yè)從事機器學習算法相關(guān)工作。
陳震
碩士畢業(yè)于北京大學。現(xiàn)任奇虎360智能工程部總監(jiān)、負責人,帶領(lǐng)團隊建設(shè)集團的機器學習計算調(diào)度平臺、機器學習建模平臺、機器學習推理引擎以及推薦平臺等AI基礎(chǔ)設(shè)施。
第 一部分 原理篇
第 1章 機器學習與模型 2
1.1 模型 2
1.2 參數(shù)與訓練 4
1.3 損失函數(shù) 9
1.4 計算圖的訓練 10
1.5 小結(jié) 12
第 2章 計算圖 13
2.1 什么是計算圖 13
2.2 前向傳播 14
2.3 函數(shù)優(yōu)化與梯度下降法 18
2.4 鏈式法則與反向傳播 29
2.5 在計算圖上執(zhí)行梯度下降法 36
2.6 節(jié)點類及其子類 36
2.7 用計算圖搭建ADALINE并訓練 44
2.8 小結(jié) 48
第3章 優(yōu)化器 49
3.1 優(yōu)化流程的抽象實現(xiàn) 49
3.2 BGD、SGD和MBGD 53
3.3 梯度下降優(yōu)化器 58
3.4 樸素梯度下降法的局限 60
3.5 沖量優(yōu)化器 61
3.6 AdaGrad優(yōu)化器 62
3.7 RMSProp優(yōu)化器 64
3.8 Adam優(yōu)化器 65
3.9 小結(jié) 68
第二部分 模型篇
第4章 邏輯回歸 70
4.1 對數(shù)損失函數(shù) 70
4.2 Logistic函數(shù) 73
4.3 二分類邏輯回歸 75
4.4 多分類邏輯回歸 78
4.5 交叉熵 81
4.6 實例:鳶尾花 85
4.7 小結(jié) 88
第5章 神經(jīng)網(wǎng)絡(luò) 90
5.1 神經(jīng)元與激活函數(shù) 90
5.2 神經(jīng)網(wǎng)絡(luò) 95
5.3 多層全連接神經(jīng)網(wǎng)絡(luò) 99
5.4 多個全連接層的意義 101
5.5 實例:鳶尾花 108
5.6 實例:手寫數(shù)字識別 110
5.7 小結(jié) 116
第6章 非全連接神經(jīng)網(wǎng)絡(luò) 117
6.1 帶二次項的邏輯回歸 117
6.2 因子分解機 124
6.3 Wide & Deep 132
6.4 DeepFM 137
6.5 實例:泰坦尼克號幸存者 141
6.6 小結(jié) 150
第7章 循環(huán)神經(jīng)網(wǎng)絡(luò) 151
7.1 RNN的結(jié)構(gòu) 151
7.2 RNN的輸出 152
7.3 實例:正弦波與方波 155
7.4 變長序列 159
7.5 實例:3D電磁發(fā)音儀單詞識別 164
7.6 小結(jié) 167
第8章 卷積神經(jīng)網(wǎng)絡(luò) 168
8.1 蒙德里安與莫奈 168
8.2 濾波器 170
8.3 可訓練的濾波器 176
8.4 卷積層 183
8.5 池化層 186
8.6 CNN的結(jié)構(gòu) 189
8.7 實例:手寫數(shù)字識別 190
8.8 小結(jié) 194
第三部分 工程篇
第9章 訓練與評估 196
9.1 訓練和Trainer訓練器 196
9.2 評估和Metrics節(jié)點 202
9.3 混淆矩陣 204
9.4 正確率 204
9.5 查準率 206
9.6 查全率 206
9.7 ROC曲線和AUC 208
9.8 小結(jié) 211
第 10章 模型保存、預測和服務 212
10.1 模型保存 213
10.2 模型加載和預測 216
10.3 模型服務 216
10.4 客戶端 222
10.5 小結(jié) 223
第 11章 分布式訓練 224
11.1 分布式訓練的原理 224
11.2 基于參數(shù)服務器的架構(gòu) 230
11.3 Ring AllReduce原理 241
11.4 Ring AllReduce架構(gòu)實現(xiàn) 248
11.5 分布式訓練性能評測 257
11.6 小結(jié) 259
第 12章 工業(yè)級深度學習框架 261
12.1 張量 262
12.2 計算加速 263
12.3 GPU 265
12.4 數(shù)據(jù)接口 266
12.5 模型并行 266
12.6 靜態(tài)圖和動態(tài)圖 267
12.7 混合精度訓練 268
12.8 圖優(yōu)化和編譯優(yōu)化 270
12.9 移動端和嵌入式端 270
12.10 小結(jié) 271