圖書信息
叢書名 :博文視點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