隨著AI技術(shù)的普及,如何快速理解、掌握并應(yīng)用AI技術(shù),成為絕大多數(shù)程序員亟需解決的問(wèn)題。本書(shū)基于Keras框架并以代碼實(shí)現(xiàn)為核心,詳細(xì)解答程序員學(xué)習(xí)AI算法時(shí)的常見(jiàn)問(wèn)題,對(duì)機(jī)器學(xué)習(xí)、深度神經(jīng)網(wǎng)絡(luò)等概念在實(shí)際項(xiàng)目中的應(yīng)用建立清晰的邏輯體系。本書(shū)分為上下兩篇,上篇(第1~4章)可幫助讀者理解并獨(dú)立開(kāi)發(fā)較簡(jiǎn)單的機(jī)器學(xué)習(xí)應(yīng)用,下篇(第5~9章)則聚焦于AI技術(shù)的三大熱點(diǎn)領(lǐng)域:推薦系統(tǒng)、自然語(yǔ)言處理(NLP)及圖像處理。其中,第1章通過(guò)具體實(shí)例對(duì)Keras的機(jī)器學(xué)習(xí)實(shí)現(xiàn)進(jìn)行快速介紹并給出整體概念;第2章從簡(jiǎn)單的神經(jīng)元開(kāi)始,以實(shí)際問(wèn)題和代碼實(shí)現(xiàn)為引導(dǎo),逐步過(guò)渡到多層神經(jīng)網(wǎng)絡(luò)的具體實(shí)現(xiàn)上,從代碼層面講解神經(jīng)網(wǎng)絡(luò)的工作模式;第3章講解Keras的核心概念和使用方法,幫助讀者快速入門Keras;第4章講解機(jī)器學(xué)習(xí)中的常見(jiàn)概念、定義及算法;第5章介紹推薦系統(tǒng)的常見(jiàn)方案,包括協(xié)同過(guò)濾的不同實(shí)現(xiàn)及Wide&Deep模型等;第6章講解循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的原理及Seq2Seq、Attention等技術(shù)在自然語(yǔ)言處理中的應(yīng)用;第7~8章針對(duì)圖像處理的分類及目標(biāo)識(shí)別進(jìn)行深度討論,從代碼層面分析Faster RCNN及YOLO v3這兩種典型識(shí)別算法;第9章針對(duì)AI模型的工程部署問(wèn)題,引入TensorFlow Serving并進(jìn)行介紹。本書(shū)主要面向希望學(xué)習(xí)AI開(kāi)發(fā)或者轉(zhuǎn)型算法的程序員,也可以作為Keras教材,幫助讀者學(xué)習(xí)Keras在不同領(lǐng)域的具體應(yīng)用。
張力柯騰訊某AI實(shí)驗(yàn)室負(fù)責(zé)人、AI系統(tǒng)設(shè)計(jì)專家。在操作系統(tǒng)內(nèi)核、網(wǎng)絡(luò)安全、搜索引擎、推薦系統(tǒng)、大規(guī)模分布式系統(tǒng)、圖像處理、數(shù)據(jù)分析等領(lǐng)域具有豐富的實(shí)踐經(jīng)驗(yàn)。于美國(guó)德克薩斯大學(xué)圣安東尼奧分校獲得計(jì)算機(jī)科學(xué)博士學(xué)位,曾先后在美國(guó)微軟、BCG、Uber及硅谷其他創(chuàng)業(yè)公司擔(dān)任研發(fā)工程師及項(xiàng)目負(fù)責(zé)人等!∨恕煱⒗锇桶湍乘惴ㄖ行男〗M負(fù)責(zé)人。在推薦系統(tǒng)、自然語(yǔ)言處理、圖像處理、數(shù)據(jù)分析等領(lǐng)域具有豐富的實(shí)踐經(jīng)驗(yàn)。于美國(guó)佛羅里達(dá)理工大學(xué)獲得計(jì)算機(jī)科學(xué)博士學(xué)位,曾先后在中國(guó)微軟、美團(tuán)、騰訊從事算法研發(fā)和管理工作。發(fā)表過(guò)多篇論文,擁有多項(xiàng)專利,曾獲得2018年騰訊互動(dòng)娛樂(lè)事業(yè)群技術(shù)突破獎(jiǎng)等獎(jiǎng)項(xiàng)。
上篇
第1章 機(jī)器學(xué)習(xí)的HELLO WORLD 2
1.1 機(jī)器學(xué)習(xí)簡(jiǎn)介 2
1.2 機(jī)器學(xué)習(xí)應(yīng)用的核心開(kāi)發(fā)流程 3
1.3 從代碼開(kāi)始 6
1.3.1 搭建環(huán)境 6
1.3.2 一段簡(jiǎn)單的代碼 7
1.4 本章小結(jié) 9
1.5 本章參考文獻(xiàn) 9
第2章 手工實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò) 10
2.1 感知器 10
2.1.1 從神經(jīng)元到感知器 10
2.1.2 實(shí)現(xiàn)簡(jiǎn)單的感知器 12
2.2 線性回歸、梯度下降及實(shí)現(xiàn) 15
2.2.1 分類的原理 15
2.2.2 損失函數(shù)與梯度下降 16
2.2.3 神經(jīng)元的線性回歸實(shí)現(xiàn) 18
2.3 隨機(jī)梯度下降及實(shí)現(xiàn) 21
2.4 單層神經(jīng)網(wǎng)絡(luò)的Python實(shí)現(xiàn) 23
2.4.1 從神經(jīng)元到神經(jīng)網(wǎng)絡(luò) 23
2.4.2 單層神經(jīng)網(wǎng)絡(luò):初始化 25
2.4.3 單層神經(jīng)網(wǎng)絡(luò):核心概念 27
2.4.4 單層神經(jīng)網(wǎng)絡(luò):前向傳播 28
2.4.5 單層神經(jīng)網(wǎng)絡(luò):反向傳播 29
2.4.6 網(wǎng)絡(luò)訓(xùn)練及調(diào)整 34
2.5 本章小結(jié) 38
2.6 本章參考文獻(xiàn) 38
第3章 上手KERAS 39
3.1 Keras簡(jiǎn)介 39
3.2 Keras開(kāi)發(fā)入門 40
3.2.1 構(gòu)建模型 40
3.2.2 訓(xùn)練與測(cè)試 42
3.3 Keras的概念說(shuō)明 44
3.3.1 Model 44
3.3.2 Layer 48
3.3.3 Loss 65
3.4 再次代碼實(shí)戰(zhàn) 70
3.4.1 XOR運(yùn)算 70
3.4.2 房屋價(jià)格預(yù)測(cè) 73
3.5 本章小結(jié) 75
3.6 本章參考文獻(xiàn) 76
第4章 預(yù)測(cè)與分類:簡(jiǎn)單的機(jī)器學(xué)習(xí)應(yīng)用 77
4.1 機(jī)器學(xué)習(xí)框架之sklearn簡(jiǎn)介 77
4.1.1 安裝sklearn 78
4.1.2 sklearn中的常用模塊 78
4.1.3 對(duì)算法和模型的選擇 79
4.1.4 對(duì)數(shù)據(jù)集的劃分 80
4.2 初識(shí)分類算法 80
4.2.1 分類算法的性能度量指標(biāo) 81
4.2.2 樸素貝葉斯分類及案例實(shí)現(xiàn) 86
4.3 決策樹(shù) 90
4.3.1 算法介紹 90
4.3.2 決策樹(shù)的原理 91
4.3.3 實(shí)例演練 96
4.3.4 決策樹(shù)優(yōu)化 99
4.4 線性回歸 101
4.4.1 算法介紹 101
4.4.2 實(shí)例演練 101
4.5 邏輯回歸 102
4.5.1 算法介紹 102
4.5.2 多分類問(wèn)題與實(shí)例演練 107
4.6 神經(jīng)網(wǎng)絡(luò) 108
4.6.1 神經(jīng)網(wǎng)絡(luò)的歷史 108
4.6.2 實(shí)例演練 114
4.6.3 深度學(xué)習(xí)中的一些算法細(xì)節(jié) 117
4.7 本章小結(jié) 120
4.8 本章參考文獻(xiàn) 120
下篇
第5章 推薦系統(tǒng)基礎(chǔ) 122
5.1 推薦系統(tǒng)簡(jiǎn)介 122
5.2 相似度計(jì)算 124
5.3 協(xié)同過(guò)濾 125
5.3.1 基于用戶的協(xié)同過(guò)濾 126
5.3.2 基于物品的協(xié)同過(guò)濾 128
5.3.3 算法實(shí)現(xiàn)與案例演練 129
5.4 LR模型在推薦場(chǎng)景下的應(yīng)用 131
5.5 多模型融合推薦模型:Wide&Deep模型 135
5.5.1 探索-利用困境的問(wèn)題 135
5.5.2 Wide&Deep模型 137
5.5.3 交叉特征 137
5.6 本章小結(jié) 145
5.7 本章參考文獻(xiàn) 145
第6章 項(xiàng)目實(shí)戰(zhàn):聊天機(jī)器人 146
6.1 聊天機(jī)器人的發(fā)展歷史 146
6.2 循環(huán)神經(jīng)網(wǎng)絡(luò) 148
6.2.1 Slot Filling 148
6.2.2 NLP中的單詞處理 150
6.2.3 循環(huán)神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介 153
6.2.4 LSTM網(wǎng)絡(luò)簡(jiǎn)介 154
6.3 Seq2Seq原理介紹及實(shí)現(xiàn) 157
6.3.1 Seq2Seq原理介紹 157
6.3.2 用Keras實(shí)現(xiàn)Seq2Seq算法 158
6.4 Attention 173
6.4.1 Seq2Seq的問(wèn)題 174
6.4.2 Attention的工作原理 175
6.4.3 Attention在Keras中的實(shí)現(xiàn) 178
6.4.4 Attention示例 180
6.5 本章小結(jié) 185
6.6 本章參考文獻(xiàn) 185
第7章 圖像分類實(shí)戰(zhàn) 187
7.1 圖像分類與卷積神經(jīng)網(wǎng)絡(luò) 187
7.1.1 卷積神經(jīng)網(wǎng)絡(luò)的歷史 187
7.1.2 圖像分類的3個(gè)問(wèn)題 188
7.2 卷積神經(jīng)網(wǎng)絡(luò)的工作原理 190
7.2.1 卷積運(yùn)算 191
7.2.2 傳統(tǒng)圖像處理中的卷積運(yùn)算 193
7.2.3 Pooling 195
7.2.4 為什么卷積神經(jīng)網(wǎng)絡(luò)能達(dá)到較好的效果 197
7.3 案例實(shí)戰(zhàn):交通圖標(biāo)分類 200
7.3.1 交通圖標(biāo)數(shù)據(jù)集 200
7.3.2 卷積神經(jīng)網(wǎng)絡(luò)的Keras實(shí)現(xiàn) 202
7.4 優(yōu)化策略 209
7.4.1 數(shù)據(jù)增強(qiáng) 210
7.4.2 ResNet 214
7.5 本章小結(jié) 216
7.6 本章參考文獻(xiàn) 217
第8章 目標(biāo)識(shí)別 218
8.1 CNN的演化 218
8.1.1 CNN和滑動(dòng)窗口 218
8.1.2 RCNN 220
8.1.3 從Fast RCNN到Faster RCNN 223
8.1.4 Faster RCNN核心代碼解析 228
8.2 YOLO 242
8.2.1 YOLO v1 242
8.2.2 YOLO v2 248
8.2.3 YOLO v3 251
8.3 YOLO v3的具體實(shí)現(xiàn) 253
8.3.1 數(shù)據(jù)預(yù)處理 253
8.3.2 模型訓(xùn)練 260
8.4 本章小結(jié) 293
8.5 本章參考文獻(xiàn) 294
第9章 模型部署與服務(wù) 296
9.1 生產(chǎn)環(huán)境中的模型服務(wù) 296
9.2 TensorFlow Serving的應(yīng)用 299
9.2.1 轉(zhuǎn)換Keras模型 299
9.2.2 TensorFlow Serving部署 302
9.2.3 接口驗(yàn)證 303
9.3 本章小結(jié) 307
9.4 本章參考文獻(xiàn) 308