動手學深度學習(PyTorch版)(精裝版)

動手學深度學習(PyTorch版)(精裝版)

《動手學深度學習(PyTorch版)(精裝版)》是2023年人民郵電出版社出版的圖書,作者是阿斯頓·張(Aston Zhang)、李沐(Mu Li) 等。

基本介紹

  • 中文名:動手學深度學習(PyTorch版)(精裝版)
  • 作者:阿斯頓·張(Aston Zhang)、李沐(Mu Li) 等
  • 出版時間:2023年2月
  • 出版社:人民郵電出版社
  • ISBN:9787115600806
  • 開本:16 開
  • 裝幀:精裝
內容簡介,作者簡介,圖書目錄,

內容簡介

本書是《動手學深度學習》的重磅升級版本,選用PyTorch深度學習框架,旨在向讀者交付更為便捷的有關深度學習的互動式學習體驗。
本書重新修訂《動手學深度學習》的所有內容,並針對技術的發展,新增注意力機制、預訓練等內容。本書包含15章,第一部分介紹深度學習的基礎知識和預備知識,並由線性模型引出基礎的神經網路——多層感知機;第二部分闡述深度學習計算的關鍵組件、卷積神經網路、循環神經網路、注意力機制等大多數現代深度學習套用背後的基本工具;第三部分討論深度學習中常用的最佳化算法和影響深度學習計算性能的重要因素,並分別列舉深度學習在計算機視覺和自然語言處理中的重要套用。
本書同時覆蓋深度學習的方法和實踐,主要面向在校大學生、技術人員和研究人員。閱讀本書需要讀者了解基本的Python編程知識及預備知識中描述的線性代數、微分和機率等基礎知識。

作者簡介

阿斯頓.張(Aston Zhang),Amazon資歷深厚的研究員,美國伊利諾伊大學香檳分校計算機科學博士,統計學和計算機科學雙碩士。他專注於機器學習和自然語言處理的研究,榮獲深度學習國際高水平學術會議ICLR傑出論文獎、ACM UbiComp傑出論文獎以及ACM SenSys高水平論文獎提名。他擔任過EMNLP領域主席和AAAI程式委員。
[美]扎卡里.C. 立頓(Zachary C. Lipton),美國卡內基梅隆大學機器學習和運籌學助理教授,並在海因茨公共政策學院以及軟體和社會系統系擔任禮節性任命。他領導著近似正確機器智慧型(ACMI)實驗室,研究涉及核心機器學習方法、其社會影響以及包括臨床醫學和自然語言處理在內的各種套用領域。他目前的研究重點包括處理各種因果結構下分布變化的穩健和自適應算法、超越預測為決策提供信息(包括應對已部署模型的戰略回響)、醫學診斷和預後預測、算法公平性和可解釋性的基礎。他是“Approximately Correct”部落格的創立人,也是諷刺性漫畫“Superheroes of Deep Learning”的合著者。
李沐(Mu Li),Amazon資歷深厚的領銜研究員(Senior Principal Scientist),美國加利福尼亞大學伯克利分校、史丹福大學客座助理教授,美國卡內基梅隆大學計算機系博士。他曾任機器學習創業公司Marianas Labs的CTO和百度深度學習研究院的主任研發架構師。他專注於機器學習系統和機器學習算法的研究。他在理論與套用、機器學習與作業系統等多個領域的高水平學術會議上發表過論文,被引用上萬次。
[德]亞歷山大.J. 斯莫拉(Alexander J. Smola),Amazon副總裁/傑出研究員,德國柏林工業大學計算機科學博士。他曾在澳大利亞國立大學、美國加利福尼亞大學伯克利分校和卡內基梅隆大學任教。他發表過超過300篇學術論文,並著有5本書,其論文及書被引用超過15萬次。他的研究興趣包括深度學習、貝葉斯非參數、核方法、統計建模和可擴展算法。
譯者簡介:
何孝霆(Xiaoting He),Amazon套用研究員,中國科學院軟體工程碩士。他專注於對深度學習的研究,特別是自然語言處理的套用(包括語言模型、AIOps、OCR),相關工作落地於眾多企業。他擔任過ACL、EMNLP、NAACL、EACL等學術會議的程式委員或審稿人。
瑞潮兒.胡(Rachel Hu),Amazon套用研究員,美國加利福尼亞大學伯克利分校統計學碩士,加拿大滑鐵盧大學數學學士。她致力於將機器學習套用於現實世界的產品。她也是Amazon人工智慧團隊的講師,教授自然語言處理、計算機視覺和機器學習商業套用等課程。她已向累計1000餘名Amazon工程師教授機器學習,其公開課程視頻在YouTube和嗶哩嗶哩上屢獲盛讚。

