PyTorch深度學習實戰:從新手小白到數據科學家

張敏

立即出貨

買這商品的人也買了...

相關主題

商品描述

本書以深度學習為核心,詳細講解Pytorch技術堆棧,力求使用最直白的語言,
帶更多的小白學員入門甚至精通深度學習。
本書共分為10個章節,前五個章節主要講解深度學習中的基本算法及概念,
通過使用Pytorch實現經典的神經網絡並輔以"課後加油站”小節補充數學知識,
力求讓每一個知識點、每一個章節、每一個實驗都能在學員腦海中留下印象,
做到看了能做、做了能會、會了能用。
後面五個章節作為Pytorch的進階,會講使用Pytorch構建深度神經網絡、
使用HMM實現中文分詞、訓練聊天機器人等有意思的小實驗。
引入當下最流行的自然語言預訓練模型如Elmo、BERT等,
教會讀者使用自然語言利器AllenNLP及高階框架FastAI。
最後一章講解當下最流行的圖嵌入技術,對知識圖譜感興趣的童鞋可以深入的研究。

目錄大綱

目錄
第1章 初識PyTorch 1
1.1 神經網絡發展簡史 1
1.1.1 神經網絡的前世今生 1
1.1.2 深度學習框架對比 3
1.2 環境安裝 6
1.2.1 Python環境的選擇及安裝 6
1.2.2 PyTorch 1.2的安裝 8
1.2.3 開發環境IDE 10
1.3 PyTorch的核心概念 11
1.3.1 PyTorch的基本概念 11
1.3.2 自動微分 16
1.3.3 PyTorch的核心模塊 19
1.4 實驗室小試牛刀 20
1.4.1 塔珀自指公式 20
1.4.2 看看你畢業了能拿多少 22
1.5 加油站之高等數學知識回顧 39
1.5.1 函數基礎知識 39
1.5.2 常見的導數公式 45

第2章 機器學習快速入門 49
2.1 機器學習的分類 49
2.1.1 監督學習 49
2.1.2 半監督學習 51
2.1.3 無監督學習 51
2.1.4 強化學習 52
2.2 機器學習的常見概念 54
2.2.1 缺失值處理 54
2.2.2 數據標準化與數據正則化 56
2.2.3 交叉驗證 59
2.2.4 過擬合與欠擬合 61
2.3 神經網絡 62
2.3.1 神經網絡的生物學發現與編程模擬 62
2.3.2 人工神經網絡的核心思想 69
2.4 實現線性回歸、多項式回歸和邏輯回歸 70
2.4.1 PyTorch實現線性回歸 70
2.4.2 PyTorch實現多項式回歸 73
2.4.3 PyTorch實現邏輯回歸 77
2.5 加油站之高等數學知識回顧 82
2.5.1 方嚮導數和梯度 82
2.5.2 微分及積分 84
2.5.3 牛頓-萊布尼茲公式 87

第3章 PyTorch與科學計算 89
3.1 算子字典 89
3.1.1 基本方法 89
3.1.2 索引、切片、連接和換位 91
3.1.3 隨機抽樣 95
3.1.4 數據持久化與高並發 97
3.1.5 元素級別的數學計算 98
3.1.6 規約計算 102
3.1.7 數值比較運算 104
3.1.8 矩陣運算 106
3.2 廣播機制 110
3.2.1 自動廣播規則 110
3.2.2 廣播計算規則 111
3.3 GPU設備及並行編程 112
3.3.1 device和cuda.device的基本用法 112
3.3.2 CPU設備到GPU設備 113
3.3.3 固定緩衝區 115
3.3.4 自動設備感知 117
3.3.5 並發編程 118
3.4 實驗室小試牛刀之輕鬆搞定圖片分類 121
3.4.1 softmax分類簡介 123
3.4.2 定義網絡結構 126
3.5 加油站之高等數學知識回顧 133
3.5.1 泰勒公式及其思想 133
3.5.2 拉格朗日乘子法及其思想 138

第4章 激活函數、損失函數、優化器及數據加載 140
4.1 激活函數 140
4.1.1 Sigmoid 141
4.1.2 tanh 143
4.1.3 ReLU及其變形 145
4.1.4 MaxOut 148
4.2 損失函數 150
4.2.1 L1範數損失 150
4.2.2 均方誤差損失 151
4.2.3 二分類交叉熵損失 152
4.2.4 CrossEntropyLoss和NLLLoss計算交叉熵損失 152
4.2.5 KL散度損失 154
4.2.6 餘弦相似度損失 155
4.2.7 多分類多標籤損失 156
4.3 優化器 157
4.3.1 BGD 157
4.3.2 SGD 158
4.3.3 MBGD 159
4.3.4 Momentum 160
4.3.5 NAG 161
4.3.6 Adagrad 161
4.3.7 Adadelta 162
4.3.8 Adam 163
4.4 數據加載 164
4.4.1 Dataset數據集 164
4.4.2 DataLoader數據加載 167
4.5 初探卷積神經網絡 169
4.5.1 知識科普:卷積過程及物理意義 169
4.5.2 卷積神經網絡 173
4.5.3 stride和padding 179
4.5.4 膨脹卷積神經網絡 180
4.5.5 池化 182
4.6 實驗室小試牛刀 184
4.6.1 設計卷積神經網絡 184
4.6.2 定義卷積神經網絡 185
4.6.3 模型訓練 186
4.6.4 理解卷積神經網絡在學什麼 189

