|
-- 會員 / 註冊 --
|
|
|
|
動手學深度學習 全彩精裝版 ( 簡體 字) |
作者:阿斯頓·張(Aston Zhang) 李沐(Mu Li)[美] 扎卡里·C. 立頓(Zachary C. Lipton)[德] 亞歷山大·J. 斯莫拉(Alexander J. Smola) | 類別:1. -> 程式設計 -> 深度學習 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 51298 詢問書籍請說出此書號!【缺書】 NT售價: 845 元 |
出版日:6/1/2019 |
頁數:412 |
光碟數:0 |
|
站長推薦: |
印刷:全彩印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115505835 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書旨在向讀者交付有關深度學習的交互式學習體驗。書中不僅闡述深度學習的算法原理,還演示它們的實現和運行。與傳統圖書不同,本書的每一節都是一個可以下載并運行的 Jupyter記事本,它將文字、公式、圖像、代碼和運行結果結合在了一起。此外,讀者還可以訪問并參與書中內容的討論。 全書的內容分為3個部分:第一部分介紹深度學習的背景,提供預備知識,并包括深度學習最基礎的概念和技術;第二部分描述深度學習計算的重要組成部分,還解釋近年來令深度學習在多個領域大獲成功的卷積神經網絡和循環神經網絡;第三部分評價優化算法,檢驗影響深度學習計算性能的重要因素,并分別列舉深度學習在計算機視覺和自然語言處理中的重要應用。 本書同時覆蓋深度學習的方法和實踐,主要面向在校大學生、技術人員和研究人員。閱讀本書需要讀者了解基本的Python編程或附錄中描述的線性代數、微分和概率基礎。 |
目錄:對本書的贊譽 前言 如何使用本書 資源與支持 主要符號表 第 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 ·6· 目 錄 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 目 錄 ·7· 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 ·8· 目 錄 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 附錄D GPU 購買指南 388 附錄E 如何為本書做貢獻 391 附錄F d2lzh 包索引 395 附錄G 中英文術語對照表 397 參考文獻 402 索引 407 |
序: |
|