動手學深度學習

動手學深度學習

《動手學深度學習》由人民郵電出版社於2019年6月出版,作者是阿斯頓·張,李沐,[美] 扎卡里·C. 立頓,[德] 亞歷山大·J. 斯莫拉。本書同時覆蓋深度學習的方法和實踐,不僅從數學的角度闡述深度學習的技術與套用,還包含可運行的代碼,為讀者展示如何在實際中解決問題。

基本介紹

  • 書名:動手學深度學習
  • 作者:阿斯頓·張,李沐,[美] 扎卡里·C. 立頓,[德] 亞歷山大·J. 斯莫拉
  • ISBN:978-7-115-49084-1
  • 頁數:440
  • 定價:85.00元
  • 出版社:人民郵電出版社
  • 出版時間:2019年6月
  • 裝幀:平裝
  • 開本:16開
主要內容,作者介紹,目錄,

主要內容

《動手學深度學習》旨在向讀者交付有關深度學習的互動式學習體驗。書中不僅闡述深度學習的算法原理,還演示它們的實現和運行。與傳統圖書不同,本書的每一節都是一個可以下載並運行的Jupyter記事本,它將文字、公式、圖像、代碼和運行結果結合在了一起。此外,讀者還可以訪問並參與書中內容的討論。
全書的內容分為3個部分:第一部分介紹深度學習的背景,提供預備知識,並包括深度學習最基礎的概念和技術;第二部分描述深度學習計算的重要組成部分,還解釋近年來令深度學習在多個領域大獲成功的卷積神經網路和循環神經網路;第三部分評價最佳化算法,檢驗影響深度學習計算性能的重要因素,並分別列舉深度學習在計算機視覺和自然語言處理中的重要套用。
本書同時覆蓋深度學習的方法和實踐,主要面向希望了解深度學習,特別是對實際使用深度學習感興趣的大學生、工程師和研究人員。閱讀本書不要求讀者有任何深度學習或者機器學習的背景知識,讀者只需具備基本的數學和編程知識,如基礎的線性代數、微分、機率及Python編程知識。附錄中提供了書中涉及的主要數學知識,供讀者參考。

作者介紹

阿斯頓·張(Aston Zhang)
亞馬遜套用科學家,美國伊利諾伊大學香檳分校計算機科學博士,統計學和計算機科學雙碩士,專注於機器學習的研究。
李沐(Mu Li)
亞馬遜首席科學家(Principal Scientist),加州大學伯克利分校客座助理教授,美國卡內基梅隆大學計算機系博士,專注於分散式系統機器學習算法的研究,是深度學習框架MXNet的作者之一。
扎卡里·C. 立頓(Zachary C. Lipton)
亞馬遜套用科學家,美國卡內基梅隆大學助理教授,美國加州大學聖迭戈分校博士,專注於機器學習算法及其社會影響的研究,特別是在時序數據與序列決策上的深度學習。
亞歷山大·J. 斯莫拉(Alexander J. Smola)
亞馬遜副總裁/ 傑出科學家,德國柏林工業大學計算機科學博士,曾在澳大利亞國立大學、美國加州大學伯克利分校和卡內基梅隆大學任教,研究興趣包括深度學習、貝葉斯非參數、核方法、統計建模和可擴展算法。

目錄

