深度學習:一起玩轉TensorLayer

圖書信息

叢書名 :博文視點AI系列

作 譯 者:董豪等

出版時間:2018-01

版 次:01-01

開 本:16開

印 次:01-01

I S B N :9787121326226

內容簡介

本書由TensorLayer作者領銜寫作,TensorLayer社區眾包完成,作者全部來自一線人工智慧研究員和工程師,內容不僅覆蓋了傳統書籍都有的多層網路、卷積網路、遞歸網路及增強學習等,還著重講解了生成對抗網路、學習方法和實踐經驗,配有若干產品級別的實例。者將會從零學會目前最新深度學習,以及使用TL實現各種套用。

圖書目錄

1 深度學習簡介1

1.1 人工智慧、機器學習和深度學習. . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.2 人工智慧、機器學習和深度學習三者的關係. . . . . . . . . . . . 2

1.2 神經網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.2 激活函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2.3 損失函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.2.4 梯度下降和隨機梯度下降. . . . . . . . . . . . . . . . . . . . . . 8

1.2.5 反向傳播算法簡述. . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2.6 其他神經網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3 學習方法建議. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.1 網路資源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.2 TensorFlow 官方深度學習教程. . . . . . . . . . . . . . . . . . . . 14

1.3.3 開源社區. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.4 TensorLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.4.1 深度學習框架概況. . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.4.2 TensorLayer 概括. . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.4.3 實驗環境配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 多層感知器19

2.1 McCulloch-Pitts 神經元模型. . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1.1 人工神經網路到底能幹什麼?到底在乾什麼. . . . . . . . . . . . 21

2.1.2 什麼是激活函式?什麼是偏值. . . . . . . . . . . . . . . . . . . . 22

2.2 感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.1 什麼是線性分類器. . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.2 線性分類器有什麼優缺點. . . . . . . . . . . . . . . . . . . . . . 26

2.2.3 感知器實例和異或問題(XOR 問題) . . . . . . . . . . . . . . . 26

2.3 多層感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.4 實現手寫數字分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.5 過擬合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.5.1 什麼是過擬合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.5.2 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

2.5.3 批規範化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

2.5.4 L1、L2 和其他正則化方法. . . . . . . . . . . . . . . . . . . . . . 42

2.5.5 Lp 正則化的圖形化解釋. . . . . . . . . . . . . . . . . . . . . . . 44

2.6 再實現手寫數字分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.6.1 數據疊代器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.6.2 通過all_drop 啟動與關閉Dropout . . . . . . . . . . . . . . . . 47

2.6.3 通過參數共享實現訓練測試切換. . . . . . . . . . . . . . . . . . 50

3 自編碼器54

3.1 稀疏性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.2 稀疏自編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.3 實現手寫數字特徵提取. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.4 降噪自編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.5 再實現手寫數字特徵提取. . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.6 堆疊式自編碼器及其實現. . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4 卷積神經網路80

4.1 卷積原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.1.1 卷積操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.1.2 張量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

4.1.3 卷積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

4.1.4 池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

4.1.5 全連線層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

4.2 經典任務. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4.2.1 圖像分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4.2.2 目標檢測. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

4.2.3 語義分割. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

4.2.4 實例分割. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

4.3 經典卷積網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

4.3.1 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

4.3.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

4.3.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

4.3.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

4.3.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.4 實現手寫數字分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

4.5 數據增強與規範化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

4.5.1 數據增強. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

4.5.2 批規範化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.5.3 局部回響歸一化. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

4.6 實現CIFAR10 分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

4.6.1 方法1:tl.prepro 做數據增強. . . . . . . . . . . . . . . . . . . . . 108

4.6.2 方法2:TFRecord 做數據增強. . . . . . . . . . . . . . . . . . . . 114

4.7 反卷積神經網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

5 詞的向量表達121

5.1 目的與原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

5.2 Word2Vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5.2.1 簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5.2.2 Continuous Bag-Of-Words(CBOW)模型. . . . . . . . . . . . . 124

5.2.3 Skip Gram(SG)模型. . . . . . . . . . . . . . . . . . . . . . . . 129

