深度學習與TensorFlow實踐

張玉宏

立即出貨

買這商品的人也買了...

相關主題

商品描述

深度學習是人工智能的前沿技術。
本書深入淺出地介紹了深度學習的相關理論和TensorFlow實踐,全書共8章。
第1章給出了深度學習的基本概況。
第2章詳細介紹了神經網絡相關知識,內容包括M-P神經元模型、感知機、多層神經網絡。
第3章介紹了被廣泛認可的深度學習框架TensorFlow 2的安裝流程與新特性。
第4章詳細介紹了TensorFlow 2的相關語法。
第5章介紹了BP算法和常見的優化方法。
6章介紹了Keras模塊的使用。
第7章和第8章詳細講解了捲積神經網絡和循環神經網絡,並給出了相關的實戰項目。 
本書結構完整、行文流暢,是一本零基礎入門、通俗易懂、圖文並茂、理論結合實戰的深度學習書籍。
對於電腦、人工智能及相關專業的本科生和研究生,這是一本適合入門與系統學習的教材;對於從事深度學習產品研發的工程技術人員,本書也有一定的參考價值。

作者簡介

張玉宏,2012年博士畢業於電子科技大學,大數據分析師(高級),2009年~2011年美國西北大學訪問學者,2019年~至今,美國IUPUI高級訪問學者,現執教於河南工業大學,主要研究方向為大數據、機器學習等,發表學術論文30餘篇,阿里雲棲社區專欄科技作家,先後出版《深度學習之美》《品味大數據》等科技暢銷書6部,參編英文學術專著2部。

目錄大綱

目錄

第1章深度學習導論1
1.1從人工智能到深度學習2
1.1.1從感知機到深度學習2
1.1.2深度學習的巨大影響6
1.2從學習到機器學習7
1.2.1什麼是學習7
1.2.2什麼是機器學習8
1.2.3機器學習的4個像限9
1.3深度學習的內涵10
1.3.1什麼是深度學習10
1 .3.2生活中的深度學習12
1.3.3有沒有淺度學習13
1.4本章小結14
1.5思考與習題14
參考資料14

第2章神經網絡學習16
2.1人工神經網絡的定義17
2.2神經網絡的原子單元――感知機18
2.2.1感知機的形式化描述18
2.2.2感知機名稱的由來19
2.2.3感性認識感知機20
2 .2.4感知機是如何學習的22
2.2.5感知機訓練法則24
2.2.6感知機中的激活函數26
2.2.7感知機的幾何意義26
2.2.8實戰:基於Python的感知機實現27
2.2.9感知機的表徵能力31
2.3多層前饋網絡32
2.3.1多層網絡解決“異或”問題32
2.3.2多層前饋神經網絡34
2.3.3機器學習本質與通用近似定理35
2.3.4神經網絡結構的設計37
2.4神經網絡中的損失函數38
2.5常用的激活函數40
2.5.1 Sigmoid函數40
2.5.2 Tanh函數41
2.5.3 ReLU函數42
2.6實戰:利用sklearn搭建多層神經網絡43
2.6.1 sklearn簡介44
2.6.2 sklearn的安裝44
2.6.3 sklearn搭建多層神經網絡實現紅酒分類45
2.7本章小結57
2.8思考與習題58
參考資料58

第3章初識TensorFlow 60
3.1 TensorFlow概述61
3.2 TensorFlow特徵62
3.3深度學習框架比較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本章小結79
3.7思考與提高79
參考資料79

第4章TensorFlow基礎語法80
4.1 TensorFlow的張量思維81
4.1.1張量的階81
4.1.2張量的尺寸83
4.2 TensorFlow中的數據類型86
4.2.1 Python基本數據類型與TensorFlow的關係86
4.2.2數值類型87
4.2.3字符串類型89
4.2.4布爾類型91
4.2.5張量類型轉換92
4.2.6 TensorFlow中的張量與NumPy數組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生成已知分佈的隨機數張量103
4.4.5創建特定張量序列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張量的合併、分割與復制112
4. 7.1張量合併113
4.7.2張量分割115
4.8 TensorFlow中的計算118
4.8.1按元素計算118
4.8.2張量的按軸計算119
4.9張量的廣播機制122
4.9.1廣播的定義122
4.9.2廣播的操作與適用規則122
4.10張量在神經網絡中的典型應用124
4.10.1標量124
4.10.2向量126
4.10.3矩陣126
4.10.4三維張量129
4.10.5四維張量130
4.10.6五維張量130
4.11本章小結131
4.12思考與練習132
參考資料132

