周志華推薦 | 李沐《動手學深度學習》中文版上線!(免費贈書)

2021-01-08 新智元

新智元報導

編輯:金磊

【新智元導讀】李沐大神《動手學深度學習》中文版發布了!與當前其它深度學習教科書相比,本教科書更加注重交互式的學習體驗。新智元值此之際,與人民郵電出版社合作開展免費贈書活動!

深度學習在短短幾年之內便讓世界大吃一驚。

它非常有力地推動了計算機視覺、自然語言處理、自動語音識別、強化學習和統計建模等多個領域的快速發展。

隨著這些領域的不斷進步,人們現在可以製造自動駕駛的汽車,基於簡訊、郵件甚至電話的自動回復系統,以及在圍棋中擊敗最優秀人類選手的軟體。這些由深度學習帶來的新工具也正產生著廣泛的影響。

與此同時,深度學習也給它的使用者們帶來了獨一無二的挑戰:任何單一的應用都匯集了各學科的知識。

具體來說,應用深度學習需要同時理解:

問題的動機和特點;將大量不同類型神經網絡層通過特定方式組合在一起的模型背後的數學原理;在原始數據上擬合極複雜的深層模型的優化算法;有效訓練模型、避免數值計算陷阱以及充分利用硬體性能所需的工程技能;為解決方案挑選合適的變量(超參數)組合的經驗。

這就為讀者學習深度學習(尤其是在選擇學習書目的過程中)帶來了一定的挑戰。

近期,由MXNet創始人李沐大神、Aston Zhang等人所著的交互式深度學習書籍《動手學深度學習》出版了!

相信很多人早在去年年底便已拜讀過這本書的在線預覽版。而此次出版、線上出售的是中文版教科書!

新智元值此之際,非常榮幸與人民郵電出版社合作開展贈書活動,回饋新智元新老讀者——免費贈送10本《動手學深度學習》!

(具體活動參與、贈送方式見文末)

為什麼要選擇《動手學深度學習》?

目前市面上有關深度學習介紹的書籍大多可分兩類,一類側重方法介紹,另一類側重實踐和深度學習工具的介紹。

本書同時覆蓋方法和實踐

本書不僅從數學的角度闡述深度學習的技術與應用,還包含可運行的代碼,為讀者展示如何在實際中解決問題。

為了給讀者提供一種交互式的學習體驗,《動手學深度學習》不但提供免費的教學視頻和討論區,而且提供可運行的Jupyter記事本文件,充分利用Jupyter記事本能將文字、代碼、公式和圖像統一起來的優勢。

這樣不僅直接將數學公式對應成實際代碼,而且可以修改代碼、觀察結果並及時獲取經驗,從而帶給讀者全新的、交互式的深度學習的學習體驗。

適合哪些人群閱讀?

本書面向希望了解深度學習,特別是對實際使用深度學習感興趣的大學生、工程師和研究人員。

本書不要求讀者有任何深度學習或者機器學習的背景知識,讀者只需具備基本的數學和編程知識,如基礎的線性代數、微分、概率及Python編程知識。

本書的附錄中提供了書中涉及的主要數學知識,供讀者參考。

與其它深度學習教科書相比,有何獨具匠心的特點?

目前,一些有關深度學習的教科書不斷問世,那麼《動手學深度學習》與這些教科書有何區別呢?

與Goodfellow《深度學習》相比

在近期不斷問世的深度學習教科書中,最為著名的要數Goodfellow、Bengio和Courville的《深度學習》。該書梳理了深度學習背後的眾多概念與方法,是一本極為優秀的教材。

然而,這類資源並沒有將概念描述與實際代碼相結合,以至於有時會令讀者對如何實現它們感到毫無頭緒。

與吳恩達的深度學習課程相比

在知乎中,李沐老師表達了與吳恩達的深度學習課程相比的區別:

我們不僅介紹深度學習模型,而且提供簡單易懂的代碼實現。我們不是通過幻燈片來講解,而是通過解讀代碼,實際動手調參數和跑實驗來學習。我們使用中文。不管是教材、直播,還是論壇。(雖然在美國呆了5至6年,事實上我仍然對一邊聽懂各式口音的英文一邊理解內容很費解)。Andrew的課程目前免費版本只能看視頻,而我們不僅僅直播教學,而且提供練習題,提供大家交流的論壇,並鼓勵大家在GitHub上參與到課程的改進。希望能與大家更近距離的進行交流。

