Python深度學(xué)習(xí):基于TensorFlow
定 價(jià):79 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:吳茂貴,王冬,李濤,楊本法 著
- 出版時間:2018/10/1
- ISBN:9787111609728
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:329
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書共22章,分為三個部分。部分(第1~5章)為Python及應(yīng)用數(shù)學(xué)基礎(chǔ)部分,介紹Python和TensorFlow的基石Numpy,深度學(xué)習(xí)框架的鼻祖Theano,以及機(jī)器學(xué)習(xí)、深度學(xué)習(xí)算法應(yīng)用數(shù)學(xué)基礎(chǔ)等內(nèi)容。第二部分(第6~20章)為深度學(xué)習(xí)理論與應(yīng)用部分,介紹機(jī)器學(xué)習(xí)的經(jīng)典理論和算法,深度學(xué)習(xí)理論及方法,TensorFlow基于CPU、GPU版本的安裝及使用、TensorFlow基礎(chǔ)、TensorFlow的一些新API,深度學(xué)習(xí)中神經(jīng)網(wǎng)絡(luò)方面的模型及TensorFlow實(shí)戰(zhàn)案例,TensorFlow的高級封裝,TensorFlow綜合實(shí)戰(zhàn)案例等內(nèi)容。第三部分(第21~22章)為擴(kuò)展部分,介紹強(qiáng)化學(xué)習(xí)、生成式對抗網(wǎng)絡(luò)等內(nèi)容。
適讀人群 :?對深度學(xué)習(xí)感興趣的大學(xué)生、研究生、在職人員等?科研院所的研究人員?其他深度學(xué)習(xí)愛好者,如產(chǎn)品經(jīng)理、投資人等
(1)4位作者在大數(shù)據(jù)和人工智能領(lǐng)域有多年積累,經(jīng)驗(yàn)豐富;
(2)從Python和數(shù)學(xué)基礎(chǔ),到機(jī)器學(xué)習(xí)和TensorFlow理論,再到深度學(xué)習(xí)的應(yīng)用和擴(kuò)展,為深度學(xué)習(xí)提供全棧式內(nèi)容解決方案;
(3)包含大量實(shí)戰(zhàn)案例和綜合性項(xiàng)目案例;
(4)圖形化的表達(dá)方式,降低讀者學(xué)習(xí)門檻。
為什么寫這本書
人工智能新時代學(xué)什么?我們知道,Python是人工智能的首選語言,深度學(xué)習(xí)是人工智能的核心,而TensorFlow是深度學(xué)習(xí)框架中的No.1。所以我們在本書中將這三者有機(jī)結(jié)合,希望借此把這些目前應(yīng)用最廣、最有前景的工具和算法分享給大家。
人工智能新時代如何學(xué)?市面上介紹這些工具和深度學(xué)習(xí)理論的書籍已有很多,而且不乏經(jīng)典大作,如講機(jī)器學(xué)習(xí)理論和算法的有周志華老師的《機(jī)器學(xué)習(xí)》;介紹深度學(xué)習(xí)理論和算法的有伊恩·古德費(fèi)洛等編著的《深度學(xué)習(xí)》;介紹TensorFlow實(shí)戰(zhàn)的有黃文堅(jiān)、唐源編著的《TensorFlow實(shí)戰(zhàn)》、山姆·亞伯拉罕等編著的《面向機(jī)器智能的TensorFlow實(shí)踐》等。這些都是非常經(jīng)典的大作,如果你對機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、人工智能感興趣的話,這些書均值得一讀。
本書在某些方面或許無法和它們相比,但我覺得也會有不少讓你感到滿意,甚至驚喜的地方。本書的特點(diǎn)具體包括以下幾個方面。
1.內(nèi)容選擇:提供全棧式的解決方案
深度學(xué)習(xí)涉及范圍比較廣,既有對基礎(chǔ)、原理的一些要求,也有對代碼實(shí)現(xiàn)的要求。如何在較短時間內(nèi)快速提高深度學(xué)習(xí)的水平?如何盡快把所學(xué)運(yùn)用到實(shí)踐中?這方面雖然沒有捷徑可言,但卻有方法可循。本書基于這些考量,希望能給你提供一站式解決方案。具體內(nèi)容包括:機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的三大基石(線性代數(shù)、概率與信息論及數(shù)值分析);機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的基本理論和原理;機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的常用開發(fā)工具(Python、TensorFlow、Keras等),此外還有TensorFlow的高級封裝及多個綜合性實(shí)戰(zhàn)項(xiàng)目等。
2.層次安排:找準(zhǔn)易撕口、快速實(shí)現(xiàn)由點(diǎn)到面的突破
我們打開塑料袋時,一般從易撕口開始,這樣即使再牢固的袋子也很容易打開。面對深度學(xué)習(xí)這個“牢固袋子”,我們也可采用類似方法,找準(zhǔn)易撕口。如果沒有,就創(chuàng)造一個易撕口,通過這個易撕口,實(shí)現(xiàn)點(diǎn)到面的快速擴(kuò)展。本書在介紹很多抽象、深奧的算法時采用了這種方法。我們知道BP算法、循環(huán)神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)中的兩塊硬骨頭,所以在介紹BP算法時,先介紹單個神經(jīng)如何實(shí)現(xiàn)BP算法這個易撕口,再延伸到一般情況;在介紹循環(huán)神經(jīng)網(wǎng)絡(luò)時,我們也以一個簡單實(shí)例為易撕口,再延伸到一般情況。希望通過這種方式,能幫助你把難題化易、把大事化小、把不可能轉(zhuǎn)換為可能。
3.表達(dá)形式:讓圖說話,一張好圖勝過千言萬語
在機(jī)器學(xué)習(xí)、深度學(xué)習(xí)中有很多抽象的概念、復(fù)雜的算法、深奧的理論,如Numpy的廣播機(jī)制、神經(jīng)網(wǎng)絡(luò)中的共享參數(shù)、動量優(yōu)化法、梯度消失或爆炸等,這些內(nèi)容如果只用文字來描述,可能很難達(dá)到茅塞頓開的效果,但如果用一些圖形來展現(xiàn),再加上適當(dāng)?shù)奈淖终f明,往往能取得非常好的效果,正所謂一張好圖勝過千言萬語。
除了以上談到的三個方面,為了幫助大家更好理解、更快掌握機(jī)器學(xué)習(xí)、深度學(xué)習(xí)這些人工智能的核心內(nèi)容,本書還包含了其他方法。我們希望通過這些方法或方式帶給你不一樣的理解和體驗(yàn),使抽象數(shù)學(xué)不抽象、深度學(xué)習(xí)不深奧、復(fù)雜算法不復(fù)雜,這或許就是我們寫這本書的主要目的。
至于人工智能(AI)的重要性,想必不用多說了。如果說2016年前屬于擺事實(shí)論證的階段,那么2016年后已進(jìn)入事實(shí)勝于雄辯的階段了,而2018年后應(yīng)該屬于擼起袖子加油干的階段。目前各行各業(yè)都忙于AI+,給人“忽如一夜春風(fēng)來,千樹萬樹梨花開”的感覺!
本書特色
要說特色的話,就是上面談到的幾點(diǎn),概括來說就是:把理論原理與代碼實(shí)現(xiàn)相結(jié)合;找準(zhǔn)切入點(diǎn),從簡單到一般,把復(fù)雜問題簡單化;圖文并茂使抽象問題直觀化;實(shí)例說明使抽象問題具體化。希望通過閱讀本書,能給你帶來新的視角、新的理解。
讀者對象
對機(jī)器學(xué)習(xí)、深度學(xué)習(xí)感興趣的廣大在校學(xué)生、在職人員。
對Python、TensorFlow感興趣,并希望進(jìn)一步提升的在校學(xué)生、在職人員。
如何閱讀本書
本書共22章,按照“基礎(chǔ)→應(yīng)用→擴(kuò)展”的順序展開,分為三個部分。
第一部分(第1~5章)為Python和應(yīng)用數(shù)學(xué)基礎(chǔ)部分:第1章介紹Python和TensorFlow的基石Numpy;第2章介紹深度學(xué)習(xí)框架的鼻祖Theano;第3~5章介紹機(jī)器學(xué)習(xí)、深度學(xué)習(xí)算法應(yīng)用數(shù)學(xué)基礎(chǔ),包括線性代數(shù)、概率與信息論、概率圖等內(nèi)容。
第二部分(第6~20章)為深度學(xué)習(xí)理論與應(yīng)用部分:第6章為機(jī)器學(xué)習(xí)基礎(chǔ),也是深度學(xué)習(xí)基礎(chǔ),其中包含很多機(jī)器學(xué)習(xí)的經(jīng)典理論和算法;第7章為深度學(xué)習(xí)理論及方法;第8~10章介紹TensorFlow基于CPU、GPU版本的安裝及使用,TensorFlow基礎(chǔ),TensorFlow的一些新API,如Dataset API、Estimator API等(基于TensorFlow1.6版本);第11~15章為深度學(xué)習(xí)中神經(jīng)網(wǎng)絡(luò)方面的模型及TensorFlow實(shí)戰(zhàn)案例;第16章介紹TensorFlow的高級封裝,如Keras、Estimator、TFLearn等內(nèi)容;第17~20章為TensorFlow綜合實(shí)戰(zhàn)案例,包括圖像識別、自然語言處理等內(nèi)容。
第三部分(第21~22章)為擴(kuò)展部分:介紹強(qiáng)化學(xué)習(xí)、生成式對抗網(wǎng)絡(luò)等內(nèi)容。
勘誤和支持
書中代碼和數(shù)據(jù)的下載地址為http://www.feiguyunai.com。由于筆者水平有限,加之編寫時間倉促,書中難免出現(xiàn)錯誤或不準(zhǔn)確的地方,懇請讀者批評指正。
吳茂貴,
BI和大數(shù)據(jù)專家,就職于中國外匯交易中心,在BI、數(shù)據(jù)挖掘與分析、數(shù)據(jù)倉庫、機(jī)器學(xué)習(xí)等領(lǐng)域有超過20年的工作經(jīng)驗(yàn),在Spark機(jī)器學(xué)習(xí)、TensorFlow深度學(xué)習(xí)領(lǐng)域大量的實(shí)踐經(jīng)驗(yàn)。
王冬,
任職于博世(中國)投資有限公司,負(fù)責(zé)Bosch企業(yè)BI及工業(yè)4.0相關(guān)大數(shù)據(jù)和數(shù)據(jù)挖掘項(xiàng)目。對機(jī)器學(xué)習(xí)、人工智能有多年實(shí)踐經(jīng)驗(yàn)。
李濤,
參與過多個人工智能項(xiàng)目,如研究開發(fā)服務(wù)機(jī)器人、無人售后店等項(xiàng)目。熟悉python、caffe、TensorFlow等,對深度學(xué)習(xí)、尤其對計(jì)算機(jī)視覺方面有較深理解。
楊本法,
高級算法工程師,在機(jī)器學(xué)習(xí)、文本挖掘、可視化等領(lǐng)域有多年實(shí)踐經(jīng)驗(yàn)。熟悉Hadoop、Spark生態(tài)圈的相關(guān)技術(shù),對Python有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。
前言
第一部分 Python及應(yīng)用數(shù)學(xué)基礎(chǔ)
第1章 NumPy常用操作 2
1.1 生成ndarray的幾種方式 3
1.2 存取元素 5
1.3 矩陣操作 6
1.4 數(shù)據(jù)合并與展平 7
1.5 通用函數(shù) 9
1.6 廣播機(jī)制 11
1.7 小結(jié) 12
第2章 Theano基礎(chǔ) 13
2.1 安裝 14
2.2 符號變量 15
2.3 符號計(jì)算圖模型 17
2.4 函數(shù) 18
2.5 條件與循環(huán) 21
2.6 共享變量 23
2.7 小結(jié) 24
第3章 線性代數(shù) 25
3.1 標(biāo)量、向量、矩陣和張量 25
3.2 矩陣和向量運(yùn)算 28
3.3 特殊矩陣與向量 29
3.4 線性相關(guān)性及向量空間 31
3.5 范數(shù) 32
3.6 特征值分解 33
3.7 奇異值分解 34
3.8 跡運(yùn)算 35
3.9 實(shí)例:用Python實(shí)現(xiàn)主成分分析 36
3.10 小結(jié) 39
第4章 概率與信息論 40
4.1 為何要學(xué)概率、信息論 40
4.2 樣本空間與隨機(jī)變量 41
4.3 概率分布 42
4.3.1 離散型隨機(jī)變量 42
4.3.2 連續(xù)型隨機(jī)變量 45
4.4 邊緣概率 47
4.5 條件概率 47
4.6 條件概率的鏈?zhǔn)椒▌t 48
4.7 獨(dú)立性及條件獨(dú)立性 48
4.8 期望、方差及協(xié)方差 49
4.9 貝葉斯定理 52
4.10 信息論 53
4.11 小結(jié) 56
第5章 概率圖模型 57
5.1 為何要引入概率圖 57
5.2 使用圖描述模型結(jié)構(gòu) 58
5.3 貝葉斯網(wǎng)絡(luò) 59
5.3.1 隱馬爾可夫模型簡介 60
5.3.2 隱馬爾可夫模型三要素 60
5.3.3 隱馬爾可夫模型三個基本問題 61
5.3.4 隱馬爾可夫模型簡單實(shí)例 62
5.4 馬爾可夫網(wǎng)絡(luò) 64
5.4.1 馬爾可夫隨機(jī)場 64
5.4.2 條件隨機(jī)場 65
5.4.3 實(shí)例:用Tensorflow實(shí)現(xiàn)條件隨機(jī)場 66
5.5 小結(jié) 70
第二部分 深度學(xué)習(xí)理論與應(yīng)用
第6章 機(jī)器學(xué)習(xí)基礎(chǔ) 72
6.1 監(jiān)督學(xué)習(xí) 72
6.1.1 線性模型 73
6.1.2 SVM 77
6.1.3 貝葉斯分類器 79
6.1.4 集成學(xué)習(xí) 81
6.2 無監(jiān)督學(xué)習(xí) 84
6.2.1 主成分分析 84
6.2.2 k-means聚類 84
6.3 梯度下降與優(yōu)化 85
6.3.1 梯度下降簡介 86
6.3.2 梯度下降與數(shù)據(jù)集大小 87
6.3.3 傳統(tǒng)梯度優(yōu)化的不足 89
6.3.4 動量算法 90
6.3.5 自適應(yīng)算法 92
6.3.6 有約束最優(yōu)化 95
6.4 前饋神經(jīng)網(wǎng)絡(luò) 96
6.4.1 神經(jīng)元結(jié)構(gòu) 97
6.4.2 感知機(jī)的局限 98
6.4.3 多層神經(jīng)網(wǎng)絡(luò) 99
6.4.4 實(shí)例:用TensorFlow實(shí)現(xiàn)XOR 101
6.4.5 反向傳播算法 103
6.5 實(shí)例:用Keras構(gòu)建深度學(xué)習(xí)架構(gòu) 109
6.6 小結(jié) 109
第7章 深度學(xué)習(xí)挑戰(zhàn)與策略 110
7.1 正則化 110
7.1.1 正則化參數(shù) 111
7.1.2 增加數(shù)據(jù)量 115
7.1.3 梯度裁剪 116
7.1.4 提前終止 116
7.1.5 共享參數(shù) 117
7.1.6 Dropout 117
7.2 預(yù)處理 119
7.2.1 初始化 120
7.2.2 歸一化 120
7.3 批量化 121
7.3.1 隨機(jī)梯度下降法 121
7.3.2 批標(biāo)準(zhǔn)化 122
7.4 并行化 124
7.4.1 TensorFlow利用GPU加速 124
7.4.2 深度學(xué)習(xí)并行模式 125
7.5 選擇合適的激活函數(shù) 127
7.6 選擇合適代價(jià)函數(shù) 128
7.7 選擇合適的優(yōu)化算法 129
7.8 小結(jié) 130
第8章 安裝TensorFlow 131
8.1 TensorFlow CPU版的安裝 131
8.2 TensorFlow GPU版的安裝 132
8.3 配置Jupyter Notebook 136
8.4 實(shí)例:CPU與GPU性能比較 137
8.5 實(shí)例:單GPU與多GPU性能比較 138
8.6 小結(jié) 140
第9章 TensorFlow基礎(chǔ) 141
9.1 TensorFlow系統(tǒng)架構(gòu) 141
9.2 數(shù)據(jù)流圖 143
9.3 TensorFlow基本概念 144
9.3.1 張量 144
9.3.2 算子 145
9.3.3 計(jì)算圖 146
9.3.4 會話 146
9.3.5 常量 148
9.3.6 變量 149
9.3.7 占位符 153
9.3.8 實(shí)例:比較constant、variable和placeholder 154
9.4 TensorFlow實(shí)現(xiàn)數(shù)據(jù)流圖 156
9.5 可視化數(shù)據(jù)流圖 156
9.6 TensorFlow分布式 158
9.7 小結(jié) 160
第10章 TensorFlow圖像處理 162
10.1 加載圖像 162
10.2 圖像格式 163
10.3 把圖像轉(zhuǎn)換為TFRecord文件 164
10.4 讀取TFRecord文件 165
10.5 圖像處理實(shí)例 166
10.6 全新的數(shù)據(jù)讀取方式—Dataset API 170
10.6.1 Dataset API 架構(gòu) 170
10.6.2 構(gòu)建Dataset 171
10.6.3 創(chuàng)建迭代器 174
10.6.4 從迭代器中獲取數(shù)據(jù) 174
10.6.5 讀入輸入數(shù)據(jù) 175
10.6.6 預(yù)處理數(shù)據(jù) 175
10.6.7 批處理數(shù)據(jù)集元素 176
10.6.8 使用高級API 176
10.7 小結(jié) 177
第11章 TensorFlow神經(jīng)元函數(shù) 178
11.1 激活函數(shù) 178
11.1.1 sigmoid函數(shù) 179
11.1.2 tanh函數(shù) 179
11.1.3 relu函數(shù) 180
11.1.4 softplus函數(shù) 181
11.1.5 dropout函數(shù) 181
11.2 代價(jià)函數(shù) 181
11.2.1 sigmoid_cross_entropy_with_logits函數(shù) 182
11.2.2 softmax_cross_entropy_with_logits函數(shù) 183
11.2.3 sparse_softmax_cross_entropy_with_logits函數(shù) 184
11.2.4 weighted_cross_entropy_with_logits函數(shù) 184
11.3 小結(jié) 185
第12章 TensorFlow自編碼器 186
12.1 自編碼簡介 186
12.2 降噪自編碼 188
12.3 實(shí)例:TensorFlow實(shí)現(xiàn)自編碼 188
12.4 實(shí)例:用自編碼預(yù)測信用卡欺詐 191
12.5 小結(jié) 197
第13章 TensorFlow實(shí)現(xiàn)Word2Vec 198
13.1 詞向量及其表達(dá) 198
13.2 Word2Vec原理 199
13.2.1 CBOW模型 200
13.2.2 Skim-gram模型 200
13.3 實(shí)例:TensorFlow實(shí)現(xiàn)Word2Vec 201
13.4 小結(jié) 206
第14章 TensorFlow卷積神經(jīng)網(wǎng)絡(luò) 207
14.1 卷積神經(jīng)網(wǎng)絡(luò)簡介 207
14.2 卷積層 208
14.2.1 卷積核 209
14.2.2 步幅 211
14.2.3 填充 212
14.2.4 多通道上的卷積 213
14.2.5 激活函數(shù) 214
14.2.6 卷積函數(shù) 215
14.3 池化層 216
14.4 歸一化層 217
14.5 TensorFlow實(shí)現(xiàn)簡單卷積神經(jīng)網(wǎng)絡(luò) 218
14.6 TensorFlow實(shí)現(xiàn)進(jìn)階卷積神經(jīng)網(wǎng)絡(luò) 219
14.7 幾種經(jīng)典卷積神經(jīng)網(wǎng)絡(luò) 223
14.8 小結(jié) 224
第15章 TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò) 226
15.1 循環(huán)神經(jīng)網(wǎng)絡(luò)簡介 226
15.2 前向傳播與隨時間反向傳播 228
15.3 梯度消失或爆炸 231
15.4 LSTM算法 232
15.5 RNN其他變種 235
15.6 RNN應(yīng)用場景 236
15.7 實(shí)例:用LSTM實(shí)現(xiàn)分類 237
15.8 小結(jié) 241
第16章 TensorFlow高層封裝 242
16.1 TensorFlow高層封裝簡介 242
16.2 Estimator簡介 243
16.3 實(shí)例:使用Estimator預(yù)定義模型 245
16.4 實(shí)例:使用Estimator自定義模型 247
16.5 Keras簡介 252
16.6 實(shí)例:Keras實(shí)現(xiàn)序列式模型 253
16.7 TFLearn簡介 255
16.7.1 利用TFLearn解決線性回歸問題 256
16.7.2 利用TFLearn進(jìn)行深度學(xué)習(xí) 256
16.8 小結(jié) 257
第17章 情感分析 258
17.1 深度學(xué)習(xí)與自然語言處理 258
17.2 詞向量簡介 259
17.3 循環(huán)神經(jīng)網(wǎng)絡(luò) 260
17.4 遷移學(xué)習(xí)簡介 261
17.5 實(shí)例:TensorFlow實(shí)現(xiàn)情感分析 262
17.5.1 導(dǎo)入數(shù)據(jù) 262
17.5.2 定義輔助函數(shù) 267
17.5.3 構(gòu)建RNN模型 267
17.5.4 調(diào)優(yōu)超參數(shù) 269
17.5.5 訓(xùn)練模型 270
17.6 小結(jié) 272
第18章 利用TensorFlow預(yù)測乳腺癌 273
18.1 數(shù)據(jù)說明 273
18.2 數(shù)據(jù)預(yù)處理 274
18.3 探索數(shù)據(jù) 276
18.4 構(gòu)建神經(jīng)網(wǎng)絡(luò) 279
18.5 訓(xùn)練并評估模型 281
18.6 小結(jié) 283
第19章 聊天機(jī)器人 284
19.1 聊天機(jī)器人原理 284
19.2 帶注意力的框架 286
19.3 用TensorFlow實(shí)現(xiàn)聊天機(jī)器人 289
19.3.1 接口參數(shù)說明 290
19.3.2 訓(xùn)練模型 293
19.4 小結(jié) 302
第20章 人臉識別 303
20.1 人臉識別簡介 303
20.2 項(xiàng)目概況 306
20.3 實(shí)施步驟 307
20.3.1 數(shù)據(jù)準(zhǔn)備 307
20.3.2 預(yù)處理數(shù)據(jù) 307
20.3.3 訓(xùn)練模型 309
20.3.4 測試模型 313
20.4 小結(jié) 316
第三部分 擴(kuò)展篇
第21章 強(qiáng)化學(xué)習(xí)基礎(chǔ) 318
21.1 強(qiáng)化學(xué)習(xí)簡介 318
21.2 強(qiáng)化學(xué)習(xí)常用算法 320
21.2.1 Q-Learning算法 320
21.2.2 Sarsa算法 322
21.2.3 DQN算法 322
21.3 小結(jié) 324
第22章 生成式對抗網(wǎng)絡(luò) 325
22.1 GAN簡介 325
22.2 GAN的改進(jìn)版本 327
22.3 小結(jié) 329