深度學(xué)習(xí)與TensorFlow實踐
定 價:79 元
- 作者:張玉宏
- 出版時間:2021/1/1
- ISBN:9787121401992
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP18
- 頁碼:312
- 紙張:
- 版次:01
- 開本:16K
深度學(xué)習(xí)是人工智能的前沿技術(shù)。本書深入淺出地介紹了深度學(xué)習(xí)的相關(guān)理論和TensorFlow實踐,全書共8章。第1章給出了深度學(xué)習(xí)的基本概況。第2章詳細(xì)介紹了神經(jīng)網(wǎng)絡(luò)相關(guān)知識,內(nèi)容包括M-P神經(jīng)元模型、感知機(jī)、多層神經(jīng)網(wǎng)絡(luò)。第3章介紹了被廣泛認(rèn)可的深度學(xué)習(xí)框架TensorFlow 2的安裝流程與新特性。第4章詳細(xì)介紹了TensorFlow 2的相關(guān)語法。第5章介紹了BP算法和常見的優(yōu)化方法。第6章介紹了Keras模塊的使用。第7章和第8章詳細(xì)講解了卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),并給出了相關(guān)的實戰(zhàn)項目。 本書結(jié)構(gòu)完整、行文流暢,是一本零基礎(chǔ)入門、通俗易懂、圖文并茂、理論結(jié)合實戰(zhàn)的深度學(xué)習(xí)書籍。對于計算機(jī)、人工智能及相關(guān)專業(yè)的本科生和研究生,這是一本適合入門與系統(tǒng)學(xué)習(xí)的教材;對于從事深度學(xué)習(xí)產(chǎn)品研發(fā)的工程技術(shù)人員,本書也有一定的參考價值。
張玉宏,2012年博士畢業(yè)于電子科技大學(xué),大數(shù)據(jù)分析師(高級),2009年~2011年美國西北大學(xué)訪問學(xué)者,2019年~至今,美國IUPUI高級訪問學(xué)者,現(xiàn)執(zhí)教于河南工業(yè)大學(xué),主要研究方向為大數(shù)據(jù)、機(jī)器學(xué)習(xí)等,發(fā)表學(xué)術(shù)論文30余篇,阿里云棲社區(qū)專欄科技作家,先后出版《深度學(xué)習(xí)之美》《品味大數(shù)據(jù)》等科技暢銷書6部,參編英文學(xué)術(shù)專著2部。
目 錄
第1章 深度學(xué)習(xí)導(dǎo)論 1
1.1 從人工智能到深度學(xué)習(xí) 2
1.1.1 從感知機(jī)到深度學(xué)習(xí) 2
1.1.2 深度學(xué)習(xí)的巨大影響 6
1.2 從學(xué)習(xí)到機(jī)器學(xué)習(xí) 7
1.2.1 什么是學(xué)習(xí) 7
1.2.2 什么是機(jī)器學(xué)習(xí) 8
1.2.3 機(jī)器學(xué)習(xí)的4個象限 9
1.3 深度學(xué)習(xí)的內(nèi)涵 10
1.3.1 什么是深度學(xué)習(xí) 10
1.3.2 生活中的深度學(xué)習(xí) 12
1.3.3 有沒有淺度學(xué)習(xí) 13
1.4 本章小結(jié) 14
1.5 思考與習(xí)題 14
參考資料 14
第2章 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí) 16
2.1 人工神經(jīng)網(wǎng)絡(luò)的定義 17
2.2 神經(jīng)網(wǎng)絡(luò)的原子單元——感知機(jī) 18
2.2.1 感知機(jī)的形式化描述 18
2.2.2 感知機(jī)名稱的由來 19
2.2.3 感性認(rèn)識感知機(jī) 20
2.2.4 感知機(jī)是如何學(xué)習(xí)的 22
2.2.5 感知機(jī)訓(xùn)練法則 24
2.2.6 感知機(jī)中的激活函數(shù) 26
2.2.7 感知機(jī)的幾何意義 26
2.2.8 實戰(zhàn):基于Python的感知機(jī)實現(xiàn) 27
2.2.9 感知機(jī)的表征能力 31
2.3 多層前饋網(wǎng)絡(luò) 32
2.3.1 多層網(wǎng)絡(luò)解決“異或”問題 32
2.3.2 多層前饋神經(jīng)網(wǎng)絡(luò) 34
2.3.3 機(jī)器學(xué)習(xí)本質(zhì)與通用近似定理 35
2.3.4 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計 37
2.4 神經(jīng)網(wǎng)絡(luò)中的損失函數(shù) 38
2.5 常用的激活函數(shù) 40
2.5.1 Sigmoid函數(shù) 40
2.5.2 Tanh函數(shù) 41
2.5.3 ReLU函數(shù) 42
2.6 實戰(zhàn):利用sklearn搭建多層神經(jīng)網(wǎng)絡(luò) 43
2.6.1 sklearn簡介 44
2.6.2 sklearn的安裝 44
2.6.3 sklearn搭建多層神經(jīng)網(wǎng)絡(luò)實現(xiàn)紅酒分類 45
2.7 本章小結(jié) 57
2.8 思考與習(xí)題 58
參考資料 58
第3章 初識TensorFlow 60
3.1 TensorFlow概述 61
3.2 TensorFlow特征 62
3.3 深度學(xué)習(xí)框架比較 63
3.3.1 Theano 63
3.3.2 Keras 64
3.3.3 Caffe 65
3.3.4 PyTorch 66
3.4 利用Anaconda安裝TensorFlow 67
3.4.1 Anaconda的下載與安裝 67
3.4.2 驗證Python是否安裝成功 70
3.4.3 利用conda安裝TensorFlow 71
3.5 運行“Hello World!”版的TensorFlow程序 72
3.5.1 利用TensorFlow 2 編寫的第二個程序 74
3.5.2 TensorFlow 2 的新特性 75
3.6 本章小結(jié) 79
3.7 思考與提高 79
參考資料 79
第4章 TensorFlow 基礎(chǔ)語法 80
4.1 TensorFlow的張量思維 81
4.1.1 張量的階 81
4.1.2 張量的尺寸 83
4.2 TensorFlow中的數(shù)據(jù)類型 86
4.2.1 Python基本數(shù)據(jù)類型與TensorFlow的關(guān)系 86
4.2.2 數(shù)值類型 87
4.2.3 字符串類型 89
4.2.4 布爾類型 91
4.2.5 張量類型轉(zhuǎn)換 92
4.2.6 TensorFlow中的張量與NumPy數(shù)組 93
4.3 TensorFlow中的常量與變量 97
4.3.1 constant常量 97
4.3.2 Variable變量 98
4.4 常用張量生成方法 100
4.4.1 生成全0的張量 100
4.4.2 生成全1的張量 102
4.4.3 生成全為給定值的張量 103
4.4.4 生成已知分布的隨機(jī)數(shù)張量 103
4.4.5 創(chuàng)建特定張量序列 104
4.5 張量的索引和切片 105
4.5.1 索引 105
4.5.2 通過切片訪問 107
4.6 張量的維度伸縮與交換 111
4.6.1 張量中的軸方向 111
4.6.2 張量維度的增加與刪除 111
4.7 張量的合并、分割與復(fù)制 112
4.7.1 張量合并 113
4.7.2 張量分割 115
4.8 TensorFlow中的計算 118
4.8.1 按元素計算 118
4.8.2 張量的按軸計算 119
4.9 張量的廣播機(jī)制 122
4.9.1 廣播的定義 122
4.9.2 廣播的操作與適用規(guī)則 122
4.10 張量在神經(jīng)網(wǎng)絡(luò)中的典型應(yīng)用 124
4.10.1 標(biāo)量 124
4.10.2 向量 126
4.10.3 矩陣 126
4.10.4 三維張量 129
4.10.5 四維張量 130
4.10.6 五維張量 130
4.11 本章小結(jié) 131
4.12 思考與練習(xí) 132
參考資料 132
第5章 BP算法與優(yōu)化方法 133
5.1 為何需要優(yōu)化函數(shù) 134
5.1.1 優(yōu)化的意義 134
5.1.2 優(yōu)化函數(shù)的流程 134
5.2 基于梯度的優(yōu)化算法 136
5.2.1 什么是梯度 136
5.2.2 梯度的代碼實現(xiàn) 138
5.2.3 梯度遞減 142
5.2.4 批量梯度遞減法 145
5.2.5 隨機(jī)梯度遞減法 146
5.2.6 小批量梯度遞減法 148
5.2.7 實戰(zhàn):基于梯度遞減的線性回歸算法 148
5.2.8 基于梯度遞減優(yōu)化算法的挑戰(zhàn) 151
5.3 BP算法 152
5.3.1 BP算法的發(fā)展歷程 152
5.3.2 正向傳播信息 153
5.3.3 求導(dǎo)中的鏈?zhǔn)椒▌t 156
5.3.4 誤差反向傳播 158
5.3.5 實戰(zhàn):利用BP算法解決異或問題 160
5.4 TensorFlow中的其他優(yōu)化算法 163
5.5 本章小結(jié) 166
5.6 思考與習(xí)題 166
參考資料 167
第6章 Keras模塊的使用 168
6.1 Keras與tf.keras模塊 169
6.2 數(shù)據(jù)的加載 170
6.2.1 TensorFlow的經(jīng)典數(shù)據(jù)集 170
6.2.2 Dataset對象 171
6.3 Dataset的變換 173
6.3.1 隨機(jī)打散 173
6.3.2 設(shè)置批大小 174
6.3.3 數(shù)據(jù)映射 174
6.3.4 循環(huán)訓(xùn)練 175
6.4 實戰(zhàn):基于梯度遞減的手寫數(shù)字識別MNIST 176
6.4.1 MNIST數(shù)據(jù)集簡介 176
6.4.2 MNIST數(shù)據(jù)的獲取 178
6.4.3 手寫識別任務(wù)的分類模型 180
6.4.4 Softmax回歸模型 182
6.4.5 手寫數(shù)字識別MNIST中的Softmax回歸模型 184
6.4.6 TensorFlow中搭建模型的三種方式 185
6.4.7 常用的序貫?zāi)P?186
6.4.8 利用tf.keras進(jìn)行模型搭建 188
6.4.9 利用梯度遞減算法構(gòu)建模型 191
6.4.10 損失函數(shù)的交叉熵模型 193
6.4.11 tf.keras中的模型編譯 196
6.4.12 模型的訓(xùn)練與預(yù)測 198
6.4.13 訓(xùn)練模型的保存與讀取 201
6.5 本章小結(jié) 205
6.6 思考與練習(xí) 206
參考資料 206
第7章 卷積神經(jīng)網(wǎng)絡(luò) 207
7.1 概述 208
7.1.1 前饋神經(jīng)網(wǎng)絡(luò)的問題所在 208
7.1.2 卷積神經(jīng)網(wǎng)絡(luò)的生物學(xué)啟示 209
7.1.3 卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程 210
7.1.4 深度學(xué)習(xí)的“端到端”范式 212
7.2 卷積神經(jīng)網(wǎng)絡(luò)的概念 213
7.2.1 卷積的數(shù)學(xué)定義 213
7.2.2 生活中的卷積 215
7.3 圖像處理中的卷積 215
7.3.1 計算機(jī)“視界”中的圖像 215
7.3.2 卷積運算 216
7.3.3 卷積在圖像處理中的應(yīng)用 219
7.4 卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 221
7.5 卷積層要義 222
7.5.1 卷積層的局部連接 222
7.5.2 卷積核深度 223
7.5.3 步幅 223
7.5.4 填充 224
7.5.5 權(quán)值共享 226
7.6 激活層 227
7.7 池化層 228
7.8 全連接層 230
7.9 防止過擬合的Dropout機(jī)制 231
7.10 經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 232
7.10.1 LeNet-5 233
7.10.2 AlexNet 233
7.10.3 VGGNet 235
7.11 實戰(zhàn):基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別 236
7.11.1 數(shù)據(jù)讀取 237
7.11.2 搭建模型 238
7.11.3 模型訓(xùn)練 240
7.11.4 可視化展現(xiàn)TensorBoard 242
7.11.5 模型預(yù)測 246
7.12 本章小結(jié) 248
7.13 思考與練習(xí) 248
參考資料 249
第8章 循環(huán)神經(jīng)網(wǎng)絡(luò)與LSTM 250
8.1 標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)的缺點 251
8.2 循序神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程 252
8.2.1 Hopfield網(wǎng)絡(luò) 252
8.2.2 Jordan循環(huán)神經(jīng)網(wǎng)絡(luò) 252
8.2.3 Elman循環(huán)神經(jīng)網(wǎng)絡(luò) 253
8.2.4 RNN的應(yīng)用領(lǐng)域 254
8.3 RNN的理論基礎(chǔ) 254
8.3.1 RNN的形式化定義 255
8.3.2 循環(huán)神經(jīng)網(wǎng)絡(luò)的生物學(xué)機(jī)理 256
8.4 常見的RNN拓?fù)浣Y(jié)構(gòu) 257
8.4.1 one-to-one 257
8.4.2 one-to-many 258
8.4.3 many-to-one 258
8.4.4 many-to-many 258
8.5 RNN的訓(xùn)練 259
8.5.1 單向RNN建模 259
8.5.2 雙向RNN建模 261
8.5.3 確定優(yōu)化目標(biāo)函數(shù) 262
8.5.4 參數(shù)求解與BPTT 262
8.6 LSTM的來歷 263
8.7 拆解LSTM 264
8.7.1 改造的神經(jīng)元 264
8.7.2 遺忘門 266
8.7.3 輸入門 267
8.7.4 調(diào)節(jié)門 267
8.7.5 輸出門 268
8.7.6 LSTM的部件功能 269
8.7.7 GRU優(yōu)化 270
8.8 LSTM的訓(xùn)練流程 270
8.9 自然語言處理的假說 271
8.10 詞向量表示方法 273
8.10.1 獨熱編碼表示 273
8.10.2 分布式表示 275
8.10.3 詞嵌入表示 277
8.11 基于RNN的語言模型 279
8.12 實戰(zhàn):基于RNN 的文本情感分類問題 281
8.12.1 數(shù)據(jù)讀取 281
8.12.2 感性認(rèn)知數(shù)據(jù) 282
8.12.3 數(shù)據(jù)預(yù)處理 284
8.12.4 搭建簡易RNN 286
8.12.5 基于LSTM的優(yōu)化 290
8.12.6 基于GRU的優(yōu)化 291
8.13 本章小結(jié) 293
8.14 思考與練習(xí) 294
參考資料 294