深度學習基礎與實踐

深度學習基礎與實踐

《深度學習基礎與實踐》是2019年7月人民郵電出版社出版的圖書,作者是[美]喬希·帕特森、[美]亞當·吉布森。

基本介紹

  • 中文名:深度學習基礎與實踐
  • 作者:[美]喬希·帕特森、[美]亞當·吉布森
  • 出版社:人民郵電出版社
  • 出版時間:2019年7月
  • 頁數:365 頁
  • 定價:119 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787115515421
內容簡介,圖書目錄,

內容簡介

本書是由兩位技術出身的企業管理者編寫的深度學習普及書。本書的前四章提供了足夠的關於深度學習的理論知識,包括機器學習的基本概念、神經網路基礎、從神經網路到深度網路的演化歷程,以及主流的深度網路架構,為讀者閱讀本書剩餘內容打下基礎。後五章帶領讀者進行一系列深度學習的實踐,包括建立深層網路、調優技術、各種數據類型的向量化和在Spark上運行深度學習工作流。

圖書目錄

著作權聲明 iii
O'Reilly Media, Inc.介紹 iv
前言 xv
第 1 章 機器學習回顧 1
1.1 學習的機器 1
1.1.1 機器如何學習 2
1.1.2 生物學的啟發 4
1.1.3 什麼是深度學習 5
1.1.4 鑽進奇幻的兔子洞 5
1.2 提出問題 6
1.3 機器學習背後的數學:線性代數 7
1.3.1 標量 7
1.3.2 向量 7
1.3.3 矩陣 8
1.3.4 張量 8
1.3.5 超平面 8
1.3.6 相關數學運算 8
1.3.7 將數據轉換成向量 9
1.3.8 方程組求解 10
1.4 機器學習背後的數學:統計學 12
1.4.1 機率 12
1.4.2 條件機率 14
1.4.3 後驗機率 14
1.4.4 分布 15
1.4.5 樣本與總體 16
1.4.6 重採樣方法 16
1.4.7 選擇性偏差 17
1.4.8 似然 17
1.5 機器學習如何工作 17
1.5.1 回歸 17
1.5.2 分類 19
1.5.3 聚類 19
1.5.4 欠擬合與過擬合 20
1.5.5 最佳化 20
1.5.6 凸最佳化 21
1.5.7 梯度下降 22
1.5.8 SGD 24
1.5.9 擬牛頓最佳化方法 24
1.5.10 生成模型與判別模型 25
1.6 邏輯回歸 25
1.6.1 邏輯函式 26
1.6.2 理解邏輯回歸的輸出 26
1.7 評估模型 27
1.8 建立對機器學習的理解 30
第 2 章 神經網路基礎與深度學習 31
2.1 神經網路 31
2.1.1 生物神經元 33
2.1.2 感知器 34
2.1.3 多層前饋網路 37
2.2 訓練神經網路 42
2.3 激活函式 49
2.3.1 線性函式 49
2.3.2 sigmoid函式 49
2.3.3 tanh函式 50
2.3.4 hard tanh函式 51
2.3.5 softmax函式 51
2.3.6 修正線性函式 51
2.4 損失函式 53
2.4.1 損失函式的符號 53
2.4.2 用於回歸的損失函式 54
2.4.3 用於分類的損失函式 56
2.4.4 用於重建的損失函式 57
2.5 超參數 58
2.5.1 學習率 58
2.5.2 正則化 59
2.5.3 動量 59
2.5.4 稀疏 59
第 3 章 深度網路基礎 60
3.1 定義深度學習 60
3.1.1 什麼是深度學習 60
3.1.2 本章結構 67
3.2 深度網路的通用構建原則 67
3.2.1 參數 68
3.2.2 層 68
3.2.3 激活函式 69
3.2.4 損失函式 70
3.2.5 最佳化算法 71
3.2.6 超參數 73
3.2.7 小結 77
3.3 深度網路的構造塊 77
3.3.1 RBM 78
3.3.2 自動編碼器 82
3.3.3 變分自動編碼器 83
第 4 章 深度網路的主要架構 85
4.1 UPN 85
4.1.1 DBN 86
4.1.2 GAN 88
4.2 CNN 91
4.2.1 生物學啟發 92
4.2.2 思路 92
4.2.3 CNN架構概要 93
4.2.4 輸入層 94
4.2.5 卷積層 95
4.2.6 池化層 101
4.2.7 全連線層 102
4.2.8 CNN的其他套用 102
4.2.9 CNN列表 103
4.2.10 小結 103
4.3 RNN 103
4.3.1 時間維度建模 104
4.3.2 三維空間輸入 105
4.3.3 為什麼不是馬爾可夫模型 107
4.3.4 常見的RNN架構 107
4.3.5 LSTM網路 108
4.3.6 特定領域套用與混合網路 114
4.4 遞歸神經網路 115
4.4.1 網路架構 115
4.4.2 遞歸神經網路的變體 115
4.4.3 遞歸神經網路的套用 116
4.5 小結與討論 116
4.5.1 深度學習會使其他算法過時嗎 116
4.5.2 不同的問題有不同的最佳方法 117
4.5.3 什麼時候需要深度學習 117
第 5 章 建立深度網路 118
5.1 將深度網路與適合的問題匹配 118
5.1.1 列式數據與多層感知器 119
5.1.2 圖像與CNN 119
5.1.3 時間序列與RNN 120
5.1.4 使用混合網路 121
5.2 DL4J工具套件 121
5.2.1 向量化與DataVec 121
5.2.2 運行時與ND4J 121
5.3 DL4J API的基本概念 123
5.3.1 載入與保存模型 123
5.3.2 為模型獲取輸入 124
5.3.3 建立模型架構 124
5.3.4 訓練與評估 125
5.4 使用多層感知器網路對CSV數據建模 126
5.4.1 建立輸入數據 128
5.4.2 確定網路架構 128
5.4.3 訓練模型 131
5.4.4 評估模型 131
5.5 利用CNN對手寫圖像建模 132
5.5.1 使用LeNet CNN的Java代碼示例 132
5.5.2 載入及向量化輸入圖像 134
5.5.3 DL4J中用於LeNet的網路架構 135
5.5.4 訓練CNN網路 138
5.6 基於RNN的序列數據建模 139
5.6.1 通過LSTM生成莎士比亞風格作品 139
5.6.2 基於LSTM的感測器時間序列分類 146
5.7 利用自動編碼器檢測異常 152
5.7.1 自動編碼器示例的Java代碼列表 152
5.7.2 設定輸入數據 156
5.7.3 自動編碼器的網路結構與訓練 156
5.7.4 評估模型 157
5.8 使用變分自動編碼器重建MNIST數字 158
5.8.1 重建MNIST數字的代碼列表 158
5.8.2 VAE模型的檢驗 161
5.9 深度學習在自然語言處理中的套用 163
5.9.1 使用Word2Vec的學習詞嵌入 163
5.9.2 具有段落向量的句子的分散式表示 168
5.9.3 使用段落向量進行文檔分類 171
第 6 章 深度網路調優 176
6.1 深度網路調優的基本概念 176
6.1.1 建立深度網路的思路 177
6.1.2 構建思路的步驟 178
6.2 匹配輸入數據與網路架構 178
6.3 模型目標與輸出層的關係 180
6.3.1 回歸模型的輸出層 180
6.3.2 分類模型的輸出層 180
6.4 處理層的數量、參數的數量和存儲器 182
6.4.1 前饋多層神經網路 183
6.4.2 控制層和參數的數量 183
6.4.3 估計網路記憶體需求 185
6.5 權重初始化策略 187
6.6 使用激活函式 188
6.7 套用損失函式 190
6.8 理解學習率 191
6.8.1 使用參數更新比率 192
6.8.2 關於學習率的具體建議 193
6.9 稀疏性對學習的影響 195
6.10 最佳化方法的套用 195
6.11 使用並行化和GPU更快地進行訓練 197
6.11.1 線上學習與並行疊代算法 197
6.11.2 DL4J中的SGD並行 199
6.11.3 GPU 201
6.12 控制疊代和小批量的大小 202
6.13 如何使用正則化 203
6.13.1 使用先驗函式正則化 204
6.13.2 最大範數正則化 204
6.13.3 Dropout 205
6.13.4 其他正則化事項 206
6.14 處理類別不平衡 207
6.14.1 類別採樣方法 208
6.14.2 加權損失函式 208
6.15 處理過擬合 209
6.16 通過調優UI來使用網路統計信息 210
6.16.1 檢測不佳的權重初始化 212
6.16.2 檢測非混洗數據 213
6.16.3 檢測正則化的問題 214
第 7 章 調優特定的深度網路架構 217
7.1 CNN 217
7.1.1 卷捷豹構常見的模式 218
7.1.2 配置卷積層 220
7.1.3 配置池化層 224
7.1.4 遷移學習 225
7.2 RNN 226
7.2.1 網路輸入數據和輸入層 227
7.2.2 輸出層與RnnOutputLayer 228
7.2.3 訓練網路 228
7.2.4 調試LSTM的常見問題 230
7.2.5 填充與掩碼 230
7.2.6 掩碼評估與評分 231
7.2.7 循環網路架構的變體 232
7.3 受限玻爾茲曼機 232
7.3.1 隱藏層神經元與可用信息建模 233
7.3.2 使用不同的單元 234
7.3.3 用RBM正則化 234
7.4 DBN 235
7.4.1 利用動量 235
7.4.2 使用正則化 235
7.4.3 確定隱藏單元的數量 236
第 8 章 向量化 237
8.1 機器學習中的向量化方法 237
8.1.1 為什麼需要將數據向量化 238
8.1.2 處理列式原始數據屬性的策略 240
8.1.3 特徵工程與規範化技術 241
8.2 使用DataVec進行ETL和向量化 247
8.3 將圖像數據向量化 248
8.3.1 DL4J中的圖像數據表示 248
8.3.2 使用DataVec將圖像數據與向量規範化 250
8.4 將序列數據向量化 251
8.4.1 序列數據源的主要變體 251
8.4.2 使用DataVec將序列數據向量化 252
8.5 將文本向量化 256
8.5.1 詞袋 257
8.5.2 TF-IDF 258
8.5.3 Word2Vec與VSM的比較 261
8.6 使用圖形 261
第 9 章 在Spark上使用深度學習和DL4J 262
9.1 在Spark和Hadoop上使用DL4J的介紹 262
9.2 配置和調優Spark運行 266
9.2.1 在Mesos上運行Spark 267
9.2.2 在YARN中執行Spark 268
9.2.3 Spark調優簡要介紹 269
9.2.4 對在Spark上運行的DL4J作業調優 273
9.3 為Spark和DL4J建立Maven項目對象模型 274
9.3.1 一個pom.xml檔案依賴模板 275
9.3.2 為 CDH 5.x設定POM檔案 279
9.3.3 為HDP 2.4創建POM檔案 279
9.4 Spark和Hadoop故障排除 280
9.5 DL4J在Spark上的並行執行 281
9.6 Spark平台上的DL4J API最佳實踐 284
9.7 多層感知器的Spark示例 285
9.7.1 建立Spark MLP網路架構 288
9.7.2 分散式訓練與模型評估 289
9.7.3 構建和執行DL4J Spark作業 290
9.8 使用Spark和LSTM生成莎士比亞作品 290
9.8.1 建立LSTM網路架構 292
9.8.2 訓練、跟蹤進度及理解結果 293
9.9 基於park上的CNN進行MNIST建模 294
9.9.1 配置Spark作業和載入MNIST數據 296
9.9.2 建立LeNet CNN架構與訓練 297
附錄A 人工智慧是什麼 299
附錄B RL4J與強化學習 307
附錄C 每個人都需要了解的數字 325
附錄D 神經網路和反向傳播:數學方法 326
附錄E 使用ND4J API 330
附錄F 使用DataVec 341
附錄G 從原始碼構建DL4J 350
附錄H 設定DL4J項目 352
附錄I 為DL4J項目設定GPU 356
附錄J 解決DL4J安裝上的問題 359
關於作者 365
關於封面 365

相關詞條

熱門詞條

聯絡我們