5.2.4 Hierarchical Softmax . . . . . . . . . . . . . . . . . . . . . . . . . . 132

5.2.5 Negative Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

5.3 實現Word2Vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

5.3.1 簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

5.3.2 實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

5.4 重載預訓練矩陣. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

6 遞歸神經網路148

6.1 為什麼需要它. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

6.2 不同的RNNs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

6.2.1 簡單遞歸網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

6.2.2 回音網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

6.3 長短期記憶. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

6.3.1 LSTM 概括. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

6.3.2 LSTM 詳解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

6.3.3 LSTM 變種. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

6.4 實現生成句子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

6.4.1 模型簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

6.4.2 數據疊代. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

6.4.3 損失函式和更新公式. . . . . . . . . . . . . . . . . . . . . . . . . 164

6.4.4 生成句子及Top K 採樣. . . . . . . . . . . . . . . . . . . . . . . . 167

6.4.5 接下來還可以做什麼. . . . . . . . . . . . . . . . . . . . . . . . . 169

7 深度增強學習171

7.1 增強學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

7.1.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

7.1.2 基於價值的增強學習. . . . . . . . . . . . . . . . . . . . . . . . . 173

7.1.3 基於策略的增強學習. . . . . . . . . . . . . . . . . . . . . . . . . 176

7.1.4 基於模型的增強學習. . . . . . . . . . . . . . . . . . . . . . . . . 177

7.2 深度增強學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

7.2.1 深度Q 學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

7.2.2 深度策略網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

7.3 更多參考資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

7.3.1 書籍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

7.3.2 線上課程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

8 生成對抗網路188

8.1 何為生成對抗網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

8.2 深度卷積對抗生成網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

8.3 實現人臉生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

8.4 還能做什麼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

9 高級實現技巧202

9.1 與其他框架對接. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

9.1.1 無參數層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

9.1.2 有參數層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

9.2 自定義層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

9.2.1 無參數層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

9.2.2 有參數層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

9.3 建立辭彙表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

9.4 補零與序列長度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

9.5 動態遞歸神經網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

9.6 實用小技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

9.6.1 禁止顯示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

9.6.2 參數名字前綴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

9.6.3 獲取特定參數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

9.6.4 獲取特定層輸出. . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

10 實例一:使用預訓練卷積網路214

10.1 高維特徵表達. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

10.2 VGG 網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

10.3 連線TF-Slim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

11 實例二:圖像語義分割及其醫學圖像套用225

11.1 圖像語義分割概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

11.1.1 傳統圖像分割算法簡介. . . . . . . . . . . . . . . . . . . . . . . . 227

11.1.2 損失函式與評估指標. . . . . . . . . . . . . . . . . . . . . . . . . 229

11.2 醫學圖像分割概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

11.3 全卷積神經網路和U-Net 網路結構. . . . . . . . . . . . . . . . . . . . . 232

11.4 醫學圖像套用:實現腦部腫瘤分割. . . . . . . . . . . . . . . . . . . . . 234

11.4.1 數據與數據增強. . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

11.4.2 U-Net 網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

11.4.3 損失函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

11.4.4 開始訓練. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

12 實例三:由文本生成圖像244

12.1 條件生成對抗網路之GAN-CLS . . . . . . . . . . . . . . . . . . . . . . . 245

12.2 實現句子生成花朵圖片. . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

13 實例四:超高解析度復原260

13.1 什麼是超高解析度復原. . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

13.2 網路結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

13.3 聯合損失函式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

13.4 訓練網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

13.5 使用測試. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

14 實例五:文本反垃圾280

14.1 任務場景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

14.2 網路結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

14.3 詞的向量表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

14.4 Dynamic RNN 分類器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

14.5 訓練網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

14.5.1 訓練詞向量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

14.5.2 文本的表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

14.5.3 訓練分類器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

14.5.4 模型導出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

14.6 TensorFlow Serving 部署. . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

14.7 客戶端調用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

14.8 其他常用方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

中英對照表及其縮寫309

參考文獻316

相關詞條

熱門詞條

聯絡我們