除了這些以外,商業課程提供者們雖然製作了眾多的優質資源,但它們的付費門檻依然令不少用戶望而生畏。

包含代碼、數學、網頁、討論的統一資源

我們在2017年7月啟動了寫作這本書的項目。當時我們需要向用戶解釋Apache MXNet在那時的新接口Gluon。不幸的是,我們並沒有找到任何一個資源可以同時滿足以下幾點需求:

包含較新的方法和應用,並不斷更新;廣泛覆蓋現代深度學習技術並具有一定的技術深度;既是嚴謹的教科書,又是包含可運行代碼的生動的教程。

那時,我們在博客和GitHub上找到了大量的演示特定深度學習框架(例如用TensorFlow進行數值計算)或實現特定模型(例如AlexNet、ResNet等)的示例代碼。這些示例代碼的一大價值在於提供了教科書或論文往往省略的實現細節,比如數據的處理和運算的高效率實現。如果不了解這些,即使能將算法倒背如流,也難以將算法應用到自己的項目中去。此外,這些示例代碼還使得用戶能通過觀察修改代碼所導致的結果變化而快速驗證想法、積累經驗。因此,我們堅信動手實踐對於學習深度學習的重要性。然而可惜的是,這些示例代碼通常側重於如何實現給定的方法,卻忽略了有關算法設計的探究或者實現細節的解釋。雖然在像Distill這樣的網站和某些博客上出現了一些有關算法設計和實現細節的討論,但它們常常缺少示例代碼,並通常僅覆蓋深度學習的一小部分。

另外,我們欣喜地看到了一些有關深度學習的教科書不斷問世,其中最著名的要數Goodfellow、Bengio和Courville的《深度學習》。該書梳理了深度學習背後的眾多概念與方法,是一本極為優秀的教材。然而,這類資源並沒有將概念描述與實際代碼相結合,以至於有時會令讀者對如何實現它們感到毫無頭緒。除了這些以外,商業課程提供者們雖然製作了眾多的優質資源,但它們的付費門檻依然令不少用戶望而生畏。

正因為這樣,深度學習用戶,尤其是初學者,往往不得不參考來源不同的多種資料。例如,通過教科書或者論文來掌握算法及其相關數學知識,閱讀線上文檔學習深度學習框架的使用方法,然後尋找感興趣的算法在這個框架上的實現並摸索如何將它應用到自己的項目中去。如果你正親身經歷這一過程,你可能會感到痛苦:不同來源的資料有時難以相互一一對應,即便能夠對應也可能需要花費大量的精力。例如,我們需要將某篇論文公式中的數學變量與某段網上實現中的程序變量一一對應,並在代碼中找到論文可能沒交代清楚的實現細節,甚至要為運行不同的代碼安裝不同的運行環境。

針對以上存在的痛點,我們正在著手創建一個為實現以下目標的統一資源:

所有人均可在網上免費獲取;提供足夠的技術深度,從而幫助讀者實際成為深度學習應用科學家:既理解數學原理,又能夠實現並不斷改進方法;包含可運行的代碼,為讀者展示如何在實際中解決問題。這樣不僅直接將數學公式對應成實際代碼,而且可以修改代碼、觀察結果並及時獲取經驗;允許我們和整個社區不斷快速迭代內容,從而緊跟仍在高速發展的深度學習領域;

由包含有關技術細節問答的論壇作為補充,使大家可以相互答疑並交換經驗。

這些目標往往互有衝突:公式、定理和引用最容易通過LaTeX進行管理和展示,代碼自然應該用簡單易懂的Python描述,而網頁本身應該是一堆HTML及配套的CSS和JavaScript。此外,我們希望這個資源可以作為可執行代碼、實體書以及網站。然而,目前並沒有任何工具可以完美地滿足以上所有需求。

因此,我們不得不自己來集成這樣的一個工作流。我們決定在GitHub上分享原始碼並允許提交編輯,通過Jupyter記事本來整合代碼、公式、文本、圖片等,使用Sphinx作為渲染引擎來生成不同格式的輸出,並使用Discourse作為論壇。雖然我們的系統尚未完善,但這些選擇在互有衝突的目標之間取得了較好的折中。這很可能是使用這種集成工作流發布的第一本書。

