预购商品
书目分类
特别推荐
本書深入淺出地介紹了深度學習的基本原理和實現過程,帶領讀者用Python的NumPy庫從底層而不是借助現有的深度學習庫,從0開始構建屬於自己的深度學習庫。 本書在介紹基本的Python程式設計、微積分、概率、統計知識的基礎上,按照深度學習的發展脈絡介紹了回歸模型、神經網路、卷積神經網路、循環神經網路、生成對抗網路等深度學習的核心知識,在深入淺出地剖析原理的同時,給出了詳細的代碼實現過程。 本書既適合沒有任何深度學習基礎的初學者閱讀,也適合具有深度學習庫使用經驗、想瞭解其底層實現原理的從業人員參考。同時,本書特別適合作為高等院校的深度學習教材。
第1章 程式設計和數學基礎 1 1.1 Python快速入門 1 1.1.1 快速安裝Python 1 1.1.2 Python基礎 2 1.1.3 Python中的常見運算 5 1.1.4 Python控制語句 7 1.1.5 Python常用容器類型 10 1.1.6 Python常用函數 16 1.1.7 類和對象 22 1.1.8 Matplotlib入門 24 1.2 張量庫NumPy 33 1.2.1 什麼是張量 33 1.2.2 創建ndarray對象 37 1.2.3 ndarray陣列的索引和切片 53 1.2.4 張量的計算 57 1.3 微積分 63 1.3.1 函數 64 1.3.2 四則運算和複合運算 66 1.3.3 極限和導數 69 1.3.4 導數的四則運算和鏈式法則 72 1.3.5 計算圖、正向計算和反向傳播求導 74 1.3.6 多變數函數的偏導數與梯度 75 1.3.7 向量值函數的導數與Jacobian矩陣 78 1.3.8 積分 83 1.4 概率基礎 84 1.4.1 概率 84 1.4.2 條件概率、聯合概率、全概率公式、貝葉斯公式 86 1.4.3 隨機變數 88 1.4.4 離散型隨機變數的概率分佈 89 1.4.5 連續型隨機變數的概率密度 91 1.4.6 隨機變數的分佈函數 93 1.4.7 期望、方差、協方差、協變矩陣 95 第2章 梯度下降法 99 2.1 函數極值的必要條件 99 2.2 梯度下降法基礎 101 2.3 梯度下降法的參數優化策略 108 2.3.1 Momentum法 108 2.3.2 AdaGrad法 110 2.3.3 AdaDelta法 112 2.3.4 RMSprop法 114 2.3.5 Adam法 115 2.4 梯度驗證 117 2.4.1 比較數值梯度和分析梯度 117 2.4.2 通用的數值梯度 118 2.5 分離梯度下降法與參數優化策略 119 2.5.1 參數優化器 119 2.5.2 接受參數優化器的梯度下降法 120 第3章 線性回歸、邏輯回歸和softmax回歸 122 3.1 線性回歸 122 3.1.1 餐車利潤問題 122 3.1.2 機器學習與人工智慧 123 3.1.3 什麼是線性回歸 126 3.1.4 用正規方程法求解線性回歸問題 127 3.1.5 用梯度下降法求解線性回歸問題 129 3.1.6 調試學習率 133 3.1.7 梯度驗證 135 3.1.8 預測 135 3.1.9 多特徵線性回歸 136 3.2 資料的規範化 143 3.2.1 預測大壩出水量 143 3.2.2 資料的規範化過程 147 3.3 模型的評估 149 3.3.1 欠擬合和過擬合 149 3.3.2 驗證集和測試集 153 3.3.3 學習曲線 155 3.3.4 偏差和方差 160 3.4 正則化 165 3.5 邏輯回歸 168 3.5.1 邏輯回歸基礎 169 3.5.2 邏輯回歸的NumPy實現 173 3.5.3 實戰:鳶尾花分類的NumPy實現 178 3.6 softmax回歸 180 3.6.1 spiral資料集 180 3.6.2 softmax函數 181 3.6.3 softmax回歸模型 186 3.6.4 多分類交叉熵損失 188 3.6.5 通過加權和計算交叉熵損失 191 3.6.6 softmax回歸的梯度計算 191 3.6.7 softmax回歸的梯度下降法的實現 197 3.6.8 spiral資料集的softmax回歸模型 197 3.7 批梯度下降法和隨機梯度下降法 199 3.7.1 MNIST手寫數字集 199 3.7.2 用部分訓練樣本訓練邏輯回歸模型 201 3.7.3 批梯度下降法 202 3.7.4 隨機梯度下降法 207 第4章 神經網路 209 4.1 神經網路概述 209 4.1.1 感知機和神經元 209 4.1.2 啟動函數 213 4.1.3 神經網路與深度學習 216 4.1.4 多個樣本的正向計算 221 4.1.5 輸出 224 4.1.6 損失函數 224 4.1.7 基於數值梯度的神經網路訓練 229 4.2 反向求導 235 4.2.1 正向計算和反向求導 235 4.2.2 計算圖 237 4.2.3 損失函數關於輸出的梯度 239 4.2.4 2層神經網路的反向求導 242 4.2.5 2層神經網路的Python實現 247 4.2.6 任意層神經網路的反向求導 252 4.3 實現一個簡單的深度學習框架 256 4.3.1 神經網路的訓練過程 256 4.3.2 網路層的代碼實現 257 4.3.3 網路層的梯度檢驗 260 4.3.4 神經網路的類 261 4.3.5 神經網路的梯度檢驗 263 4.3.6 基於深度學習框架的MNIST手寫數位識別 266 4.3.7 改進的通用神經網路框架:分離加權和與啟動函數 268 4.3.8 獨立的參數優化器 276 4.3.9 fashion-mnist的分類訓練 279 4.3.10 讀寫模型參數 282 第5章 改進神經網路性能的基本技巧 285 5.1 資料處理 285 5.1.1 資料增強 285 5.1.2 規範化 289 5.1.3 特徵工程 289 5.2 參數調試 296 5.2.1 權重初始化 296 5.2.2 優化參數 301 5.3 批規範化 301 5.3.1 什麼是批規範化 301 5.3.2 批規範化的反向求導 303 5.3.3 批規範化的代碼實現 304 5.4 正則化 310 5.4.1 權重正則化 310 5.4.2 Dropout 312 5.4.3 早停法 316 5.5 梯度爆炸和梯度消失 317 第6章 卷積神經網路 318 6.1 卷積入門 319 6.1.1 什麼是卷積 319 6.1.2 一維卷積 325 6.1.3 二維卷積 326 6.1.4 多通道輸入和多通道輸出 338 6.1.5 池化 341 6.2 卷積神經網路概述 344 6.2.1 全連接神經元和卷積神經元 345 6.2.2 卷積層和卷積神經網路 346 6.2.3 卷積層和池化層的反向求導及代碼實現 349 6.2.4 卷積神經網路的代碼實現 361 6.3 卷積的矩陣乘法 364 6.3.1 一維卷積的矩陣乘法 364 6.3.2 二維卷積的矩陣乘法 365 6.3.3 一維卷積反向求導的矩陣乘法 371 6.3.4 二維卷積反向求導的矩陣乘法 373 6.4 基於座標索引的快速卷積 377 6.5 典型卷積神經網路結構 393 6.5.1 LeNet-5 393 6.5.2 AlexNet 394 6.5.3 VGG 395 6.5.4 殘差網路 396 6.5.5 Inception網路 398 6.5.6 NiN 399 第7章 迴圈神經網路 403 7.1 序列問題和模型 403 7.1.1 股票價格預測問題 404 7.1.2 概率序列模型和語言模型 405 7.1.3 自回歸模型 406 7.1.4 生成自回歸資料 406 7.1.5 時間窗方法 408 7.1.6 時間窗採樣 409 7.1.7 時間窗方法的建模和訓練 409 7.1.8 長期預測和短期預測 410 7.1.9 股票價格預測的代碼實現 412 7.1.10 k-gram語言模型 415 7.2 迴圈神經網路基礎 416 7.2.1 無記憶功能的非迴圈神經網路 417 7.2.2 具有記憶功能的迴圈神經網路 418 7.3 穿過時間的反向傳播 421 7.4 單層迴圈神經網路的實現 425 7.4.1 初始化模型參數 425 7.4.2 正向計算 425 7.4.3 損失函數 427 7.4.4 反向求導 427 7.4.5 梯度驗證 429 7.4.6 梯度下降訓練 432 7.4.7 序列資料的採樣 433 7.4.8 序列資料的迴圈神經網路訓練和預測 441 7.5 迴圈神經網路語言模型和文本的生成 448 7.5.1 字元表 448 7.5.2 字元序列樣本的採樣 450 7.5.3 模型的訓練和預測 452 7.6 迴圈神經網路中的梯度爆炸和梯度消失 455 7.7 長短期記憶網路 456 7.7.1 LSTM的神經元 457 7.7.2 LSTM的反向求導 460 7.7.3 LSTM的代碼實現 461 7.7.4 LSTM的變種 469 7.8 門控迴圈單元 470 7.8.1 門控迴圈單元的工作原理 470 7.8.2 門控迴圈單元的代碼實現 472 7.9 迴圈神經網路的類及其實現 475 7.9.1 用類實現迴圈神經網路 475 7.9.2 迴圈神經網路單元的類實現 483 7.10 多層迴圈神經網路和雙向迴圈神經網路 491 7.10.1 多層迴圈神經網路 491 7.10.2 多層迴圈神經網路的訓練和預測 497 7.10.3 雙向迴圈神經網路 500 7.11 Seq2Seq模型 506 7.11.1 機器翻譯概述 507 7.11.2 Seq2Seq模型的實現 508 7.11.3 字元級的Seq2Seq模型 516 7.11.4 基於Word2Vec的Seq2Seq模型 522 7.11.5 基於詞嵌入層的Seq2Seq模型 533 7.11.6 注意力機制 541 第8章 生成模型 552 8.1 生成模型概述 552 8.2 自動編碼器 556 8.2.1 什麼是自動編碼器 557 8.2.2 稀疏編碼器 559 8.2.3 自動編碼器的代碼實現 560 8.3 變分自動編碼器 563 8.3.1 什麼是變分自動編碼器 563 8.3.2 變分自動編碼器的損失函數 564 8.3.3 變分自動編碼器的參數重採樣 565 8.3.4 變分自動編碼器的反向求導 565 8.3.5 變分自動編碼器的代碼實現 566 8.4 生成對抗網路 571 8.4.1 生成對抗網路的原理 573 8.4.2 生成對抗網路訓練過程的代碼實現 577 8.5 生成對抗網路建模實例 579 8.5.1 一組實數的生成對抗網路建模 579 8.5.2 二維座標點的生成對抗網路建模 585 8.5.3 MNIST手寫數位集的生成對抗網路建模 590 8.5.4 生成對抗網路的訓練技巧 594 8.6 生成對抗網路的損失函數及其概率解釋 594 8.6.1 生成對抗網路的損失函數的全域最優解 594 8.6.2 Kullback-Leibler散度和Jensen-Shannon散度 595 8.6.3 生成對抗網路的最大似然解釋 598 8.7 改進的損失函數——Wasserstein GAN 599 8.7.1 Wasserstein GAN的原理 599 8.7.2 Wasserstein GAN的代碼實現 603 8.8 深度卷積對抗網路 605 8.8.1 一維轉置卷積 606 8.8.2 二維轉置卷積 609 8.8.3 卷積對抗網路的代碼實現 612 參考文獻 617
哈爾濱工業大學數學力學系應用數學本科、基礎數學碩士,南京航空航太大學航空宇航製造工程專業博士。2008-2009年德州農工大學tamu訪問學者,2016年休士頓大學訪問研究。從事過曲面造型、特徵造型的演算法研究和系統實現,開發過數控玻璃切割系統。在高校從事過高等數學、線性代數、概率統計、資料結構、C++程式設計語言、圖形學、電腦網路等課程教學,目前主要研究方向:電腦圖形學與電腦視覺、深度學習人工智慧等。編著了《C++17從入門到精通》《Python 3從入門到實戰》等書。
最近浏览商品
客服公告
热门活动
订阅电子报