深度學習精粹與PyTorch實踐 版權信息
- ISBN:9787302669111
- 條形碼:9787302669111 ; 978-7-302-66911-1
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
深度學習精粹與PyTorch實踐 本書特色
掌握深度學習存在一定的門檻。首先要求有一定的數理統計基礎,其次需要很強的編程能力。對于應用領域的研究人員而言,除了要具備這兩個條件,還必須擁有扎實的專業領域知識,這些要求提高了深度學習的學習門檻和成本,很多人不得已止步于該領域的學習和應用深度學習解決實際問題。畢竟,僅深度學習涉及的理論和改進模型便多如牛毛,要在短時間內掌握絕非易事。
總而言之,學習深度學習存在以下3個方面的困難:①深度學習涉及的理論難度大,讓很多人望而生畏;②深度學習框架繁多,上手難度較大;③理論與代碼實踐結合困難,理論和實踐脫節嚴重。盡管深度學習存在重重壁壘,但是它前進的步伐并未因此而放緩,各種新的機器學習方法(元學習、遷移學習和集成學習等)駢興錯出,讓人應接不暇,不少人對此深感焦慮和恐慌。
那么,有沒有克服這些困難的方法呢?當然有。《深度學習精粹與PyTorch實踐》正是醫治這些焦慮的“良方”,《深度學習精粹與PyTorch實踐》不但將深度學習理論、工具和實戰相結合,還深入介紹了深度學習基本理論和高級神經網絡,包括*常見的卷積神經網絡、循環神經網絡和對抗神經網絡,以及近幾年流行的Transformer和遷移學習等機器學習方法。
深度學習精粹與PyTorch實踐 內容簡介
深度學習絕非不可窺探的黑箱!深入理解其模型和算法的實際運作機制,是駕馭并優化結果的關鍵。你無需成為數學專家或資深數據科學家,同樣能夠掌握深度學習系統內部的工作原理。本書旨在通過深入淺出的方式,為你揭示這些原理,讓你在理解和解釋自己的工作時更加自信與從容。
《深度學習精粹與PyTorch實踐》以淺顯易懂的方式揭示了深度學習算法的內部運作機制,即使是機器學習初學者也能輕松理解。本書通過平實的語言解析、詳盡的代碼注釋,以及數十個基于PyTorch框架的實戰示例,逐步引導你探索深度學習的核心概念與實用工具。本書避免了復雜的數學公式堆砌,而是采用直觀易懂的方式闡述每種神經網絡類型的運作邏輯。更令人興奮的是,書中提供的所有解決方案均可在現有的GPU硬件上順暢運行!
主要內容
·選擇正確的深度學習組件
·訓練和評估深度學習模型
·微調深度學習模型以實現性能*大化了解深度學習術語
深度學習精粹與PyTorch實踐 目錄
第1章 學習的機制 3
1.1 Colab入門 7
1.2 張量 7
1.3 自動微分 15
1.3.1 使用導數將損失降至*低 17
1.3.2 使用自動微分計算導數 18
1.3.3 知識整合:使用導數*小化函數 19
1.4 優化參數 21
1.5 加載數據集對象 23
1.6 練習 26
1.7 小結 27
第2章 全連接網絡 29
2.1 優化神經網絡 30
2.1.1 訓練神經網絡的符號 30
2.1.2 建立線性回歸模型 32
2.1.3 訓練循環 32
2.1.4 定義數據集 34
2.1.5 定義模型 36
2.1.6 定義損失函數 37
2.1.7 知識整合:在數據上訓練線性回歸模型 38
2.2 構建**個神經網絡 40
2.2.1 全連接網絡的符號 40
2.2.2 PyTorch中的全連接網絡 41
2.2.3 增加非線性 43
2.3 分類問題 46
2.3.1 分類簡單問題 46
2.3.2 分類損失函數 48
2.3.3 訓練分類網絡 51
2.4 更好地訓練代碼 53
2.4.1 自定義指標 53
2.4.2 訓練和測試階段 54
2.4.3 保存檢查點 55
2.4.4 知識整合:更好的模型訓練函數 56
2.5 批量訓練 61
2.6 練習 64
2.7 小結 65
第3章 卷積神經網絡 67
3.1 空間結構先驗信念 68
3.2 什么是卷積 74
3.2.1 一維卷積 75
3.2.2 二維卷積 76
3.2.3 填充 77
3.2.4 權重共享 78
3.3 卷積如何有益于圖像處理 79
3.4 付諸實踐:我們的**個CNN 82
3.4.1 使用多個過濾器生成卷積層 83
3.4.2 每層使用多個過濾器 84
3.4.3 通過展平將卷積層與線性層混合 84
3.4.4 **個CNN的PyTorch代碼 86
3.5 添加池化以減少對象移動 88
3.6 數據增強 93
3.7 練習 97
3.8 小結 97
第4章 循環神經網絡 99
4.1 作為權重共享的循環神經網絡 100
4.1.1 全連接網絡的權重共享 101
4.1.2 隨時間共享權重 105
4.2 在PyTorch中實現RNN 107
4.2.1 一個簡單的序列分類問題 108
4.2.2 嵌入層 112
4.2.3 使用*后一個時間步長進行預測 114
4.3 通過打包減短訓練時間 119
4.3.1 填充和打包 120
4.3.2 可打包嵌入層 122
4.3.3 訓練批量RNN 122
4.3.4 同時打包和解包輸入 124
4.4 更為復雜的RNN 125
4.4.1 多層 126
4.4.2 雙向RNN 127
4.5 練習 129
4.6 小結 130
第5章 現代訓練技術 131
5.1 梯度下降分兩部分進行 132
5.1.1 添加學習率調度器 133
5.1.2 添加優化器 134
5.1.3 實現優化器和調度器 135
5.2 學習率調度器 139
5.2.1 指數衰減:平滑不穩定訓練 140
5.2.2 步長下降調整:更平滑 143
5.2.3 余弦退火:準確率更高但穩定性較差 144
5.2.4 驗證平臺:基于數據的調整 147
5.2.5 比較調度器 151
5.3 更好地利用梯度 152
5.3.1 SGD與動量:適應梯度一致性 153
5.3.2 Adam:增加動量變化 159
5.3.3 梯度修剪:避免梯度爆炸 162
5.4 使用Optuna進行超參數優化 164
5.4.1 Optuna 164
5.4.2 使用PyTorch的Optuna 167
5.4.3 使用Optuna修剪試驗 171
5.5 練習 173
5.6 小結 174
第6章 通用設計構建塊 175
6.1 更好的激活函數 179
6.1.1 梯度消失 179
6.1.2 校正線性單位(ReLU):避免梯度消失 181
6.1.3 使用LeakyReLU激活訓練 184
6.2 歸一化層:神奇地促進收斂 186
6.2.1 歸一化層用于何處 187
6.2.2 批量歸一化 188
6.2.3 使用批量歸一化進行訓練 190
6.2.4 層歸一化 192
6.2.5 使用層歸一化進行訓練 192
6.2.6 使用哪個歸一化層 195
6.2.7 層歸一化的特點 195
6.3 跳躍連接:網絡設計模式 198
6.3.1 實施全連接的跳躍 200
6.3.2 實現卷積跳躍 203
6.4 1×1卷積:在通道中共享和重塑信息 206
6.5 殘差連接 208
6.5.1 殘差塊 208
6.5.2 實現殘差塊 210
6.5.3 殘差瓶頸 210
6.5.4 實現殘差瓶頸 212
6.6 長短期記憶網絡RNN 214
6.6.1 RNN:快速回顧 214
6.6.2 LSTM和門控機制 215
6.6.3 LSTM訓練 217
6.7 練習 220
6.8 小結 220
第Ⅱ部分 構建高級網絡
第7章 自動編碼和自監督 225
7.1 自動編碼的工作原理 227
7.1.1 主成分分析是自動編碼器的瓶頸 228
7.1.2 實現PCA 229
7.1.3 使用PyTorch實現PCA 232
7.1.4 可視化PCA結果 233
7.1.5 簡單的非線性PCA 235
7.2 設計自動編碼神經網絡 238
7.2.1 實現自動編碼器 239
7.2.2 可視化自動編碼器結果 240
7.3 更大的自動編碼器 242
7.4 自動編碼器去噪 247
7.5 時間序列和序列的自回歸模型 252
7.5.1 實現char-RNN自回歸文本模型 254
7.5.2 自回歸模型是生成模型 261
7.5.3 隨著溫度調整采樣 263
7.5.4 更快地采樣 266
7.6 練習 268
7.7 小結 269
第8章 目標檢測 271
8.1 圖像分割 272
8.1.1 核檢測:加載數據 273
8.1.2 在PyTorch中表示圖像分割問題 275
8.1.3 建立**個圖像分割網絡 277
8.2 用于擴展圖像大小的轉置卷積 279
8.3 U-Net:查看精細和粗糙的細節 284
8.4 帶邊界框的目標檢測 289
8.4.1 Faster R-CNN 290
8.4.2 在PyTorch中實現Faster R-CNN 295
8.4.3 抑制重疊框 303
8.5 使用預訓練的Faster R-CNN 305
8.6 練習 307
8.7 小結 308
第9章 生成對抗網絡 309
9.1 理解生成對抗網絡 310
9.1.1 損失計算 312
9.1.2 GAN博弈 314
9.1.3 實現**個GAN 316
9.2 模式崩潰 324
9.3 Wasserstein GAN:緩解模式崩潰 327
9.3.1 WGAN判別器損失 327
9.3.2 WGAN生成器損失 328
9.3.3 實現WGAN 329
9.4 卷積GAN 334
9.4.1 設計卷積生成器 334
9.4.2 設計卷積判別器 336
9.5 條件GAN 339
9.5.1 實現條件GAN 340
9.5.2 訓練條件GAN 341
9.5.3 使用條件GAN控制生成 342
9.6 GAN潛在空間概覽 343
9.6.1 從Hub獲取模型 343
9.6.2 對GAN輸出進行插值 344
9.6.3 標記潛在維度 346
9.7 深度學習中的倫理問題 349
9.8 練習 350
9.9 小結 351
第10章 注意力機制 353
10.1 注意力機制學習相對輸入重要性 354
10.1.1 訓練基線模型 355
10.1.2 注意力機制 357
10.1.3 實現簡單的注意力機制 359
10.2 添加上下文 363
10.2.1 點分數 365
10.2.2 總分數 366
10.2.3 附加注意力 367
10.2.4 計算注意力權重 369
10.3 知識整合:一種有上下文的完整注意力機制 371
10.4 練習 375
10.5 小結 376
第11章 序列到序列 377
11.1 序列到序列作為一種去噪自動編碼器 378
11.2 機器翻譯和數據加載器 380
11.3 序列到序列的輸入 385
11.3.1 自回歸法 386
11.3.2 教師強制法 386
11.3.3 教師強制法與自回歸法的比較 387
11.4 序列到序列注意力 387
11.4.1 實現序列到序列 389
11.4.2 訓練和評估 394
11.5 練習 400
11.6 小結 400
第12章 RNN的網絡設計替代方案 401
12.1 TorchText:處理文本問題的工具 402
12.1.1 安裝TorchText 402
12.1.2 在TorchText中加載數據集 402
12.1.3 定義基線模型 405
12.2 隨時間平均嵌入 406
12.3 隨時間池化和一維CNN 413
12.4 位置嵌入為任何模型添加序列信息 417
12.4.1 實現位置編碼模塊 421
12.4.2 定義位置編碼模型 422
12.5 Transformer:大數據的大模型 425
12.5.1 多頭注意力 425
12.5.2 transformer模塊 430
12.6 練習 433
12.7 小結 434
第13章 遷移學習 435
13.1 遷移模型參數 436
13.2 遷移學習和使用CNN進行訓練 440
13.2.1 調整預訓練網絡 442
13.2.2 預處理預訓練的ResNet 446
13.2.3 熱啟動訓練 447
13.2.4 使用凍結權重進行訓練 449
13.3 用較少的標簽學習 451
13.4 文本預訓練 454
13.4.1 帶有Hugging Face庫的transformer 455
13.4.2 無梯度的凍結權重 457
13.5 練習 459
13.6 小結 460
第14章 高級構件 461
14.1 池化問題 462
14.1.1 鋸齒損害了平移不變性 464
14.1.2 通過模糊實現抗鋸齒 469
14.1.3 應用抗鋸齒池化 473
14.2 改進后的殘差塊 476
14.2.1 有效深度 477
14.2.2 實現ReZero 478
14.3 混合訓練減少過擬合 481
14.3.1 選擇混合率 483
14.3.2 實現MixUp 484
14.4 練習 489
14.5 小結 489
附錄A 設置Colab 491
展開全部
深度學習精粹與PyTorch實踐 作者簡介
郭濤,Turing Lab發起人,主要從事模式識別與人工智能、智能機器人技術、軟件工程技術和地理人工智能(GeoAI)、時空大數據挖掘與分析等前沿交叉領域研究。曾翻譯過《復雜性思考:復雜性科學和計算模型(第2版)》《神經網絡設計與實現》等多本圖書。