名家推薦

來自學術界

這是一本及時且引人入勝的書。它不僅提供了深度學習原理的全面概述,還提供了具有編程代碼的詳細算法,此外,還提供了計算機視覺和自然語言處理中有關深度學習的最新介紹。如果你想鑽研深度學習,請研讀這本書!

——韓家煒,ACM 院士、IEEE 院士、美國伊利諾伊大學香檳分校計算機系Abel Bliss教授

這是對機器學習文獻的一個很受歡迎的補充,重點是通過集成Jupyter 記事本實現的動手經驗。深度學習的學生應該能體會到,這對於熟練掌握這一領域是非常寶貴的。

——Bernhard Schlkopf,ACM 院士、德國國家科學院院士、德國馬克斯 普朗克研究所智能系統院院長

這本書基於MXNet 框架來介紹深度學習技術,書中代碼可謂「所學即所用」,為喜歡通過Python 代碼進行學習的讀者了解、接觸深度學習技術提供了很大的便利。

——周志華,ACM 院士、IEEE 院士、AAAS 院士、南京大學計算機科學與技術系主任

這是一本基於Apache MXNet 的深度學習實戰書籍,可以幫助讀者快速上手並掌握使用深度學習工具的基本技能。本書的幾個作者都在機器學習領域有著非常豐富的經驗。他們不光有大量的工業界實踐經驗,也有非常高的學術成就,所以對機器學習領域的前沿算法理解深刻。這使得作者們在提供優質代碼的同時,也可以把最前沿的算法和概念深入淺出地介紹給讀者。這本書可以幫助深度學習實踐者快速提升自己的能力。

——張潼,香港科技大學計算機科學與數學教授

來自工業界

雖然業界已經有不錯的深度學習方面的書籍,但都不夠緊密結合工業界的應用實踐。 我認為《動手學深度學習》是最適合工業界研發工程師學習的,因為這本書把算法理論、應用場景、代碼實例都完美地聯繫在一起,引導讀者把理論學習和應用實踐緊密結合,知行合一,在動手中學習,在體會和領會中不斷深化對深度學習的理解。 因此我毫無保留地向廣大的讀者強烈推薦《動手學深度學習》。

——餘凱,地平線公司創始人、執行長

強烈推薦這本書!它其實遠不只是一本書:它不僅講解深度學習背後的數學原理,更是一個編程工作檯與記事本,讓讀者可以一邊動手學習一邊收到反饋,它還是個開源社區平臺,讓大家可以交流。作為在AI 學術界和工業界都長期工作過的人,我特別讚賞這種手腦一體的學習方式,既能增強實踐能力,又可以在解決問題中鍛鍊獨立思考和批判性思維。

作者們是算法工程兼強的業界翹楚,他們能奉獻出這樣的一本好的開源書,為他們點讚!

——漆遠,螞蟻金服副總裁、首席人工智慧科學家

作者簡介

阿斯頓·張(Aston Zhang)

亞馬遜應用科學家,美國伊利諾伊大學香檳分校計算機科學博士,統計學和計算機科學雙碩士。他專注於機器學習的研究,並在數個頂級學術會議發表過論文。他擔任過NeurIPS、ICML、KDD、WWW、WSDM、SIGIR、AAAI 等學術會議的程序委員或審稿人以及Frontiers in Big Data 期刊的編委。

李沐(Mu Li)

亞馬遜首席科學家(Principal Scientist),加州大學伯克利分校客座助理教授,美國卡內基梅隆大學計算機系博士。他專注於分布式系統和機器學習算法的研究。他是深度學習框架MXNet 的作者之一。他曾任機器學習創業公司Marianas Labs 的CTO 和百度深度學習研究院的主任研發架構師。他在理論、機器學習、應用和作業系統等多個領域的頂級學術會議(包括FOCS、ICML、NeurIPS、AISTATS、CVPR、KDD 、WSDM、OSDI)上發表過論文。

[德] 亞歷山大 J. 斯莫拉(Alexander J. Smola)