第5章 PyTorch深度神經網絡 201
5.1 計算機視覺工具包 201
5.2 訓練過程的可視化 204
5.2.1 TensorBoard 204
5.2.2 Visdom 210
5.3 深度神經網絡 212
5.3.1 LeNet 212
5.3.2 AlexNet 214
5.3.3 ZF-Net 217
5.3.4 VGG-Nets 219
5.3.5 GoogLeNet 222
5.3.6 ResNet 224
5.3.7 DenseNet 226
5.4 循環神經網絡 228
5.4.1 循環神經網絡基礎模型 229
5.4.2 LSTM 233
5.4.3 GRU 238
5.5 實驗室小試牛刀 240
5.5.1 數據準備 241
5.5.2 GRU網絡設計 242
5.5.3 模型訓練 244
5.5.4 模型預測 245
5.6 加油站之概率論基礎知識回顧 246
5.6.1 離散型隨機變量和連續型隨機變量 246
5.6.2 概率論常用概念 251
5.6.3 二維隨機變量 253
5.6.4 邊緣分佈 255
5.6.5 期望和方差 257
5.6.6 大數定理 258
5.6.7 馬爾可夫不等式及切比雪夫不等式 259
5.6.8 中心極限定理 260

第6章 自然語言處理 261
6.1 自然語言基礎 261
6.1.1 自然語言發展史 261
6.1.2 自然語言處理中的常見任務 264
6.1.3 統計自然語言理論 266
6.1.4 使用隱馬爾可夫模型實現中文分詞 278
6.2 提取關鍵字 281
6.2.1 TF-IDF 281
6.2.2 TextRank 283
6.2.3 主題模型 284
6.3 Word2vec和詞嵌入 285
6.3.1 N-Gram模型 286
6.3.2 詞袋模型 287
6.3.3 Word2vec詞向量的密集表示 288
6.3.4 使用Word2vec生成詞向量 297
6.3.5 Word2vec源碼調試 299
6.3.6 在PyTorch中使用詞向量 300
6.4 變長序列處理 302
6.4.1 pack_padded_sequence壓縮 304
6.4.2 pad_packed_sequence解壓縮 306
6.5 Encoder-Decoder框架和注意力機制 307
6.5.1 Encoder-Decoder框架 308
6.5.2 注意力機制 309
6.6 實驗室小試牛刀之對話機器人 312
6.6.1 中文對話語料 313
6.6.2 構建問答詞典 313
6.6.3 DataLoader數據加載 315
6.6.4 Encoder雙向多層GRU 318
6.6.5 運用注意力機制 320
6.6.6 Decoder多層GRU 321
6.6.7 模型訓練 323
6.6.8 答案搜索及效果展示 324
6.7 加油站之常見的幾種概率分佈 326
6.7.1 二項分佈 326
6.7.2 正態分佈 327
6.7.3 均勻分佈 328
6.7.4 泊松分佈 330
6.7.5 卡方分佈 332
6.7.6 Beta分佈 333

第7章 自然語言的曙光:預訓練模型 336
7.1 預訓練模型的應用 336
7.2 從詞嵌入到ELMo 337
7.2.1 詞嵌入頭上的烏雲 337
7.2.2 ELMo 338
7.3 從ELMo模型到GPT模型 341
7.3.1 GPT模型 341
7.3.2 使用GPT模型 342
7.4 從GPT模型到BERT模型 344

第8章 自然語言處理利器:AllenNLP 349
8.1 中文詞性標註 349
8.1.1 DatasetReader數據讀取 350
8.1.2 定義Model模型 352
8.1.3 模型訓練 354
8.1.4 模型預測 355
8.1.5 模型保存和加載 356
8.2 AllenNLP 使用Config Files 356
8.2.1 參數解析 357
8.2.2 註冊數據讀取器和模型 357
8.2.3 定義Jsonnet配置文件 357
8.2.4 命令行工具 359
8.2.5 特徵融合 360
8.2.6 製作在線Demo 362

第9章 FastAI高層深度學習框架 364
9.1 FastAI框架中的原語 364
9.2 在FastAI框架中使用BERT模型完成中文分類 365
9.2.1 分詞器 365
9.2.2 定義字典 368
9.2.3 數據準備 368
9.2.4 構建Databunch和Learner 370
9.2.5 模型訓練 371
9.2.6 模型保存和加載 371
9.2.7 模型預測 372
9.2.8 製作Rest接口提供服務 372

第10章 PyTorch Big Graph嵌入 374
10.1 PyTorch Big Graph簡介 374
10.1.1 PBG模型 375
10.1.2 模型的表示 376
10.1.3 正樣本、負樣本及損失函數 377
10.1.4 分佈式訓練 377
10.1.5 批量負採樣 379
10.2 PBG實踐應用 379
10.2.1 模型配置文件 380
10.2.2 劃分訓練集和測試集 381
10.2.3 模型訓練和驗證 382
10.2.4 圖嵌入向量及應用 384