《Python深度學習入門:從零構建CNN和RNN》是人民郵電出版社出版的圖書,作者是塞思·韋德曼(Seth Weidman)
基本介紹
- 作者:塞思·韋德曼(Seth Weidman)
- 出版時間:2021年2月
- 出版社:人民郵電出版社
- 頁數:212 頁
- ISBN:9787115555649
- 定價:79 元
- 裝幀:平裝
- 原作品:Deep Learning from Scratch: Building with Python from First Principles
內容簡介,圖書目錄,作者簡介,
內容簡介
本書全面介紹了深度學習知識,藉助數學公式、示意圖和代碼,旨在幫助讀者從數學層面、概念層面和套用層面理解神經網路。讀者可以跟隨本書構建和訓練神經網路模型,從而解決實際問題。另外,本書著重介紹卷積神經網路和循環神經網路,並提供PyTorch開源神經網路庫的使用方法,有助於學習構建更高級的神經網路架構。
圖書目錄
第 1章 基本概念 1
1.1 函式 2
1.2 導數 6
1.3 嵌套函式 8
1.4 鏈式法則 9
1.5 示例介紹 12
1.6 多輸入函式 15
1.7 多輸入函式的導數 16
1.8 多向量輸入函式 17
1.9 基於已有特徵創建新特徵 18
1.10 多向量輸入函式的導數 20
1.11 向量函式及其導數:再進一步 22
1.12 包含兩個二維矩陣輸入的計算圖 25
1.13 有趣的部分:後向傳遞 28
1.14 小結 34
第 2章 基本原理 35
2.1 監督學習概述 36
2.2 監督學習模型 38
2.3 線性回歸 38
2.3.1 線性回歸:示意圖 39
2.3.2 線性回歸:更有用的示意圖和數學 41
2.3.3 加入截距項 41
2.3.4 線性回歸:代碼 42
2.4 訓練模型 42
2.4.1 計算梯度:示意圖 43
2.4.2 計算梯度:數學和一些代碼 43
2.4.3 計算梯度:完整的代碼 44
2.4.4 使用梯度訓練模型 45
2.5 評估模型:訓練集與測試集 46
2.6 評估模型:代碼 46
2.7 從零開始構建神經網路 49
2.7.1 步驟1:一系列線性回歸 49
2.7.2 步驟2:一個非線性函式 50
2.7.3 步驟3:另一個線性回歸 50
2.7.4 示意圖 51
2.7.5 代碼 52
2.7.6 神經網路:後向傳遞 53
2.8 訓練和評估第 一個神經網路 55
2.9 小結 57
第3章 從零開始深度學習 58
3.1 定義深度學習 58
3.2 神經網路的構成要素:運算 59
3.2.1 示意圖 60
3.2.2 代碼 61
3.3 神經網路的構成要素:層 62
3.4 在構成要素之上構建新的要素 64
3.4.1 層的藍圖 66
3.4.2 稠密層 68
3.5 NeuralNetwork類和其他類 69
3.5.1 示意圖 70
3.5.2 代碼 70
3.5.3 Loss類 71
3.6 從零開始構建深度學習模型 72
3.6.1 實現批量訓練 73
3.6.2 NeuralNetwork: 代碼 73
3.7 最佳化器和訓練器 75
3.7.1 最佳化器 76
3.7.2 訓練器 77
3.8 整合 79
3.9 小結與展望 80
第4章 擴展 81
4.1 關於神經網路的一些直覺 82
4.2 softmax交叉熵損失函式 84
4.2.1 組件1:softmax函式 84
4.2.2 組件2:交叉熵損失 85
4.2.3 關於激活函式的注意事項 87
4.3 實驗 90
4.3.1 數據預處理 90
4.3.2 模型 91
4.3.3 實驗:softmax交叉熵損失函式 92
4.4 動量 92
4.4.1 理解動量 93
4.4.2 在Optimizer類中實現動量 93
4.4.3 實驗:帶有動量的隨機梯度下降 94
4.5 學習率衰減 95
4.5.1 學習率衰減的類型 95
4.5.2 實驗:學習率衰減 97
4.6 權重初始化 97
4.6.1 數學和代碼 99
4.6.2 實驗:權重初始化 100
4.7 dropout 100
4.7.1 定義 100
4.7.2 實現 101
4.7.3 實驗:dropout 102
4.8 小結 104
第5章 CNN 105
5.1 神經網路與表征學習 105
5.1.1 針對圖像數據的不同架構 106
5.1.2 卷積運算 107
5.1.3 多通道卷積運算 108
5.2 卷積層 109
5.2.1 實現意義 110
5.2.2 卷積層與全連線層的區別 111
5.2.3 利用卷積層進行預測:Flatten層 111
5.2.4 池化層 112
5.3 實現多通道卷積運算 114
5.3.1 前向傳遞 114
5.3.2 後向傳遞 117
5.3.3 批處理 120
5.3.4 二維卷積 121
5.3.5 最後一個元素:通道 123
5.4 使用多通道卷積運算訓練CNN 126
5.4.1 Flatten運算 126
5.4.2 完整的Conv2D層 127
5.4.3 實驗 128
5.5 小結 129
第6章 RNN 130
6.1 關鍵限制:處理分支 131
6.2 自動微分 132
6.3 RNN的動機 137
6.4 RNN簡介 138
6.4.1 RNN的第 一個類:RNNLayer 139
6.4.2 RNN的第二個類:RNNNode 140
6.4.3 整合RNNNode類和RNNLayer類 140
6.4.4 後向傳遞 142
6.5 RNN:代碼 143
6.5.1 RNNLayer類 144
6.5.2 RNNNode類的基本元素 147
6.5.3 vanilla RNNNode類 148
6.5.4 vanilla RNNNode類的局限性 150
6.5.5 GRUNode類 151
6.5.6 LSTMNode類 154
6.5.7 基於字元級RNN語言模型的數據表示 156
6.5.8 其他語言建模任務 157
6.5.9 組合RNNLayer類的變體 158
6.5.10 將全部內容整合在一起 158
6.6 小結 159
第7章 PyTorch 160
7.1 PyTorch Tensor 160
7.2 使用PyTorch進行深度學習 161
7.2.1 PyTorch元素:Model類及其Layer類 162
7.2.2 使用PyTorch實現神經網路基本要素:DenseLayer類 163
7.2.3 示例:基於PyTorch的波士頓房價模型 164
7.2.4 PyTorch元素:Optimizer類和Loss類 165
7.2.5 PyTorch元素:Trainer類 165
7.2.6 PyTorch最佳化學習技術 168
7.3 PyTorch中的CNN 168
7.4 PyTorch中的LSTM 173
7.5 後記:通過自編碼器進行無監督學習 175
7.5.1 表征學習 175
7.5.2 應對無標籤場景的方法 176
7.5.3 在PyTorch中實現自編碼器 176
7.5.4 更強大的無監督學習測試及解決方案 181
7.6 小結 182
附錄 深入探討 183
關於作者 192
關於封面 192
作者簡介
塞思·韋德曼(Seth Weidman),SentiLink公司數據科學家。他曾在Facebook公司從事數據科學工作,並為多家企業開發了深度學習培訓課程。塞思善於通過簡單明了的方式解釋複雜的概念。除了講授課程,他還熱衷於技術寫作,並撰寫了大量PyTorch教程。