亞馬遜副總裁/ 傑出科學家,德國柏林工業大學計算機科學博士。他曾在澳大利亞國立大學、美國加州大學伯克利分校和卡內基梅隆大學任教。他發表了超過200 篇學術論文,並著有5 本書,其論文及書被引用超過10 萬次。他的研究興趣包括深度學習、貝葉斯非參數、核方法、統計建模和可擴展算法。

[美] 扎卡裡 C. 立頓(Zachary C. Lipton)

亞馬遜副總裁/ 傑出科學家,德國柏林工業大學計算機科學博士。他曾在澳大利亞國立大學、美國加州大學伯克利分校和卡內基梅隆大學任教。他發表了超過200 篇學術論文,並著有5 本書,其論文及書被引用超過10 萬次。他的研究興趣包括深度學習、貝葉斯非參數、核方法、統計建模和可擴展算法。

《動手學深度學習》目錄

對本書的讚譽

前言

如何使用本書

資源與支持

主要符號表

第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

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

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

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

附錄DGPU 購買指南 388

附錄E如何為本書做貢獻 391

附錄Fd2lzh 包索引 395

附錄G中英文術語對照表 397

參考文獻402

索引407

贈書方式

讀者在關注新智元微信公眾號後,在本篇文章中留言,我們將在其中挑選點讚最高的留言Top 10,並贈送書籍。

活動截止日期:2019年6月11日24:00點。

註:若是在活動截止日期後兩天內(即6月13日24:00),無法取得用戶回復或聯繫,將按照留言點讚排名順延。

更多閱讀:

華為鴻蒙系統界面網上曝光,谷歌緊急發聲:願與華為繼續合作