本書的讚譽
前言
如何使用本書
資源與支持
主要符號表
第1 章 深度學習簡介… ………………… 1
1.1 起源…………………………………………… 2
1.2 發展…………………………………………… 4
1.3 成功案例……………………………………… 6
1.4 特點………………………………………… 7
小結…………………………………………… 8
練習…………………………………………… 8
第2 章 預備知識… ……………………… 9
2.1 獲取和運行本書的代碼……………………… 9
2.1.1 獲取代碼並安裝運行環境 … ……… 9
2.1.2 更新代碼和運行環境 … …………… 11
2.1.3 使用GPU版的MXNet … ………… 11
小結……………………………………………12
練習……………………………………………12
2.2 數據操作… ……………………………… 12
2.2.1 創建NDArray ………………………12
2.2.2 運算 …………………………………14
2.2.3 廣播機制 ……………………………16
2.2.4 索引 …………………………………17
2.2.5 運算的記憶體開銷 ……………………17
2.2.6 NDArray和NumPy相互變換………18
小結……………………………………………19
練習……………………………………………19
2.3 自動求梯度… …………………………… 19
2.3.1 簡單例子 … …………………………19
2.3.2 訓練模式和預測模式 …………… 20
2.3.3 對Python控制流求梯度 … …… 20
小結……………………………………………21
練習……………………………………………21
2.4 查閱文檔… ……………………………… 21
2.4.1 查找模組里的所有函式和類 … ……21
2.4.2 查找特定函式和類的使用 ……… 22
2.4.3 在MXNet網站上查閱 …………… 23
小結………………………………………… 24
練習………………………………………… 24
第3 章 深度學習基礎… ……………… 25
3.1 線性回歸…………………………………… 25
3.1.1 線性回歸的基本要素 … ………… 25
3.1.2 線性回歸的表示方法 … ………… 28
小結………………………………………… 30
練習………………………………………… 30
3.2 線性回歸的從零開始實現… …………… 30
3.2.1 生成數據集 … …………………… 30
3.2.2 讀取數據集 ……………………… 32
3.2.3 初始化模型參數 ………………… 32
3.2.4 定義模型 ………………………… 33
3.2.5 定義損失函式 …………………… 33
3.2.6 定義最佳化算法 …………………… 33
3.2.7 訓練模型 ………………………… 33
小結………………………………………… 34
練習………………………………………… 34
3.3 線性回歸的簡潔實現… ………………… 35
3.3.1 生成數據集 … …………………… 35
3.3.2 讀取數據集 ……………………… 35
3.3.3 定義模型 ………………………… 36
3.3.4 初始化模型參數 ………………… 36
3.3.5 定義損失函式 …………………… 37
3.3.6 定義最佳化算法 …………………… 37
3.3.7 訓練模型 ………………………… 37
小結………………………………………… 38
練習………………………………………… 38
3.4 softmax回歸… ………………………… 38
3.4.1 分類問題 … ……………………… 38
3.4.2 softmax回歸模型… …………… 39
3.4.3 單樣本分類的矢量計算表達式…… 40
3.4.4 小批量樣本分類的矢量計算表達式 …………………………… 40
3.4.5 交叉熵損失函式 ……………………41
3.4.6 模型預測及評價 ………………… 42
小結………………………………………… 42
練習………………………………………… 42
3.5 圖像分類數據集(Fashion-MNIST)… ……………… 42
3.5.1 獲取數據集 … …………………… 42
3.5.2 讀取小批量 ……………………… 44
小結………………………………………… 45
練習………………………………………… 45
3.6 softmax回歸的從零開始實現… ……… 45
3.6.1 讀取數據集 … …………………… 45
3.6.2 初始化模型參數 ………………… 45
3.6.3 實現softmax運算 … …………… 46
3.6.4 定義模型 ………………………… 46
3.6.5 定義損失函式 …………………… 47
3.6.6 計算分類準確率 ………………… 47
3.6.7 訓練模型 ………………………… 48
3.6.8 預測… …………………………… 48
小結………………………………………… 49
練習………………………………………… 49
3.7 softmax回歸的簡潔實現… …………… 49
3.7.1 讀取數據集 … …………………… 49
3.7.2 定義和初始化模型 ……………… 50
3.7.3 softmax和交叉熵損失函式 … … 50
3.7.4 定義最佳化算法 …………………… 50
3.7.5 訓練模型 ………………………… 50
小結………………………………………… 50
練習………………………………………… 50
3.8 多層感知機… …………………………… 51
3.8.1 隱藏層 … ……………………………51
3.8.2 激活函式 ………………………… 52
3.8.3 多層感知機 ……………………… 55
小結………………………………………… 55
練習………………………………………… 55
3.9 多層感知機的從零開始實現… ………… 56
3.9.1 讀取數據集 … …………………… 56
3.9.2 定義模型參數 …………………… 56
3.9.3 定義激活函式 …………………… 56
3.9.4 定義模型 ………………………… 56
3.9.5 定義損失函式 …………………… 57
3.9.6 訓練模型 ………………………… 57
小結………………………………………… 57
練習………………………………………… 57
3.10 多層感知機的簡潔實現………………… 57
3.10.1 定義模型 ………………………… 58
3.10.2 訓練模型 … …………………… 58
小結………………………………………… 58
練習………………………………………… 58
3.11 模型選擇、欠擬合和過擬合… ………… 58
3.11.1 訓練誤差和泛化誤差 …………… 59
3.11.2 模型選擇 ………………………… 59
3.11.3 欠擬合和過擬合 ………………… 60
3.11.4 多項式函式擬合實驗 ……………61
小結………………………………………… 65
練習………………………………………… 65
3.12 權重衰減………………………………… 65
3.12.1 方法 ……………………………… 65
3.12.2 高維線性回歸實驗 … ………… 66
3.12.3 從零開始實現 … ……………… 66
3.12.4 簡潔實現 … …………………… 68
小結………………………………………… 70
練習………………………………………… 70
3.13 丟棄法…………………………………… 70
3.13.1 方法 ……………………………… 70
3.13.2 從零開始實現 … …………………71
3.13.3 簡潔實現 … …………………… 73
小結………………………………………… 74
練習………………………………………… 74
3.14 正向傳播、反向傳播和計算圖………… 74
3.14.1 正向傳播 ……………………… 74
3.14.2 正向傳播的計算圖 … ………… 75
3.14.3 反向傳播 … …………………… 75
3.14.4 訓練深度學習模型 … ………… 76
小結………………………………………… 77
練習………………………………………… 77
3.15 數值穩定性和模型初始化……………… 77
3.15.1 衰減和爆炸 ……………………… 77
3.15.2 隨機初始化模型參數 … ……… 78
小結………………………………………… 78
練習………………………………………… 79
3.16 實戰Kaggle比賽:房價預測… ……… 79
3.16.1 Kaggle比賽 … ………………… 79
3.16.2 讀取數據集 … ………………… 80
3.16.3 預處理數據集 … …………………81
3.16.4 訓練模型 … …………………… 82
3.16.5 k 折交叉驗證 …………………… 82
3.16.6 模型選擇 … …………………… 83
3.16.7 預測並在Kaggle提交結果… … 84
小結………………………………………… 85
練習………………………………………… 85
第4 章 深度學習計算… ……………… 86
4.1 模型構造………………………………… 86
4.1.1 繼承Block類來構造模型 … …… 86
4.1.2 Sequential類繼承自Block類…………………………… 87
4.1.3 構造複雜的模型… ……………… 88
小結………………………………………… 89
練習………………………………………… 90
4.2 模型參數的訪問、初始化和共享… …… 90
4.2.1 訪問模型參數 … ………………… 90
4.2.2 初始化模型參數 ………………… 92
4.2.3 自定義初始化方法 ……………… 93
4.2.4 共享模型參數 …………………… 94
小結………………………………………… 94
練習………………………………………… 94
4.3 模型參數的延後初始化… ……………… 95
4.3.1 延後初始化 … …………………… 95
4.3.2 避免延後初始化 ………………… 96
小結………………………………………… 96
練習………………………………………… 97
4.4 自定義層… ……………………………… 97
4.4.1 不含模型參數的自定義層 … …… 97
4.4.2 含模型參數的自定義層 ………… 98
小結………………………………………… 99
練習………………………………………… 99
4.5 讀取和存儲… …………………………… 99
4.5.1 讀寫NDArray… ………………… 99
4.5.2 讀寫Gluon模型的參數… ……… 100
小結………………………………………… 101
練習………………………………………… 101
4.6 GPU計算………………………………… 101
4.6.1 計算設備 … ……………………… 102
4.6.2 NDArray的GPU計算…………… 102
4.6.3 Gluon的GPU計算 ……………… 104
小結………………………………………… 105
練習………………………………………… 105
第5 章 卷積神經網路… ……………… 106
5.1 二維卷積層………………………………… 106
5.1.1 二維互相關運算 … ……………… 106
5.1.2 二維卷積層 … …………………… 107
5.1.3 圖像中物體邊緣檢測 … ………… 108
5.1.4 通過數據學習核數組 … ………… 109
5.1.5 互相關運算和卷積運算 … ……… 109
5.1.6 特徵圖和感受野… ……………… 110
小結………………………………………… 110
練習………………………………………… 110
5.2 填充和步幅… …………………………… 111
5.2.1 填充 … …………………………… 111
5.2.2 步幅 ……………………………… 112
小結………………………………………… 113
練習………………………………………… 113
5.3 多輸入通道和多輸出通道… …………… 114
5.3.1 多輸入通道 … …………………… 114
5.3.2 多輸出通道… …………………… 115
5.3.3 1×1卷積層 ……………………… 116
小結………………………………………… 117
練習………………………………………… 117
5.4 池化層… ………………………………… 117
5.4.1 二維最大池化層和平均池化層 … ………………………… 117
5.4.2 填充和步幅 ……………………… 119
5.4.3 多通道 …………………………… 120
小結………………………………………… 120
練習………………………………………… 121
5.5 卷積神經網路(LeNet)… …………… 121
5.5.1 LeNet模型 … …………………… 121
5.5.2 訓練模型… ……………………… 122
小結………………………………………… 124
練習………………………………………… 124
5.6 深度卷積神經網路(AlexNet)… …… 124
5.6.1 學習特徵表示 … ………………… 125
5.6.2 AlexNet… ……………………… 126
5.6.3 讀取數據集 ……………………… 127
5.6.4 訓練模型 ………………………… 128
小結………………………………………… 128
練習………………………………………… 129
5.7 使用重複元素的網路(VGG)………… 129
5.7.1 VGG塊 …………………………… 129
5.7.2 VGG網路 … …………………… 129
5.7.3 訓練模型… ……………………… 130
小結………………………………………… 131
練習………………………………………… 131
5.8 網路中的網路(NiN)… ……………… 131
5.8.1 NiN塊 … ………………………… 131
5.8.2 NiN模型 … ……………………… 132
5.8.3 訓練模型… ……………………… 133
小結………………………………………… 134
練習………………………………………… 134
5.9 含並行連結的網路(GoogLeNet)…… 134
5.9.1 Inception塊 ……………………… 134
5.9.2 GoogLeNet模型 … …………… 135
5.9.3 訓練模型 ………………………… 137
小結………………………………………… 137
練習………………………………………… 137
5.10 批量歸一化……………………………… 138
5.10.1 批量歸一化層 ………………… 138
5.10.2 從零開始實現 … ……………… 139
5.10.3 使用批量歸一化層的LeNet … … 140
5.10.4 簡潔實現 … …………………… 141
小結………………………………………… 142
練習………………………………………… 142
5.11 殘差網路(ResNet) ……………… 143
5.11.1 殘差塊 …………………………… 143
5.11.2 ResNet模型… ………………… 145
5.11.3 訓練模型………………………… 146
小結………………………………………… 146
練習………………………………………… 146
5.12 稠密連線網路(DenseNet)………… 147
5.12.1 稠密塊 …………………………… 147
5.12.2 過渡層 … ……………………… 148
5.12.3 DenseNet模型 ………………… 148
5.12.4 訓練模型 … …………………… 149
小結………………………………………… 149
練習………………………………………… 149
第6 章 循環神經網路… ……………… 150
6.1 語言模型………………………………… 150
6.1.1 語言模型的計算 … ……………… 151
6.1.2 n 元語法 … ……………………… 151
小結………………………………………… 152
練習………………………………………… 152
6.2 循環神經網路… ………………………… 152
6.2.1 不含隱藏狀態的神經網路 … …… 152
6.2.2 含隱藏狀態的循環神經網路… … 152
6.2.3 套用:基於字元級循環神經網路的語言模型 … ……………………… 154
小結………………………………………… 155
練習………………………………………… 155
6.3 語言模型數據集(歌詞)…… 155
6.3.1 讀取數據集 … …………………… 155
6.3.2 建立字元索引 …………………… 156
6.3.3 時序數據的採樣 ………………… 156
小結………………………………………… 158
練習………………………………………… 159
6.4 循環神經網路的從零開始實現… ……… 159
6.4.1 one-hot向量 … ………………… 159
6.4.2 初始化模型參數 ………………… 160
6.4.3 定義模型 ………………………… 160
6.4.4 定義預測函式 …………………… 161
6.4.5 裁剪梯度 ………………………… 161
6.4.6 困惑度 …………………………… 162
6.4.7 定義模型訓練函式 ……………… 162
6.4.8 訓練模型並創作歌詞 …………… 163
小結………………………………………… 164
練習………………………………………… 164
6.5 循環神經網路的簡潔實現… …………… 165
6.5.1 定義模型 … ……………………… 165
6.5.2 訓練模型 ………………………… 166
小結………………………………………… 168
練習………………………………………… 168
6.6 通過時間反向傳播… …………………… 168
6.6.1 定義模型 … ……………………… 168
6.6.2 模型計算圖 ……………………… 169
6.6.3 方法 ……………………………… 169
小結………………………………………… 170
練習………………………………………… 170
6.7 門控循環單元(GRU)………………… 170
6.7.1 門控循環單元 … ………………… 171
6.7.2 讀取數據集 ……………………… 173
6.7.3 從零開始實現 …………………… 173
6.7.4 簡潔實現 ………………………… 175
小結………………………………………… 176
練習………………………………………… 176
6.8 長短期記憶(LSTM)… ……………… 176
6.8.1 長短期記憶 … …………………… 176
6.8.2 讀取數據集 ……………………… 179
6.8.3 從零開始實現 …………………… 179
6.8.4 簡潔實現 ………………………… 181
小結………………………………………… 181
練習………………………………………… 182
6.9 深度循環神經網路… …………………… 182
小結………………………………………… 183
練習………………………………………… 183
6.10 雙向循環神經網路……………………… 183
小結………………………………………… 184
練習………………………………………… 184
第7 章 最佳化算法… …………………… 185
7.1 最佳化與深度學習…………………………… 185
7.1.1 最佳化與深度學習的關係 … ……… 185
7.1.2 最佳化在深度學習中的挑戰 … …… 186
小結………………………………………… 188
練習………………………………………… 189
7.2 梯度下降和隨機梯度下降… …………… 189
7.2.1 一維梯度下降 … ………………… 189
7.2.2 學習率 …………………………… 190
7.2.3 多維梯度下降 …………………… 191
7.2.4 隨機梯度下降 …………………… 193
小結………………………………………… 194
練習………………………………………… 194
7.3 小批量隨機梯度下降… ………………… 194
7.3.1 讀取數據集 … …………………… 195
7.3.2 從零開始實現 …………………… 196
7.3.3 簡潔實現 ………………………… 198
小結………………………………………… 199
練習………………………………………… 199
7.4 動量法… …………………………………200
7.4.1 梯度下降的問題 … ……………… 200
7.4.2 動量法 …………………………… 201
·6· 目 錄
7.4.3 從零開始實現 …………………… 203
7.4.4 簡潔實現 ………………………… 205
小結………………………………………… 205
練習………………………………………… 205
7.5 AdaGrad算法……………………………206
7.5.1 算法 … …………………………… 206
7.5.2 特點 ……………………………… 206
7.5.3 從零開始實現 …………………… 208
7.5.4 簡潔實現 ………………………… 209
小結………………………………………… 209
練習………………………………………… 209
7.6 RMSProp算法… ………………………209
7.6.1 算法 … …………………………… 210
7.6.2 從零開始實現 …………………… 211
7.6.3 簡潔實現 ………………………… 212
小結………………………………………… 212
練習………………………………………… 212
7.7 AdaDelta算法… ……………………… 212
7.7.1 算法… …………………………… 212
7.7.2 從零開始實現 …………………… 213
7.7.3 簡潔實現 ………………………… 214
小結………………………………………… 214
練習………………………………………… 214
7.8 Adam算法… …………………………… 215
7.8.1 算法 … …………………………… 215
7.8.2 從零開始實現 …………………… 216
7.8.3 簡潔實現 ………………………… 216
小結………………………………………… 217
練習………………………………………… 217
第8 章 計算性能… …………………… 218
8.1 命令式和符號式混合編程… …………… 218
8.1.1 混合式編程取兩者之長 … ……… 220
8.1.2 使用HybridSequential類構造模型 … …………………………… 220
8.1.3 使用HybridBlock類構造模型… …………………………… 222
小結………………………………………… 224
練習………………………………………… 224
8.2 異步計算… ………………………………224
8.2.1 MXNet中的異步計算 …………… 224
8.2.2 用同步函式讓前端等待計算結果 … …………………………… 226
8.2.3 使用異步計算提升計算性能 …… 226
8.2.4 異步計算對記憶體的影響 ………… 227
小結………………………………………… 229
練習………………………………………… 229
8.3 自動並行計算… …………………………229
8.3.1 CPU和GPU的並行計算 … …… 230
8.3.2 計算和通信的並行計算 ………… 231
小結………………………………………… 231
練習………………………………………… 231
8.4 多GPU計算……………………………… 232
8.4.1 數據並行 … ……………………… 232
8.4.2 定義模型 ………………………… 233
8.4.3 多GPU之間同步數據 … ……… 234
8.4.4 單個小批量上的多GPU訓練 … …………………………… 236
8.4.5 定義訓練函式 …………………… 236
8.4.6 多GPU訓練實驗 … …………… 237
小結………………………………………… 237
練習………………………………………… 237
8.5 多GPU計算的簡潔實現………………… 237
8.5.1 多GPU上初始化模型參數……… 238
8.5.2 多GPU訓練模型 … …………… 239
小結………………………………………… 241
練習………………………………………… 241
第9 章 計算機視覺… ………………… 242
9.1 圖像增廣…………………………………242
9.1.1 常用的圖像增廣方法 … ………… 243
9.1.2 使用圖像增廣訓練模型 … ……… 246
小結………………………………………… 250
練習………………………………………… 250
9.2 微調… ……………………………………250
熱狗識別 … ……………………………… 251
小結………………………………………… 255
練習………………………………………… 255
目 錄 ·7·
9.3 目標檢測和邊界框… ……………………255
邊界框 … ………………………………… 256
小結………………………………………… 257
練習………………………………………… 257
9.4 錨框… …………………………………… 257
9.4.1 生成多個錨框… ………………… 257
9.4.2 交並比 …………………………… 259
9.4.3 標註訓練集的錨框 ……………… 260
9.4.4 輸出預測邊界框… ……………… 263
小結………………………………………… 265
練習………………………………………… 265
9.5 多尺度目標檢測… ………………………265
小結………………………………………… 268
練習………………………………………… 268
9.6 目標檢測數據集(皮卡丘)… …………268
9.6.1 獲取數據集 … …………………… 269
9.6.2 讀取數據集… …………………… 269
9.6.3 圖示數據 ………………………… 270
小結………………………………………… 270
練習………………………………………… 271
9.7 單發多框檢測(SSD)… ……………… 271
9.7.1 定義模型… ……………………… 271
9.7.2 訓練模型 ………………………… 275
9.7.3 預測目標 ………………………… 277
小結………………………………………… 278
練習………………………………………… 278
9.8 區域卷積神經網路(R-CNN)系列……280
9.8.1 R-CNN … ……………………… 280
9.8.2 Fast R-CNN …………………… 281
9.8.3 Faster R-CNN ………………… 283
9.8.4 Mask R-CNN … ……………… 284
小結………………………………………… 285
練習………………………………………… 285
9.9 語義分割和數據集… ……………………285
9.9.1 圖像分割和實例分割 … ………… 285
9.9.2 Pascal VOC2012語義分割數據集 … ………………………… 286
小結………………………………………… 290
練習………………………………………… 290
9.10 全卷積網路(FCN)… ………………290
9.10.1 轉置卷積層 …………………… 291
9.10.2 構造模型 … …………………… 292
9.10.3 初始化轉置卷積層……………… 294
9.10.4 讀取數據集 … ………………… 295
9.10.5 訓練模型………………………… 296
9.10.6 預測像素類別…………………… 296
小結………………………………………… 297
練習………………………………………… 297
9.11 樣式遷移… ………………………………298
9.11.1 方法 ……………………………… 298
9.11.2 讀取內容圖像和樣式圖像……… 299
9.11.3 預處理和後處理圖像 ………… 300
9.11.4 抽取特徵 ……………………… 301
9.11.5 定義損失函式 ………………… 302
9.11.6 創建和初始化合成圖像 ……… 303
9.11.7 訓練模型………………………… 304
小結………………………………………… 306
練習………………………………………… 306
9.12 實戰Kaggle比賽:圖像
分類(CIFAR-10)……………………306
9.12.1 獲取和整理數據集 ……………… 307
9.12.2 圖像增廣 … …………………… 310
9.12.3 讀取數據集 … ………………… 310
9.12.4 定義模型………………………… 311
9.12.5 定義訓練函式 … ……………… 312
9.12.6 訓練模型 … …………………… 312
9.12.7 對測試集分類並在Kaggle
提交結果 … …………………… 313
小結………………………………………… 313
練習………………………………………… 313
9.13 實戰Kaggle比賽:狗的品種
識別(ImageNet Dogs)…………… 314
9.13.1 獲取和整理數據集 …………… 315
9.13.2 圖像增廣 … …………………… 316
9.13.3 讀取數據集 … ………………… 317
9.13.4 定義模型 … …………………… 318
9.13.5 定義訓練函式 … ……………… 318
9.13.6 訓練模型 … …………………… 319
·8· 目 錄
9.13.7 對測試集分類並在Kaggle提交結果 … …………………… 319
小結………………………………………… 320
練習………………………………………… 320
第10 章 自然語言處理………………… 321
10.1 詞嵌入(word2vec)………………… 321
10.1.1 為何不採用one-hot向量… …… 321
10.1.2 跳字模型 ………………………… 322
10.1.3 連續詞袋模型 …………………… 323
小結………………………………………… 325
練習………………………………………… 325
10.2 近似訓練…………………………………325
10.2.1 負採樣 …………………………… 325
10.2.2 層序softmax …………………… 326
小結………………………………………… 327
練習………………………………………… 328
10.3 word2vec的實現………………………328
10.3.1 預處理數據集 …………………… 328
10.3.2 負採樣 … ……………………… 331
10.3.3 讀取數據集 … ………………… 331
10.3.4 跳字模型 … …………………… 332
10.3.5 訓練模型 … …………………… 333
10.3.6 套用詞嵌入模型 … …………… 335
小結………………………………………… 336
練習………………………………………… 336
10.4 子詞嵌入(fastText)… ……………336
小結………………………………………… 337
練習………………………………………… 337
10.5 全局向量的詞嵌入(GloVe)…………337
10.5.1 GloVe模型 …………………… 338
10.5.2 從條件機率比值理解GloVe模型……………………… 339
小結………………………………………… 340
練習………………………………………… 340
10.6 求近義詞和類比詞………………………340
10.6.1 使用預訓練的詞向量 ………… 340
10.6.2 套用預訓練詞向量 … ………… 341
小結………………………………………… 343
練習………………………………………… 343
10.7 文本情感分類:使用循環神經網路…… 343
10.7.1 文本情感分類數據集 ………… 343
10.7.2 使用循環神經網路的模型……… 345
小結………………………………………… 347
練習………………………………………… 347
10.8 文本情感分類:使用卷積神經網路(textCNN)… …………………347
10.8.1 一維卷積層 … ………………… 348
10.8.2 時序最大池化層 … …………… 349
10.8.3 讀取和預處理IMDb數據集 … ……………………… 350
10.8.4 textCNN模型 … ……………… 350
小結………………………………………… 353
練習………………………………………… 353
10.9 編碼器-解碼器(seq2seq)…………353
10.9.1 編碼器 ………………………… 354
10.9.2 解碼器 … ……………………… 354
10.9.3 訓練模型………………………… 355
小結………………………………………… 355
練習………………………………………… 355
10.10  束搜尋… ………………………………355
10.10.1 貪婪搜尋 … …………………… 356
10.10.2 窮舉搜尋 ……………………… 357
10.10.3 束搜尋 ………………………… 357
小結………………………………………… 358
練習………………………………………… 358
10.11 注意力機制… …………………………358
10.11.1 計算背景變數 … ……………… 359
10.11.2 更新隱藏狀態 … ……………… 360
10.11.3 發展… ………………………… 361
小結………………………………………… 361
練習………………………………………… 361
10.12 機器翻譯… …………………………… 361
10.12.1 讀取和預處理數據集… ……… 361
10.12.2 含注意力機制的編碼器-解碼器 … …………… 363
10.12.3 訓練模型 ……………………… 365
10.12.4 預測不定長的序列… ………… 367
10.12.5 評價翻譯結果 ………………… 367
小結………………………………………… 369
練習………………………………………… 369
附錄A 數學基礎… …………………… 370
附錄B 使用 Jupyter 記事本… ……… 376
附錄C 使用 AWS 運行代碼…………… 381
附錄D GPU 購買指南………………… 388
附錄E 如何為本書做貢獻… ………… 391
附錄F d2lzh 包索引…………………… 395
附錄G 中英文術語對照表… ………… 397
參考文獻………………………………… 402
索引……………………………………… 407

相關詞條

熱門詞條

聯絡我們