圖書內容
《深度學習入門:基於PyTorch和TensorFlow的理論與實現》是一本系統介紹深度學習基礎知識和理論原理的入門書籍。本書從神經網路的基本結構入手,詳細推導了前向傳播與反向傳播的數學公式和理論支持,詳細介紹了如今各種最佳化神經網路的梯度最佳化算法和正則化技巧,給出了在實際套用中的超參數調試和網路訓練的技巧。同時,也介紹了典型的卷積神經網路(CNN)和循環神經網路(RNN)。
除了介紹理論基礎外,本書以Python為基礎,詳細介紹了如今主流的深度學習框架PyTorch和TensorFlow,並分別使用這兩種框架來構建相應的項目,幫助讀者從理論和實踐中提高自己的深度學習知識水平。
圖書目錄
第1章深度學習基礎 1
1.1深度學習概述 1
1.1.1什麼是深度學習 1
1.1.2深度學習的套用場景 3
1.1.3深度學習的發展動力 4
1.1.4深度學習的未來 4
1.2Python入門 5
1.2.1Python簡介 5
1.2.2Python的安裝 6
1.2.3Python基礎知識 6
1.2.4NumPy矩陣運算 11
1.2.5Matplotlib繪圖 15
1.3Anaconda與JupyterNotebook 19
1.3.1Anaconda 19
1.3.2JupyterNotebook 21
第2章PyTorch 26
2.1PyTorch概述 26
2.1.1什麼是PyTorch 26
2.1.2為什麼使用PyTorch 27
2.2PyTorch的安裝 27
2.3張量 30
2.3.1張量的創建 30
2.3.2張量的數學運算 31
2.3.3張量與NumPy數組 32
2.3.4CUDA張量 33
2.4自動求導 33
2.4.1返回值是標量 33
2.4.2返回值是張量 34
2.4.3禁止自動求導 34
2.5torch.nn和torch.optim 35
2.5.1torch.nn 35
2.5.2torch.optim 36
2.6線性回歸 37
2.6.1線性回歸的基本原理 37
2.6.2線性回歸的PyTorch實現 38
第3章TensorFlow 41
3.1TensorFlow概述 41
3.1.1什麼是TensorFlow 41
3.1.2為什麼使用TensorFlow 41
3.2TensorFlow的安裝 42
3.3張量 44
3.3.1張量的創建 44
3.3.2張量的數學運算 44
3.4數據流圖 45
3.5會話 46
3.6線性回歸的TensorFlow實現 48
3.7TensorBoard 51
3.7.1TensorBoard代碼 51
3.7.2TensorBoard顯示 52
第4章神經網路基礎知識 55
4.1感知機 55
4.1.1感知機模型 55
4.1.2感知機與邏輯電路 56
4.2多層感知機 59
4.2.1感知機的局限性 59
4.2.2多層感知機實現異或門邏輯 61
4.3邏輯回歸 62
4.3.1基本原理 62
4.3.2損失函式 63
4.3.3梯度下降算法 65
4.3.4邏輯回歸的Python實現 69
第5章神經網路 74
5.1基本結構 74
5.2前向傳播 75
5.3激活函式 76
5.4反向傳播 80
5.5更新參數 81
5.6初始化 81
5.7神經網路的Python實現 82
5.7.1準備數據 82
5.7.2參數初始化 83
5.7.3前向傳播 84
5.7.4交叉熵損失 85
5.7.5反向傳播 85
5.7.6更新參數 86
5.7.7構建整個神經網路模型 87
5.7.8訓練 88
5.7.9預測 88
第6章深層神經網路 91
6.1深層神經網路的優勢 91
6.2符號標記 93
6.3前向傳播與反向傳播 93
6.4多分類函式Softmax 96
6.4.1Softmax函式的基本原理 96
6.4.2Softmax損失函式 97
6.4.3對Softmax函式求導 97
6.5深層神經網路的Python實現 99
6.5.1準備數據 99
6.5.2參數初始化 101
6.5.3前向傳播 102
6.5.4交叉熵損失 104
6.5.5反向傳播 105
6.5.6更新參數 107
6.5.7構建整個神經網路 108
6.5.8訓練與預測 109
第7章最佳化神經網路 112
7.1正則化 112
7.1.1什麼是過擬合 112
7.1.2L2正則化和L1正則化 115
7.1.3Dropout正則化 117
7.1.4其他正則化技巧 120
7.2梯度最佳化 121
7.2.1批量梯度下降、隨機梯度下降和小批量梯度下降 121
7.2.2動量梯度下降算法 124
7.2.3牛頓動量 126
7.2.4AdaGrad 127
7.2.5RMSprop 127
7.2.6Adam 128
7.2.7學習率衰減 129
7.3網路初始化與超參數調試 130
7.3.1輸入標準化 130
7.3.2權重參數初始化 132
7.3.3批歸一化 134
7.3.4超參數調試 136
7.4模型評估與調試 138
7.4.1模型評估 138
7.4.2訓練集、驗證集和測試集 139
7.4.3偏差與方差 141
7.4.4錯誤分析 141
第8章卷積神經網路 144
8.1為什麼選擇卷積神經網路 144
8.2卷積神經網路的基本結構 145
8.3卷積層 145
8.3.1卷積 146
8.3.2邊緣檢測 147
8.3.3填充 148
8.3.4步幅 149
8.3.5卷積神經網路卷積 150
8.3.6卷積層的作用 153
8.4池化層 153
8.5全連線層 156
8.6卷積神經網路模型 157
8.7典型的卷積神經網路模型 158
8.7.1LeNet-5 159
8.7.2AlexNet 159
8.8卷積神經網路模型的PyTorch實現 160
8.8.1準備數據 160
8.8.2定義卷積神經網路模型 163
8.8.3損失函式與梯度最佳化 164
8.8.4訓練模型 165
8.8.5測試模型 166
8.9卷積神經網路模型的TensorFlow實現 167
8.9.1準備數據 167
8.9.2定義卷積神經網路模型 168
8.9.3損失函式與最佳化算法 170
8.9.4訓練並測試 170
第9章循環神經網路 171
9.1為什麼選擇循環神經網路 171
9.2循環神經網路的基本結構 172
9.3模型參數 173
9.4梯度消失 174
9.5GRU 175
9.6LSTM 176
9.7多種循環神經網路模型 177
9.8循環神經網路模型的PyTorch實現 179
9.8.1準備數據 180
9.8.2定義循環神經網路模型 182
9.8.3損失函式與梯度最佳化 183
9.8.4訓練模型 183
9.8.5測試模型 184
9.9循環神經網路模型的TensorFlow實現 185
9.9.1準備數據 185
9.9.2定義循環神經網路模型 185
9.9.3損失函式與最佳化算法 187
9.9.4訓練並測試 187
後 記 188
參考文獻 189