第5章BP算法與優化方法133
5.1為何需要優化函數134
5.1.1優化的意義134
5.1.2優化函數的流程134
5.2基於梯度的優化算法136
5.2.1什麼是梯度136
5.2.2梯度的代碼實現138
5.2.3梯度遞減142
5.2.4批量梯度遞減法145
5.2.5隨機梯度遞減法146
5.2.6小批量梯度遞減法148
5.2.7實戰:基於梯度遞減的線性回歸算法148
5.2.8基於梯度遞減優化算法的挑戰151
5.3 BP算法152
5.3.1 BP算法的發展歷程152
5.3.2正向傳播信息153
5 .3.3求導中的鍊式法則156
5.3.4誤差反向傳播158
5.3.5實戰:利用BP算法解決異或問題160
5.4 TensorFlow中的其他優化算法163
5.5本章小結166
5.6思考與習題166
參考資料167

第6章Keras模塊的使用168
6.1 Keras與tf.keras模塊169
6.2數據的加載170
6.2.1 TensorFlow的經典數據集170
6.2.2 Dataset對象171
6.3 Dataset的變換173
6.3.1隨機打散173
6.3.2設置批大小174
6.3.3數據映射174
6.3.4循環訓練175
6.4實戰:基於梯度遞減的手寫數字識別MNIST 176
6.4.1 MNIST數據集簡介176
6.4.2 MNIST數據的獲取178
6.4.3手寫識別任務的分類模型180
6.4.4 Softmax回歸模型182
6.4. 5手寫數字識別MNIST中的Softmax回歸模型184
6.4.6 TensorFlow中搭建模型的三種方式185
6.4.7常用的序貫模型186
6.4.8利用tf.keras進行模型搭建188
6.4.9利用梯度遞減算法構建模型191
6.4.10損失函數的交叉熵模型193
6.4.11 tf.keras中的模型編譯196
6.4.12模型的訓練與預測198
6.4.13訓練模型的保存與讀取201
6.5本章小結205
6.6思考與練習206
參考資料206

第7章卷積神經網絡207
7.1概述208
7.1.1前饋神經網絡的問題所在208
7.1.2卷積神經網絡的生物學啟示209
7.1.3卷積神經網絡的發展歷程210
7.1.4深度學習的“端到端”範式212
7.2卷積神經網絡的概念213
7.2.1卷積的數學定義213
7 .2.2生活中的捲積215
7.3圖像處理中的捲積215
7.3.1計算機“視界”中的圖像215
7.3.2卷積運算216
7.3.3卷積在圖像處理中的應用219
7.4卷積神經網絡的結構221
7.5卷積層要義222
7.5.1卷積層的局部連接222
7.5.2卷積核深度223
7.5. 3步幅223
7.5.4填充224
7.5.5權值共享226
7.6激活層227
7.7池化層228
7.8全連接層230
7.9防止過擬合的Dropout機制231
7.10經典的捲積神經網絡結構232
7.10.1 LeNet-5 233
7.10.2 AlexNet 233
7.10.3 VGGNet 235
7.11實戰:基於卷積神經網絡的手寫數字識別236
7.11.1數據讀取237
7.11.2搭建模型238
7.11.3模型訓練240
7.11.4可視化展現TensorBoard 242
7.11.5模型預測246
7.12本章小結248
7.13思考與練習248
參考資料249

第8章循環神經網絡與LSTM 250
8.1標準神經網絡的缺點251
8.2循序神經網絡的發展歷程252
8.2.1 Hopfield網絡252
8.2.2 Jordan循環神經網絡252
8.2.3 Elman循環神經網絡253
8.2.4 RNN的應用領域254
8 .3 RNN的理論基礎254
8.3.1 RNN的形式化定義255
8.3.2循環神經網絡的生物學機理256
8.4常見的RNN拓撲結構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的訓練259
8.5.1單向RNN建模259
8.5.2雙向RNN建模261
8.5.3確定優化目標函數262
8.5.4參數求解與BPTT 262
8.6 LSTM的來歷263
8.7拆解LSTM 264
8.7.1改造的神經元264
8.7.2遺忘門266
8.7.3輸入門267
8.7.4調節門267
8.7.5輸出門268
8.7.6 LSTM的部件功能269
8.7.7 GRU優化270
8.8 LSTM的訓練流程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實戰:基於RNN的文本情感分類問題281
8.12.1數據讀取281
8.12.2感性認知數據282
8.12.3數據預處理284
8.12.4搭建簡易RNN 286
8.12.5基於LSTM的優化290
8.12.6基於GRU的優化291
8.13本章小結293
8. 14思考與練習294
參考資料294