圖書目錄

對本書的讚譽
前言
譯者簡介
學習環境配置
資源與支持
主要符號表
第 1章 引言 1
1.1 日常生活中的機器學習 2
1.2 機器學習中的關鍵組件 3
1.2.1 數據 3
1.2.2 模型 4
1.2.3 目標函式 4
1.2.4 最佳化算法 5
1.3 各種機器學習問題 5
1.3.1 監督學習 5
1.3.2 無監督學習 11
1.3.3 與環境互動 11
1.3.4 強化學習 12
1.4 起源 13
1.5 深度學習的發展 15
1.6 深度學習的成功案例 16
1.7 特點 17
第 2章 預備知識 20
2.1 數據操作 20
2.1.1 入門 21
2.1.2 運算符 22
2.1.3 廣播機制 23
2.1.4 索引和切片 24
2.1.5 節省記憶體 24
2.1.6 轉換為其他Python對象 25
2.2 數據預處理 26
2.2.1 讀取數據集 26
2.2.2 處理缺失值 26
2.2.3 轉換為張量格式 27
2.3 線性代數 27
2.3.1 標量 28
2.3.2 向量 28
2.3.3 矩陣 29
2.3.4 張量 30
2.3.5 張量算法的基本性質 31
2.3.6 降維 32
2.3.7 點積 33
2.3.8 矩陣-向量積 33
2.3.9 矩陣-矩陣乘法 34
2.3.10 範數 35
2.3.11 關於線性代數的更多信息 36
2.4 微積分 37
2.4.1 導數和微分 37
2.4.2 偏導數 40
2.4.3 梯度 41
2.4.4 鏈式法則 41
2.5 自動微分 42
2.5.1 一個簡單的例子 42
2.5.2 非標量變數的反向傳播 43
2.5.3 分離計算 43
2.5.4 Python控制流的梯度計算 44
2.6 機率 44
2.6.1 基本機率論 45
2.6.2 處理多個隨機變數 48
2.6.3 期望和方差 50
2.7 查閱文檔 51
2.7.1 查找模組中的所有函式和類 51
2.7.2 查找特定函式和類的用法 52
第3章 線性神經網路 54
3.1 線性回歸 54
3.1.1 線性回歸的基本元素 54
3.1.2 向量化加速 57
3.1.3 常態分配與平方損失 58
3.1.4 從線性回歸到深度網路 60
3.2 線性回歸的從零開始實現 61
3.2.1 生成數據集 62
3.2.2 讀取數據集 63
3.2.3 初始化模型參數 63
3.2.4 定義模型 64
3.2.5 定義損失函式 64
3.2.6 定義最佳化算法 64
3.2.7 訓練 64
3.3 線性回歸的簡潔實現 66
3.3.1 生成數據集 66
3.3.2 讀取數據集 66
3.3.3 定義模型 67
3.3.4 初始化模型參數 67
3.3.5 定義損失函式 68
3.3.6 定義最佳化算法 68
3.3.7 訓練 68
3.4 softmax回歸 69
3.4.1 分類問題 69
3.4.2 網路架構 70
3.4.3 全連線層的參數開銷 70
3.4.4 softmax運算 71
3.4.5 小批量樣本的向量化 71
3.4.6 損失函式 72
3.4.7 資訊理論基礎 73
3.4.8 模型預測和評估 74
3.5 圖像分類數據集 74
3.5.1 讀取數據集 75
3.5.2 讀取小批量 76
3.5.3 整合所有組件 76
3.6 softmax回歸的從零開始實現 77
3.6.1 初始化模型參數 77
3.6.2 定義softmax操作 78
3.6.3 定義模型 78
3.6.4 定義損失函式 79
3.6.5 分類精度 79
3.6.6 訓練 80
3.6.7 預測 82
3.7 softmax回歸的簡潔實現 83
3.7.1 初始化模型參數 83
3.7.2 重新審視softmax的實現 84
3.7.3 最佳化算法 84
3.7.4 訓練 84
第4章 多層感知機 86
4.1 多層感知機 86
4.1.1 隱藏層 86
4.1.2 激活函式 88
4.2 多層感知機的從零開始實現 92
4.2.1 初始化模型參數 92
4.2.2 激活函式 93
4.2.3 模型 93
4.2.4 損失函式 93
4.2.5 訓練 93
4.3 多層感知機的簡潔實現 94
模型 94
4.4 模型選擇、欠擬合和過擬合 95
4.4.1 訓練誤差和泛化誤差 96
4.4.2 模型選擇 97
4.4.3 欠擬合還是過擬合 98
4.4.4 多項式回歸 99
4.5 權重衰減 103
4.5.1 範數與權重衰減 103
4.5.2 高維線性回歸 104
4.5.3 從零開始實現 104
4.5.4 簡潔實現 106
4.6 暫退法 108
4.6.1 重新審視過擬合 108
4.6.2 擾動的穩健性 108
4.6.3 實踐中的暫退法 109
4.6.4 從零開始實現 110
4.6.5 簡潔實現 111
4.7 前向傳播、反向傳播和計算圖 112
4.7.1 前向傳播 113
4.7.2 前向傳播計算圖 113
4.7.3 反向傳播 114
4.7.4 訓練神經網路 115
4.8 數值穩定性和模型初始化 115
4.8.1 梯度消失和梯度爆炸 116
4.8.2 參數初始化 117
4.9 環境和分布偏移 119
4.9.1 分布偏移的類型 120
4.9.2 分布偏移示例 121
4.9.3 分布偏移糾正 122
4.9.4 學習問題的分類法 125
4.9.5 機器學習中的公平、責任和透明度 126
4.10 實戰Kaggle比賽:預測房價 127
4.10.1 下載和快取數據集 127
4.10.2 Kaggle 128
4.10.3 訪問和讀取數據集 129
4.10.4 數據預處理 130
4.10.5 訓練 131
4.10.6 K折交叉驗證 132
4.10.7 模型選擇 133
4.10.8 提交Kaggle預測 133
第5章 深度學習計算 136
5.1 層和塊 136
5.1.1 自定義塊 138
5.1.2 順序塊 139
5.1.3 在前向傳播函式中執行代碼 139
5.1.4 效率 140
5.2 參數管理 141
5.2.1 參數訪問 141
5.2.2 參數初始化 143
5.2.3 參數綁定 145
5.3 延後初始化 145
實例化網路 146
5.4 自定義層 146
5.4.1 不帶參數的層 146
5.4.2 帶參數的層 147
5.5 讀寫檔案 148
5.5.1 載入和保存張量 148
5.5.2 載入和保存模型參數 149
5.6 GPU 150
5.6.1 計算設備 151
5.6.2 張量與GPU 152
5.6.3 神經網路與GPU 153
第6章 卷積神經網路 155
6.1 從全連線層到卷積 155
6.1.1 不變性 156
6.1.2 多層感知機的限制 157
6.1.3 卷積 158
6.1.4 “沃爾多在哪裡”回顧 158
6.2 圖像卷積 159
6.2.1 互相關運算 159
6.2.2 卷積層 161
6.2.3 圖像中目標的邊緣檢測 161
6.2.4 學習卷積核 162
6.2.5 互相關和卷積 162
6.2.6 特徵映射和感受野 163
6.3 填充和步幅 164
6.3.1 填充 164
6.3.2 步幅 165
6.4 多輸入多輸出通道 166
6.4.1 多輸入通道 167
6.4.2 多輸出通道 167
6.4.3 1×1卷積層 168
6.5 匯聚層 170
6.5.1 最大匯聚和平均匯聚 170
6.5.2 填充和步幅 171
6.5.3 多個通道 172
6.6 卷積神經網路(LeNet) 173
6.6.1 LeNet 173
6.6.2 模型訓練 175
第7章 現代卷積神經網路 178
7.1 深度卷積神經網路(AlexNet) 178
7.1.1 學習表征 179
7.1.2 AlexNet 181
7.1.3 讀取數據集 183
7.1.4 訓練AlexNet 183
7.2 使用塊的網路(VGG) 184
7.2.1 VGG塊 184
7.2.2 VGG網路 185
7.2.3 訓練模型 186
7.3 網路中的網路(NiN) 187
7.3.1 NiN塊 187
7.3.2 NiN模型 188
7.3.3 訓練模型 189
7.4 含並行連線的網路(GoogLeNet) 190
7.4.1 Inception塊 190
7.4.2 GoogLeNet模型 191
7.4.3 訓練模型 193
7.5 批量規範化 194
7.5.1 訓練深層網路 194
7.5.2 批量規範化層 195
7.5.3 從零實現 196
7.5.4 使用批量規範化層的 LeNet 197
7.5.5 簡明實現 198
7.5.6 爭議 198
7.6 殘差網路(ResNet) 200
7.6.1 函式類 200
7.6.2 殘差塊 201
7.6.3 ResNet模型 202
7.6.4 訓練模型 204
7.7 稠密連線網路(DenseNet) 205
7.7.1 從ResNet到DenseNet 205
7.7.2 稠密塊體 206
7.7.3 過渡層 206
7.7.4 DenseNet模型 207
7.7.5 訓練模型 207
第8章 循環神經網路 209
8.1 序列模型 209
8.1.1 統計工具 210
8.1.2 訓練 212
8.1.3 預測 213
8.2 文本預處理 216
8.2.1 讀取數據集 216
8.2.2 詞元化 217
8.2.3 詞表 217
8.2.4 整合所有功能 219
8.3 語言模型和數據集 219
8.3.1 學習語言模型 220
8.3.2 馬爾可夫模型與n元語法 221
8.3.3 自然語言統計 221
8.3.4 讀取長序列數據 223
8.4 循環神經網路 226
8.4.1 無隱狀態的神經網路 227
8.4.2 有隱狀態的循環神經網路 227
8.4.3 基於循環神經網路的字元級語言模型 228
8.4.4 困惑度 229
8.5 循環神經網路的從零開始實現 230
8.5.1 獨熱編碼 231
8.5.2 初始化模型參數 231
8.5.3 循環神經網路模型 232
8.5.4 預測 232
8.5.5 梯度截斷 233
8.5.6 訓練 234
8.6 循環神經網路的簡潔實現 237
8.6.1 定義模型 237
8.6.2 訓練與預測 238
8.7 通過時間反向傳播 239
8.7.1 循環神經網路的梯度分析 239
8.7.2 通過時間反向傳播的細節 241
第9章 現代循環神經網路 244
9.1 門控循環單元(GRU) 244
9.1.1 門控隱狀態 245
9.1.2 從零開始實現 247
9.1.3 簡潔實現 248
9.2 長短期記憶網路(LSTM) 249
9.2.1 門控記憶元 249
9.2.2 從零開始實現 252
9.2.3 簡潔實現 253
9.3 深度循環神經網路 254
9.3.1 函式依賴關係 255
9.3.2 簡潔實現 255
9.3.3 訓練與預測 255
9.4 雙向循環神經網路 256
9.4.1 隱馬爾可夫模型中的動態規劃 256
9.4.2 雙向模型 258
9.4.3 雙向循環神經網路的錯誤套用 259
9.5 機器翻譯與數據集 260
9.5.1 下載和預處理數據集 261
9.5.2 詞元化 262
9.5.3 詞表 263
9.5.4 載入數據集 263
9.5.5 訓練模型 264
9.6 編碼器-解碼器架構 265
9.6.1 編碼器 265
9.6.2 解碼器 266
9.6.3 合併編碼器和解碼器 266
9.7 序列到序列學習(seq2seq) 267
9.7.1 編碼器 268
9.7.2 解碼器 269
9.7.3 損失函式 270
9.7.4 訓練 271
9.7.5 預測 272
9.7.6 預測序列的評估 273
9.8 束搜尋 275
9.8.1 貪心搜尋 275
9.8.2 窮舉搜尋 276
9.8.3 束搜尋 276
第 10章 注意力機制 278
10.1 注意力提示 278
10.1.1 生物學中的注意力提示 279
10.1.2 查詢、鍵和值 280
10.1.3 注意力的可視化 280
10.2 注意力匯聚:Nadaraya-Watson 核回歸 281
10.2.1 生成數據集 282
10.2.2 平均匯聚 282
10.2.3 非參數注意力匯聚 283
10.2.4 帶參數注意力匯聚 284
10.3 注意力評分函式 287
10.3.1 掩蔽softmax操作 288
10.3.2 加性注意力 289
10.3.3 縮放點積注意力 290
10.4 Bahdanau 注意力 291
10.4.1 模型 291
10.4.2 定義注意力解碼器 292
10.4.3 訓練 293
10.5 多頭注意力 295
10.5.1 模型 295
10.5.2 實現 296
10.6 自注意力和位置編碼 298
10.6.1 自注意力 298
10.6.2 比較卷積神經網路、循環神經網路和自注意力 298
10.6.3 位置編碼 299
10.7 Transformer 302
10.7.1 模型 302
10.7.2 基於位置的前饋網路 303
10.7.3 殘差連線和層規範化 304
10.7.4 編碼器 304
10.7.5 解碼器 305
10.7.6 訓練 307
第 11章 最佳化算法 311
11.1 最佳化和深度學習 311
11.2 凸性 315
11.3 梯度下降 322
11.4 隨機梯度下降 329
11.5 小批量隨機梯度下降 334
11.6 動量法 341
11.7 AdaGrad算法 348
11.8 RMSProp算法 353
11.9 Adadelta算法 356
11.10 Adam算法 358
11.11 學習率調度器 361
第 12章 計算性能 369
12.1 編譯器和解釋器 369
12.2 異步計算 372
通過後端異步處理 373
12.3 自動並行 375
12.4 硬體 378
12.5 多GPU訓練 388
12.6 多GPU的簡潔實現 394
12.7 參數伺服器 397
第 13章 計算機視覺 404
13.1 圖像增廣 404
13.2 微調 410
13.4 錨框 417
13.5 多尺度目標檢測 427
13.6 目標檢測數據集 430
13.7 單發多框檢測(SSD) 433
13.8 區域卷積神經網路(R-CNN)系列 441
13.9 語義分割和數據集 445
13.10 轉置卷積 450
13.11 全卷積網路 453
13.12 風格遷移 458
13.13 實戰 Kaggle競賽:圖像分類(CIFAR-10) 464
13.14 實戰Kaggle競賽:狗的品種識別(ImageNet Dogs) 470
第 14章 自然語言處理:預訓練 476
14.1 詞嵌入(word2vec) 477
14.2 近似訓練 480
14.3 用於預訓練詞嵌入的數據集 482
14.4 預訓練word2vec 488
14.5 全局向量的詞嵌入(GloVe) 491
14.6 子詞嵌入 494
14.7 詞的相似度和類比任務 497
14.8 來自Transformer的雙向編碼器表示(BERT) 500
14.9 用於預訓練BERT的數據集 507
14.10 預訓練BERT 512
第 15章 自然語言處理:套用 515
15.1 情感分析及數據集 516
15.2 情感分析:使用循環神經網路 518
15.3 情感分析:使用卷積神經網路 521
15.4 自然語言推斷與數據集 526
15.5 自然語言推斷:使用注意力 530
15.6 針對序列級和詞元級套用微調BERT 535
15.7 自然語言推斷:微調BERT 538
附錄A 深度學習工具 543
A.1 使用Jupyter記事本 543
A.1.1 在本地編輯和運行代碼 543
A.1.2 高級選項 545
A.2 使用Amazon SageMaker 546
A.2.1 註冊 547
A.2.2 創建SageMaker實例 547
A.2.3 運行和停止實例 548
A.2.4 更新Notebook 548
A.3 使用Amazon EC2實例 549
A.3.1 創建和運行EC2實例 549
A.3.2 安裝CUDA 553
A.3.3 安裝庫以運行代碼 553
A.3.4 遠程運行Jupyter記事本 554
A.3.5 關閉未使用的實例 554
A.4 選擇伺服器和GPU 555
A.4.1 選擇伺服器 555
A.4.2 選擇GPU 556
A.5 為本書做貢獻 558
A.5.1 提交微小更改 558
A.5.2 大量文本或代碼修改 559
A.5.3 提交主要更改 559
參考文獻 562

相關詞條

熱門詞條

聯絡我們