《深度學習算法實踐(基於Theano和TensorFlow)》是2018年 電子工業出版社出版的圖書,作者是閆濤 周琦。
內容簡介,圖書目錄,
內容簡介
本書以深度學習算法入門為主要內容,通過系統介紹Python、NumPy、SciPy等科學計算庫,深度學習主流算法,深度學習前沿研究,深度學習服務雲平台構建四大主線,向讀者系統地介紹了深度學習的主要內容和研究進展。本書介紹了Python、NumPy、SciPy的使用技巧,面向谷歌推出的開源深度學習框架TensorFlow,向讀者展示了利用TensorFlow和Theano框架實現線性回歸、邏輯回歸、多層感知器、卷積神經網路、遞歸神經網路、長短時記憶網路、去噪自動編碼機、堆疊自動編碼機、受限玻爾茲曼機、深度信念網路等,並將這些技術用於MNIST手寫數字識別任務。本書不僅講述了深度學習算法本身,而且重點講述了如何將這些深度學習算法包裝成Web服務。本書旨在幫助廣大工程技術人員快速掌握深度學習相關理論和實踐,並將這些知識套用到實際工作中。
圖書目錄
目 錄
第一部分 深度學習算法概述
第1章 深度學習算法簡介 2
1.1 神經網路發展簡史 2
1.1.1 神經網路第一次興起 3
1.1.2 神經網路沉寂期(20世紀80年代―21世紀) 4
1.1.3 神經網路技術積累期(20世紀90年代―2006年) 5
1.1.4 深度學習算法崛起(2006年至今) 8
1.2 深度學習現狀 10
1.2.1 傳統神經網路困境 10
1.2.2 深度多層感知器 12
1.2.3 深度卷積神經網路 14
1.2.4 深度遞歸神經網路 15
1.3 深度學習研究前瞻 16
1.3.1 自動編碼機 17
1.3.2 深度信念網路 18
1.3.3 生成式網路最新進展 19
1.4 深度學習框架比較 20
1.4.1 TensorFlow 20
1.4.2 Theano 21
1.4.3 Torch 22
1.4.4 DeepLearning4J 23
1.4.5 Caffe 23
1.4.6 MXNet 24
1.4.7 CNTK 27
1.4.8 深度學習框架造型指導原則 27
1.5 深度學習入門路徑 28
1.5.1 運行MNIST 28
1.5.2 深度學習框架的選擇 29
1.5.3 小型試驗網路 33
1.5.4 訓練生產網路 33
1.5.5 搭建生產環境 34
1.5.6 持續改進 35
第二部分 深度學習算法基礎
第2章 搭建深度學習開發環境 38
2.1 安裝Python開發環境 38
2.1.1 安裝最新版本Python 38
2.1.2 Python虛擬環境配置 39
2.1.3 安裝科學計算庫 40
2.1.4 安裝最新版本Theano 40
2.1.5 圖形繪製 40
2.2 NumPy簡易教程 43
2.2.1 Python基礎 43
2.2.2 多維數組的使用 51
2.2.3 向量運算 58
2.2.4 矩陣運算 60
2.2.5 線性代數 62
2.3 TensorFlow簡易教程 68
2.3.1 張量定義 69
2.3.2 變數和placeholder 69
2.3.3 神經元激活函式 71
2.3.4 線性代數運算 72
2.3.5 運算元據集 74
2.4 Theano簡易教程 77
2.4.1 安裝Theano 77
2.4.2 Theano入門 78
2.4.3 Theano矩陣相加 79
2.4.4 變數和共享變數 80
2.4.5 隨機數的使用 84
2.4.6 Theano求導 84
2.5 線性回歸 86
2.5.1 問題描述 86
2.5.2 線性模型 88
2.5.3 線性回歸學習算法 89
2.5.4 解析法 90
2.5.5 Theano實現 93
第3章 邏輯回歸 100
3.1 邏輯回歸數學基礎 100
3.1.1 邏輯回歸算法的直觀解釋 100
3.1.2 邏輯回歸算法數學推導 101
3.1.3 牛頓法解邏輯回歸問題 103
3.1.4 通用學習模型 106
3.2 邏輯回歸算法簡單套用 113
3.3 MNIST手寫數字識別庫簡介 124
3.4 邏輯回歸MNIST手寫數字識別 126
第4章 感知器模型和MLP 139
4.1 感知器模型 139
4.1.1 神經元模型 139
4.1.2 神經網路架構 143
4.2 數值計算形式 144
4.2.1 前向傳播 144
4.2.2 誤差反向傳播 145
4.2.3 算法推導 147
4.3 向量化表示形式 152
4.4 套用要點 153
4.4.1 輸入信號模型 154
4.4.2 權值初始化 155
4.4.3 早期停止 155
4.4.4 輸入信號調整 156
4.5 TensorFlow實現MLP 156
第5章 卷積神經網路 174
5.1 卷積神經網路原理 174
5.1.1 卷積神經網路的直觀理解 174
5.1.2 卷積神經網路構成 177
5.1.3 卷積神經網路設計 191
5.1.4 遷移學習和網路微調 193
5.2 卷積神經網路的TensorFlow實現 195
5.2.1 模型搭建 197
5.2.2 訓練方法 203
5.2.3 運行方法 208
第6章 遞歸神經網路 212
6.1 遞歸神經網路原理 212
6.1.1 遞歸神經網路表示方法 213
6.1.2 數學原理 214
6.1.3 簡單遞歸神經網路套用示例 219
6.2 圖像標記 226
6.2.1 建立開發環境 226
6.2.2 圖像標記數據集處理 227
6.2.3 單步前向傳播 229
6.2.4 單步反向傳播 231
6.2.5 完整前向傳播 234
6.2.6 完整反向傳播 236
6.2.7 單詞嵌入前向傳播 239
6.2.8 單詞嵌入反向傳播 241
6.2.9 輸出層前向/反向傳播 243
6.2.10 輸出層代價函式計算 245
6.2.11 圖像標註網路整體架構 248
6.2.12 代價函式計算 249
6.2.13 生成圖像標記 255
6.2.14 網路訓練過程 258
6.2.15 網路持久化 265
第7章 長短時記憶網路 269
7.1 長短時記憶網路原理 269
7.1.1 網路架構 269
7.1.2 數學公式 272
7.2 MNIST手寫數字識別 274
第三部分 深度學習算法進階
第8章 自動編碼機 286
8.1 自動編碼機概述 286
8.1.1 自動編碼機原理 287
8.1.2 去噪自動編碼機 287
8.1.3 稀疏自動編碼機 288
8.2 去噪自動編碼機TensorFlow實現 291
8.3 去噪自動編碼機的Theano實現 298
第9章 堆疊自動編碼機 307
9.1 堆疊去噪自動編碼機 308
9.2 TensorFlow實現 322
9.3 Theano實現 341
第10章 受限玻爾茲曼機 344
10.1 受限玻爾茲曼機原理 344
10.1.1 網路架構 344
10.1.2 能量模型 346
10.1.3 CD-K算法 351
10.2 受限玻爾茲曼機TensorFlow實現 353
10.3 受限玻爾茲曼機Theano實現 362
第11章 深度信念網路 381
11.1 深度信念網路原理 381
11.2 深度信念網路TensorFlow實現 382
11.3 深度信念網路Theano實現 403
第四部分 機器學習基礎
第12章 生成式學習 420
12.1 高斯判別分析 422
12.1.1 多變數高斯分布 422
12.1.2 高斯判決分析公式 423
12.2 樸素貝葉斯 436
12.2.1 樸素貝葉斯分類器 436
12.2.2 拉普拉斯平滑 439
12.2.3 多項式事件模型 441
第13章 支撐向量機 444
13.1 支撐向量機概述 444
13.1.1 函式間隔和幾何間隔 445
13.1.2 最優距離分類器 448
13.2 拉格朗日對偶 448
13.3 最優分類器算法 450
13.4 核方法 453
13.5 非線性可分問題 455
13.6 SMO算法 457
13.6.1 坐標上升算法 458
13.6.2 SMO算法詳解 458
第五部分 深度學習平台API
第14章 Python Web編程 462
14.1 Python Web開發環境搭建 462
14.1.1 CherryPy框架 463
14.1.2 CherryPy安裝 463
14.1.3 測試CherryPy安裝是否成功 464
14.2 最簡Web伺服器 465
14.2.1 程式啟動 465
14.2.2 顯示HTML檔案 466
14.2.3 靜態內容處理 468
14.3 用戶認證系統 471
14.4 AJAX請求詳解 473
14.4.1 添加數據 474
14.4.2 修改數據 476
14.4.3 刪除數據 478
14.4.4 REST服務實現 479
14.5 數據持久化技術 487
14.5.1 環境搭建 487
14.5.2 資料庫添加操作 488
14.5.3 資料庫修改操作 489
14.5.4 資料庫刪除操作 490
14.5.5 資料庫查詢操作 491
14.5.6 資料庫事務操作 492
14.5.7 資料庫連線池 494
14.6 任務佇列 499
14.7 媒體檔案上傳 502
14.8 Redis操作 504
14.8.1 Redis安裝配置 504
14.8.2 Redis使用例程 505
第15章 深度學習雲平台 506
15.1 神經網路持久化 506
15.1.1 資料庫表設計 506
15.1.2 整體目錄結構 511
15.1.3 訓練過程及模型檔案保存 512
15.2 神經網路運行模式 528
15.3 AJAX請求調用神經網路 531
15.3.1 顯示靜態網頁 531
15.3.2 上傳圖片檔案 540
15.3.3 AJAX接口 543
15.4 請求合法性驗證 545
15.4.1 用戶註冊和登錄 546
15.4.2 客戶端生成請求 553
15.4.3 伺服器端驗證請求 555
15.5 異步結果處理 557
15.5.1 網頁異步提交 557
15.5.2 套用佇列管理模組 559
15.5.3 任務佇列 560
15.5.4 結果佇列 561
15.5.5 異步請求處理流程 562
15.6 神經網路持續改進 563
15.6.1 套用遺傳算法 563
15.6.2 重新訓練 564
15.6.3 生成式對抗網路 565
後 記 567
參考文獻 568