內容簡介
PyTorch 是基於 Torch 庫的開源機器學習庫,它主要由 Meta(原 Facebook)的人工智慧研究實驗室開發,在自然語言處理和計算機視覺領域都具有廣泛的套用。本書介紹了簡單且經典的入門項目,方便快速上手,如 MNIST數字識別,讀者在完成項目的過程中可以了解數據集、模型和訓練等基礎概念。本書還介紹了一些實用且經典的模型,如 R-CNN 模型,通過這個模型的學習,讀者可以對目標檢測任務有一個基本的認識,對於基本的網路結構原理有一定的了解。另外,本書對於當前比較熱門的生成對抗網路和強化學習也有一定的介紹,方便讀者拓寬視野,掌握前沿方向。
本書適合人工智慧、機器學習、深度學習方面的人員閱讀,也適合其他 IT 方面從業者,另外,還可以作為相關專業的教材。
圖書目錄
第1章 數字識別
1.1 MNIST數據集2
1.1.1 MNIST 數據集簡介2
1.1.2 導入數據集3
1.2 構建模型4
1.2.1 定義神經網路4
1.2.2 前向傳播6
1.2.3 計算損失7
1.2.4 反向傳播與更新參數8
1.3 開始訓練8
1.4 觀察模型預測結果9
1.5 總結11
第2章 ImageNet圖像識別模型與CIFAR-10
2.1 圖像分類器13
2.1.1 CIFAR-10數據集簡介13
2.1.2 載入數據集14
2.1.3 定義卷積神經網路15
2.1.4 定義損失函式和最佳化器16
2.1.5 訓練網路16
2.1.6 使用測試集評估17
2.1.7 使用GPU加速19
2.2 ImageNet和圖像識別模型20
2.2.1 ImageNet20
2.2.2 基於 ImageNet 的圖像識別模型20
2.3 總結22
第3章 從零構建圖像分類模型
3.1 預訓練模型原理24
3.1.1 狀態字典24
3.1.2 通過設備保存25
3.2 載入ImageNet預訓練模型25
3.3 準備數據27
3.3.1 載入數據集28
3.3.2 使用matplotlib可視化數據29
3.4 開始訓練29
3.5 使用torchvision微調模型31
3.6 觀察模型預測結果31
3.7 固定模型的參數33
3.8 使用tensorbord可視化訓練情況34
3.9 總結35
第4章 文本生成
4.1 RNN原理及其結構37
9.1 理解圖像風格遷移算法113
9.1.1 傳統風格遷移113
9.1.2 Neural-Style算法原理114
9.2 載入圖像116
9.3 定義損失模組118
9.3.1 內容損失模組118
9.3.2 風格損失模組119
9.4 導入預訓練模型120
9.5 使用L-BFGS進行梯度下降123
9.6 訓練自己的風格124
9.7 總結126
第10章 對抗機器學習和欺騙模型
10.1 模型的潛在威脅128
10.2 快速梯度符號法128
10.3 攻擊一個圖像識別模型129
10.3.1 被攻擊的模型129
10.3.2 FGSM算法131
10.4 開始攻擊131
10.4.1 攻擊流程132
10.4.2 攻擊結果133
10.5 總結136
第11章 word2vec與詞向量
11.1 詞嵌入作用138
11.2 詞嵌入原理139
11.2.1 CBOW實現139
11.2.2 Skip-Gram實現140
11.3 在PyTorch中實現詞嵌入141
11.3.1 數據準備141
11.3.2 構造模型143
11.3.3 訓練模型143
11.3.4 可視化144
11.4 工具包word2vec結合中文詞嵌入146
11.4.1 word2vec使用146
11.4.2 中文詞嵌入147
11.5 總結147
第12章 命名實體識別
12.1 NER背景介紹149
12.2 LSTM149
12.2.1 LSTM原理150
12.2.2 在PyTorch中使用LSTM152
12.3 CRF155
12.3.1 發射分數和轉移分數156
12.3.2 損失函式157
12.3.3 預測158
12.4 構建模型158
12.4.1 模型結構158
12.4.2 模型代碼159
12.5 開始訓練162
12.6 總結164
第13章 基於AG_NEWS的文本分類
13.1 數據預處理166
13.1.1 原始數據疊代器166
13.1.2 數據處理166
13.2 準備模型168
13.2.1 初始化一個實例169
13.2.2 定義函式訓練和評估模型169
13.3 訓練模型170
13.4 評估和測試模型173
13.4.1 評估模型173
13.4.2 隨機新聞測試173
13.5 總結174
第14章 基於 BERT 的文本分類
14.1 transformers數據處理 176
14.1.1 載入預訓練的序列化工具176
14.1.2 基本用法177
14.2 微調預訓練模型178
14.2.1 數據集介紹和處理178
14.2.2 導入模型179
14.2.3 定義訓練器180
14.3 總結181
第15章 文本翻譯
15.1 Seq2Seq網路183
15.2 注意力機制Attention184
15.3 準備數據185
15.4 構建模型189
15.4.1 編碼器190
15.4.2 解碼器191
15.4.3 注意力機制解碼器192
15.5 開始訓練193
15.5.1 準備訓練數據194
15.5.2 訓練技巧Teacher Forcing194
15.5.3 訓練模型194
15.6 觀察模型效果198
15.6.1 評估模型198
15.6.2 可視化注意力201
15.7 總結203
第16章 文本閱讀理解
16.1 閱讀理解任務介紹205
16.2 模型實現205
16.3 總結208
第17章 為圖像添加文本描述
17.1 編碼器-解碼器架構210
17.2 Image Caption模型210
17.2.1 神經圖像字幕生成器210
17.2.2 加入注意力機制211
17.3 中文圖像字幕數據集212
17.3.1 數據結構212
17.3.2 構建詞典213
17.3.3 構建數據集215
17.4 構建Image Caption模型218
17.4.1 編碼器218
17.4.2 解碼器219
17.4.3 注意力層222
17.5 模型訓練和評估223
17.5.1 訓練編碼器和解碼器223
17.5.2 計算BLEU指標225
17.5.3 可視化結果225
17.6 總結226
第18章 聊天機器人
18.1 準備數據228
18.1.1 數據預處理228
18.1.2 為模型準備數據230
18.2 構建模型235
18.2.1 Encoder236
18.2.2 Decoder237
18.3 訓練準備239
18.4 評估模型243
18.5 訓練模型245
18.6 總結247
第19章 CycleGAN 模型
19.1 CycleGAN模型架構249
19.2 CycleGAN 模型的套用249
19.2.1 安裝依賴包249
19.2.2 準備數據集250
19.2.3 預訓練模型251
19.2.4 訓練模型252
19.2.5 測試模型253
19.2.6 結果可視化253
19.3 總結254
第20章 圖像超解析度與ESPCN
20.1 理解圖像超解析度和ESPCN算法256