《Python深度學習:基于TensorFlow(第2版)》暢銷書升級,TensorFlow領域公認標準著作,20余年研發(fā)經驗AI專家撰寫,詳解TensorFlow深度學習全棧知識
定 價:99 元
叢書名:智能系統(tǒng)與技術叢書
- 作者:吳茂貴 王冬 李濤 楊本法 張利 著
- 出版時間:2022/10/1
- ISBN:9787111712244
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:362
- 紙張:
- 版次:
- 開本:16
1.內容選擇?:提供全棧式的解決方案
深度學習涉及范圍比較廣,既有對基礎、原理的要求,也有對代碼實現(xiàn)的要求。如何在較短時間內快速提高深度學習的水平?如何盡快把所學運用到實踐中?這方面雖然沒有捷徑可言,但卻有方法可循。本書基于這些考量,希望能給你提供一站式解決方案。具體內容包括?:機器學習與深度學習的三大基石(線性代數(shù)、概率與信息論及數(shù)值分析)?;機器學習與深度學習的基本理論和原理?;機器學習與深度學習的常用開發(fā)工具(Python、TensorFlow、Keras等)?;TensorFlow的高級封裝及多個綜合性實戰(zhàn)項目等。
2.層次安排?:找準易撕口,快速實現(xiàn)由點到面的突破
我們打開塑料袋時,一般從易撕口開始,這樣即使再牢固的袋子也很容易打開。面對深度學習這個“牢固袋子”,我們也可以采用類似方法,找準易撕口。如果沒有,就創(chuàng)造一個易撕口,并通過這個易撕口,實現(xiàn)點到面的快速擴展。本書在面對很多抽象、深奧的算法時均采用了這種方法。我們知道BP算法、循環(huán)神經網絡是深度學習中的兩塊“硬骨頭”,所以我們在介紹BP算法時,先介紹單個神經如何實現(xiàn)BP算法這個易撕口,再延伸到一般情況?;在介紹循環(huán)神經網絡時,我們也先以一個簡單實例為易撕口,再延伸到一般情況。希望這種方式能幫助你把難題化易,把大事化小,把不可能轉換為可能。
3.表達形式?:讓圖說話,一張好圖勝過千言萬語
機器學習、深度學習中有很多抽象的概念、復雜的算法、深奧的理論,如NumPy的廣播機制、梯度下降對學習率敏感、神經網絡中的共享參數(shù)、動量優(yōu)化法、梯度消失或爆炸等,這些內容如果只用文字來描述,可能很難達到讓人茅塞頓開的效果,但如果用一些圖來展現(xiàn),再加上適當?shù)奈淖终f明,往往能取得非常好的效果,正所謂一張好圖勝過千言萬語。
除了以上談到的三個方面,為了幫助大家更好地理解,更快地掌握機器學習、深度學習這些人工智能的核心內容,本書還包含了其他方法,相信閱讀本書的讀者都能體會到。我們希望通過這些方法或方式帶給你不一樣的理解和體驗,使你感到抽象數(shù)學不抽象、深度學習不深奧、復雜算法不復雜、難學的深度學習也易學,這也是我們寫這本書的主要目的。
至于人工智能(AI)的重要性,想必就不用多說了。如果說2016年前屬于擺事實論證階段,那么2016年后已進入事實勝于雄辯階段了,而2018年后應該擼起袖子加油干了。目前各行各業(yè)都忙于AI+,給人“忽如一夜春風來,千樹萬樹梨花開”的感覺!
第2版前言
第1版前言
第一部分 TensorFlow基礎
第1章 NumPy基礎 2
1.1 把圖像數(shù)字化 3
1.1.1 數(shù)組屬性 4
1.1.2 從已有數(shù)據中生成數(shù)組 4
1.1.3 利用 random 模塊生成
數(shù)組 5
1.1.4 利用 arange、linspace
函數(shù)生成數(shù)組 7
1.2 存取元素 8
1.3 NumPy的算術運算 9
1.3.1 對應元素相乘 10
1.3.2 點積運算 11
1.4 數(shù)據變形 12
1.4.1 更改數(shù)組的形狀 12
1.4.2 合并數(shù)組 15
1.5 通用函數(shù) 18
1.6 廣播機制 20
1.7 用NumPy實現(xiàn)回歸實例 21
1.8 小結 24
第2章 TensorFlow基礎知識 25
2.1 安裝配置 25
2.1.1 安裝Anaconda 26
2.1.2 安裝TensorFlow
CPU版 26
2.1.3 安裝TensorFlow
GPU版 27
2.2 層次架構 29
2.3 張量 30
2.3.1 張量的基本屬性 30
2.3.2 張量切片 31
2.3.3 操作形狀 32
2.4 變量 33
2.5 NumPy與tf.Tensor比較 35
2.6 計算圖 36
2.6.1 靜態(tài)計算圖 36
2.6.2 動態(tài)計算圖 37
2.7 自動圖 38
2.8 自動微分 39
2.9 損失函數(shù) 42
2.10 優(yōu)化器 43
2.11 使用TensorFlow 2.0實現(xiàn)回歸
實例 43
2.12 GPU加速 48
2.13 小結 50
第3章 TensorFlow構建模型的方法 51
3.1 利用低階API構建模型 51
3.1.1 項目背景 51
3.1.2 導入數(shù)據 52
3.1.3 預處理數(shù)據 53
3.1.4 構建模型 55
3.1.5 訓練模型 56
3.1.6 測試模型 57
3.1.7 保存恢復模型 57
3.2 利用中階API構建模型 58
3.2.1 構建模型 58
3.2.2 創(chuàng)建損失評估函數(shù) 59
3.2.3 訓練模型 59
3.3 利用高階API構建模型 61
3.3.1 構建模型 61
3.3.2 編譯及訓練模型 63
3.3.3 測試模型 64
3.3.4 保存恢復模型 64
3.4 小結 65
第4章 TensorFlow數(shù)據處理 66
4.1 tf.data簡介 66
4.2 構建數(shù)據集的常用方法 67
4.2.1 從內存中讀取數(shù)據 68
4.2.2 從文本中讀取數(shù)據 68
4.2.3 讀取TFRecord格式
文件 70
4.3 如何生成自己的TFRecord格式
數(shù)據 70
4.3.1 把數(shù)據轉換為TFRecord
格式的一般步驟 70
4.3.2 加載TFRecord文件
流程 72
4.3.3 代碼實現(xiàn) 72
4.4 數(shù)據增強方法 75
4.4.1 常用的數(shù)據增強方法 75
4.4.2 創(chuàng)建數(shù)據處理流水線 77
4.5 小結 78
第5章 可視化 79
5.1 matplotlib 79
5.1.1 matplotlib的基本概念 79
5.1.2 使用matplotlib繪制
圖表 81
5.1.3 使用rcParams 83
5.2 pyecharts 85
5.2.1 pyecharts的安裝 85
5.2.2 使用pyecharts繪制
圖表 86
5.3 TensorBoard 89
5.4 小結 92
第二部分 深度學習基礎
第6章 機器學習基礎 94
6.1 機器學習的一般流程 94
6.1.1 明確目標 94
6.1.2 收集數(shù)據 95
6.1.3 數(shù)據探索與預處理 95
6.1.4 模型選擇 96
6.1.5 模型評估 96
6.2 監(jiān)督學習 98
6.2.1 線性回歸 98
6.2.2 邏輯回歸 100
6.2.3 樹回歸 102
6.2.4 支持向量機 102
6.2.5 樸素貝葉斯分類器 105
6.2.6 集成學習 107
6.3 無監(jiān)督學習 110
6.3.1 主成分分析 110
6.3.2 k均值算法 110
6.4 數(shù)據預處理 111
6.4.1 處理缺失值 111
6.4.2 處理分類數(shù)據 112
6.5 機器學習實例 113
6.6 小結 119
第7章 神經網絡基礎 120
7.1 單層神經網絡 121
7.2 多層神經網絡 122
7.2.1 多層神經網絡的結構 122
7.2.2 各層之間的信息傳輸 123
7.2.3 使用多層神經網絡解決
XOR問題 123
7.2.4 使用TensorFlow解決XOR問題 125
7.3 激活函數(shù) 126
7.3.1 sigmoid函數(shù) 127
7.3.2 softmax函數(shù) 127
7.3.3 tanh函數(shù) 128
7.3.4 ReLU函數(shù) 129
7.3.5 Leaky-ReLU函數(shù) 129
7.3.6 softplus函數(shù) 130
7.3.7 Dropout函數(shù) 130
7.4 正向和反向傳播算法 130
7.4.1 單個神經元的BP算法 131
7.4.2 多層神經網絡的BP
算法 132
7.5 解決過擬合問題 135
7.5.1 權重正則化 135
7.5.2 Dropout正則化 136
7.5.3 批量正則化 138
7.5.4 權重初始化 139
7.5.5 殘差網絡 140
7.6 選擇優(yōu)化算法 141
7.6.1 傳統(tǒng)梯度更新算法 141
7.6.2 動量算法 142
7.6.3 NAG算法 144
7.6.4 AdaGrad算法 145
7.6.5 RMSProp算法 146
7.6.6 Adam算法 146
7.6.7 如何選擇優(yōu)化算法 147
7.7 使用tf.keras構建神經網絡 148
7.7.1 tf.keras概述 148
7.7.2 tf.keras的常用模塊 148
7.7.3 構建模型的幾種方法 149
7.7.4 使用Sequential API
構建神經網絡實例 150
7.7.5 使用Functional API
構建神經網絡實例 156
7.7.6 使用Subclassing API
構建神經網絡實例 157
7.8 小結 158
第8章 視覺處理基礎 159
8.1 從全連接層到卷積層 159
8.1.1 圖像的兩個特性 160
8.1.2 卷積神經網絡概述 161
8.2 卷積層 162
8.2.1 卷積核 163
8.2.2 步幅 165
8.2.3 填充 166
8.2.4 多通道上的卷積 166
8.2.5 激活函數(shù) 168
8.2.6 卷積函數(shù) 168
8.2.7 轉置卷積 169
8.2.8 特征圖與感受野 171
8.2.9 全卷積網絡 171
8.3 池化層 172
8.3.1 局部池化 173
8.3.2 全局池化 174
8.4 現(xiàn)代經典網絡 175
8.4.1 LeNet-5模型 175
8.4.2 AlexNet模型 176
8.4.3 VGG模型 177
8.4.4 GoogLeNet模型 178
8.4.5 ResNet模型 179
8.4.6 DenseNet模型 179
8.5 卷積神經網絡分類實例 181
8.5.1 使用Subclassing API
構建網絡 181
8.5.2 卷積神經網絡分類實例的
主要步驟 181
8.5.3 通過數(shù)據增強提升
性能 184
8.5.4 通過現(xiàn)代網絡架構提升
網絡性能 185
8.6 小結 187
第9章 自然語言處理基礎 188
9.1 從語言模型到循環(huán)神經網絡 188
9.1.1 鏈式法則 189
9.1.2 馬爾可夫假設與N元
語法模型 189
9.1.3 從N元語法模型到隱含
狀態(tài)表示 189
9.1.4 從神經網絡到有隱含
狀態(tài)的循環(huán)神經網絡 190
9.1.5 使用循環(huán)神經網絡構建
語言模型 192
9.1.6 多層循環(huán)神經網絡 192
9.2 正向傳播與隨時間反向傳播 193
9.3 現(xiàn)代循環(huán)神經網絡 196
9.3.1 LSTM 196
9.3.2 GRU 197
9.3.3 Bi-RNN 197
9.4 幾種特殊架構 198
9.4.1 編碼器?-?解碼器架構 198
9.4.2 Seq2Seq架構 200
9.5 循環(huán)神經網絡的應用場景 201
9.6 循環(huán)神經網絡實踐 202
9.6.1 使用LSTM實現(xiàn)文本
分類 202
9.6.2 把CNN和RNN組合
在一起 203
9.7 小結 206
第10章 注意力機制 207
10.1 注意力機制概述 207
10.1.1 兩種常見注意力
機制 208
10.1.2 來自生活的注意力 208
10.1.3 注意力機制的本質 208
10.2 帶注意力機制的編碼器?-?解碼器架構 210
10.2.1 引入注意力機制 211
10.2.2 計算注意力分配值 212
10.3 可視化Transformer架構 215
10.3.1 Transformer的頂層
設計 215
10.3.2 編碼器與解碼器的
輸入 216
10.3.3 自注意力 217
10.3.4 多頭注意力 220
10.3.5 自注意力與卷積神經
網絡、循環(huán)神經網絡的
異同 222
10.3.6 為加深Transformer
網絡層保駕護航的幾種
方法 223
10.3.7 如何進行自監(jiān)督
學習 224
10.3.8 Transformer在視覺
領域的應用 225
10.4 使用TensorFlow實現(xiàn)
Transformer 227
10.4.1 Transformer
架構圖 227
10.4.2 架構說明 227
10.4.3 構建縮放的點積注意力
模塊 228
10.4.4 構建多頭注意力
模塊 229
10.4.5 構建前饋神經網絡
模塊 230
10.4.6 構建EncoderLayer
模塊 230
10.4.7 構建Encoder模塊 231
10.4.8 構建DecoderLayer
模塊 232
10.4.9 構建Decoder模塊 233
10.4.10 構建Transformer
模型 234
10.4.11 定義掩碼函數(shù) 235
10.5 小結 238
第11章 目標檢測 239
11.1 目標檢測及主要挑戰(zhàn) 239
11.1.1 邊界框的表示 240
11.1.2 手工標注圖像的
真實值 241
11.1.3 主要挑戰(zhàn) 244
11.1.4 選擇性搜索 245
11.1.5 錨框 245
11.1.6 RPN算法 247
11.2 優(yōu)化候選框的算法 248
11.2.1 交并比 248
11.2.2 非極大值抑制 248
11.2.3 邊框回歸 249
11.2.4 使候選框輸出為固定
大小 251
11.3 典型的目標檢測算法 253
11.3.1 R-CNN 253
11.3.2 Fast R-CNN 254
11.3.3 Faster R-CNN 255
11.3.4 Mask R-CNN 256
11.3.5 YOLO 257
11.3.6 Swin Transformer 257
11.3.7 各種算法的性能
比較 258
11.4 小結 258
第12章 生成式深度學習 259
12.1 用變分自編碼器生成圖像 259
12.1.1 自編碼器 259
12.1.2 變分自編碼器 260
12.1.3 用變分自編碼器生成
圖像實例 261
12.2 GAN簡介 263
12.2.1 GAN的架構 264
12.2.2 GAN的損失函數(shù) 265
12.3 用GAN生成圖像 266
12.3.1 判別器 266
12.3.2 生成器 266
12.3.3 訓練模型 267
12.3.4 可視化結果 267
12.4 VAE與GAN的異同 267
12.5 CGAN 268
12.5.1 CGAN的架構 268
12.5.2 CGAN 判別器 269
12.5.3 CGAN生成器 269
12.5.4 訓練模型 270
12.5.5 動態(tài)查看指定標簽的
圖像 270
12.6 提升GAN訓練效果的一些
技巧 270
12.7 小結 271
第三部分 深度學習實踐
第13章 實戰(zhàn)生成式模型 274
13.1 Deep Dream模型 274
13.1.1 Deep Dream的
原理 274
13.1.2 Deep Dream算法的
流程 275
13.1.3 使用TensorFlow實現(xiàn)Deep Dream 275
13.2 風格遷移 277
13.2.1 內容損失 278
13.2.2 風格損失 279
13.2.3 訓練模型 281
13.3 小結 282
第14章 目標檢測實例 283
14.1 數(shù)據集簡介 283
14.2 準備數(shù)據 284
14.3 訓練模型 286
14.4 測試模型 292
14.5 小結 293
第15章 人臉檢測與識別實例 294
15.1 人臉識別簡介 294
15.2 項目概況 297
15.3 項目詳細實施步驟 297
15.3.1 圖像預處理 298
15.3.2 構建模型 299
15.3.3 測試模型 300
15.4 小結 302
第16章 文本檢測與識別實例 303
16.1 項目架構說明 303
16.2 項目實施步驟 304
16.2.1 手工生成訓練數(shù)據 304
16.2.2 數(shù)據預處理 306
16.2.3 構建模型 308
16.2.4 訓練模型 309
16.3 小結 311
第17章 基于Transformer的
對話實例 312
17.1 數(shù)據預處理 312
17.2 構建注意力模塊 315
17.3 構建Transformer架構 316
17.4 定義損失函數(shù) 320
17.5 初始化并編譯模型 321
17.6 測試評估模型 321
17.7 小結 322
第18章 基于Transformer的
圖像處理實例 323
18.1 導入數(shù)據 323
18.2 預處理數(shù)據 324
18.3 構建模型 326
18.4 編譯、訓練模型 329
18.5 可視化運行結果 330
18.6 小結 331
第四部分 強化學習
第19章 強化學習基礎 334
19.1 強化學習基礎概述 334
19.1.1 智能體與環(huán)境的
交互 335
19.1.2 回報 335
19.1.3 馬爾可夫決策過程 336
19.1.4 貝爾曼方程 336
19.1.5 貝爾曼優(yōu)方程 337
19.1.6 同步策略與異步
策略 337
19.1.7 有模型訓練與無模型
訓練 337
19.2 時序差分算法 338
19.3 Q-Learning算法 338
19.3.1 Q-Learning算法的
主要流程 339
19.3.2 Q函數(shù) 339
19.3.3 貪婪策略 340
19.4 SARSA 算法 340
19.5 DQN算法 340
19.5.1 Q-Learning算法的
局限性 341
19.5.2 用深度學習處理強化學習時需要解決的問題 341
19.5.3 用DQN解決問題的
方法 341
19.5.4 定義損失函數(shù) 342
19.5.5 DQN的經驗回放
機制 342
19.5.6 目標網絡 342
19.5.7 網絡模型 342
19.5.8 DQN算法的實現(xiàn) 343
19.6 小結 344
第20章 強化學習實踐 345
20.1 Q-Learning算法實例 345
20.2 SARSA算法實例 346
20.2.1 游戲場景 346
20.2.2 核心代碼說明 347
20.3 用TensorFlow實現(xiàn)DQN算法 348
20.4 小結 352
附錄A TensorFlow-GPU 2+
升級安裝配置 353
附錄B 從TensorFlow1.x升級到TensorFlow 2.x 360