相關焦點

  • 李沐《動手學深度學習》重磅更新!新增PyTorch和TensorFlow實現,還有中文版
    李沐老師的《動手學深度學習》已經有Pytorch和TensorFlow的實現了,並且有了中文版。網址:http://d2l.ai/簡介李沐老師的《動手學深度學習》自一年前發布以來廣受歡迎,即使所有內容都提供了免費的網頁和PDF版,仍然有大量讀者購買實體書。實體版曾一度在計算機類新書裡排名前三。
  • 李沐深度學習經典英文版更新:伯克利大學教材《動手學深度學習》
    《動手學深度學習》英文版更新了! 這就為讀者學習深度學習(尤其是在選擇學習書目的過程中)帶來了一定的挑戰。 要論深度學習的經典教材,李沐等合著的《Dive into Deep Learning》絕對是站在最前排的,中文版《動手學深度學習》。 本書同時覆蓋深度學習的方法和實踐,主要面向在校大學生、技術人員和研究人員。
  • 全新版本,李沐《動手學深度學習》TF2.0版本來了
    還記得李沐老師的《動手學深度學習》嗎?近日,該書的 TF2.0 代碼復現項目來了。
  • 李沐《動手學深度學習》+ TF2.0 開源項目來了,不容錯過!
    點擊上方「AI有道」,選擇「星標」公眾號重磅乾貨,第一時間送達還記得李沐老師的《動
  • 實戰入門深度學習,李沐中文新書贈送
    2018 年底,機器之心介紹了李沐等人開源的中文書籍《動手學深度學習》。
  • 從ACM班、百度到亞馬遜,深度學習大牛李沐的開掛人生
    值得注意的是,這個由 DMLC(Distributed Machine Learning Community)打造的深度學習框架,創建者都是中國人,以陳天奇、李沐、解浚源等為代表。現在,包括 AWS 在內的很多企業都將 MXNet 作為主流支持框架。作為深度學習「大神」,李沐的開掛人生經歷並不被所有人熟知。為了加深大家對李沐的了解,我們對其學習、職業和研究生涯做了一個簡單的總結。
  • 深度學習界的「米其林」:這次他真的來了!| 李沐技術分享會
    暫且不說,你的孩子是否贏在起跑線,很多想入門的開發者卻還猶豫在深度學習「起跑線」的邊緣。現如今,我們正處在一個巨變的時代,人工智慧已經成為了這個時代的主題,而機器學習技術尤其是深度學習技術的興起,必然是人工智慧繁榮大潮的重要推動力。  但深度學習的涉及面較廣,對數學的要求比較高,想學也不太敢學,生怕認真學了卻沒學會,想必這是許多同學們入門深度學習的真實心境。
  • 李沐:一起「剁手」之GPU購買指南
    深度學習訓練通常需要大量的計算資源。GPU目前是深度學習最常使用的計算加速硬體。
  • MXNet專欄 | 李沐:深度學習·煉丹入門
    機器之心授權轉載作者:李沐幾日前,機器之心經授權發表了李沐在知乎上回答的為什麼 MXNet 不火的一篇文章。最近,他又寫了一篇關於深度學習入門的文章,用詼諧的語言(對比煉丹)講解深度學習。此外,在本文中李沐也提到自己現在到了亞馬遜,要大力發展 MXNet 了,這是不是意味著幾大深度學習框架的格局再起變化呢?
  • 李沐團隊半年離開六人,MxNet是否英雄落幕?
    下面是幾個我們公開的項目:《動手學深度學習》最早是作為MXNet文檔來做的,現在已經被包括cmu/stanford/berkeley/mit等近100所高校作為教材使用。Nvidia創始人Jensen特意為此寫了推薦語。
  • 李沐團隊人員離職,MxNet 英雄落幕?賈揚清:關鍵能否解決新痛點
    下面是幾個我們公開的項目:《動手學深度學習》最早是作為MXNet文檔來做的,現在已經被包括cmu/stanford/berkeley/mit等近100所高校作為教材使用。Nvidia創始人Jensen特意為此寫了推薦語。
  • 李沐團隊半年離開六人,MxNet是否英雄落幕?賈揚清:關鍵能否解決新...
    下面是幾個我們公開的項目:《動手學深度學習》最早是作為MXNet文檔來做的,現在已經被包括cmu/stanford/berkeley/mit等近100所高校作為教材使用。Nvidia創始人Jensen特意為此寫了推薦語。
  • 贈書與推薦|《猶太人三千年簡史》
    終於,我們等來了這本暢銷海外20多年的"小書"《猶太人三千年簡史》中文版看過的人都說這是一本非常適合了解猶太人歷史的入門讀物書中18副極具歷史料價值的歷史地圖和40幅極富現場感與時代意味的圖片、豐富詳細的大事年表及相關補充材料,都將帶領讀者們深度了解猶太人這三千年所經歷的生活與歷史全貌,以及他們是如何走到今天的。為了優化中國讀者的閱讀體驗,譯者宋立宏先生特意邀請謝德林教授更新了書後的"猶太史書目",其中有中文譯本的書,均已附上相關出版信息,方便感興趣的朋友繼續拓展閱讀。
  • 亞馬遜首席科學家李沐:構建深度學習開源生態的努力和思考
    會議第二天,亞馬遜首席科學家李沐在主題為「當 AI 在雲端生長」的 AWS 論壇上發表了的演講。以下為 InfoQ 根據嘉賓演講進行的內容整理。 內容未經本人確認,由 InfoQ 依據現場視頻進行整理,以下為李沐的演講全文整理。
  • 李沐:小學五年級開始學TensorFlow太晚了!(一本正經曬娃帖)
    作者:李沐編輯:大明【新智元導讀】小學五年級報課外班學TensorFlow怎麼樣?答案是:有點晚了!這是卡內基梅隆大學博士、亞馬遜AWS首席科學家李沐給出的答案。工作閒暇之餘,這位網友口中的「沐神」也忍不住在知乎上皮了一把,順便當了一回 「曬娃狂魔」。
  • 中文版上線了
    為助力中國皮膚病學發展,加強中國皮膚病臨床和世界前沿的交流,在AAD的大力支持下,富博思公司引入JAAD中文版並開發了皮科時訊論壇APP,使中國皮膚科醫師可以通過APP隨時隨地免費閱讀皮膚病學臨床最新文章,實時關注全球皮膚病學臨床最新進展,在線觀看皮科權威專家講座。
  • YouTube中文版免費下載
    YouTube中文版免費下載簡介:YouTube是一款全球視頻app軟體應用,YouTube app下載海量視頻實時觀看,最新話題內容豐富頻道隨時分享,在線音樂學習資料,感興趣的小夥伴快來下載youtube體驗吧。
  • 李沐大神深度學習課程第一篇重磅推出:機器學習簡介
    不久之前,吳恩達推出了自己的深度學習在線課,收穫了十分熱烈的反響,該課程也已引入中國方便國內開發者學習。