本書介紹使用 R 語言和深度學習庫 TensorFlow、H2O 和 MXNet 構建不同的深度學習模型的方法和原理。本書共 10 章,其中第 1、2 章介紹如何在 R 中配置不同的深度學習庫以及如何構建神經網絡;第 3 ~ 7 章介紹卷積神經網絡、自動編碼器、生成模型、循環(huán)神經網絡和強化學習的構建方法和原理;第 8、9 章介紹深度學習在文本挖掘以及信號處理中的應用;第 10 章介紹遷移學習以及如何利用 GPU 部署深度學習模型。
本書的結構簡單明了,每部分由準備環(huán)節(jié)、動手操作和工作原理組成,可強化讀者的學習;內容上覆蓋了深度學習領域常見的神經網絡類型,并介紹了使用場景。同時,書中包含大量實用的示例代碼,方便讀者應用到實際項目中。
本書適合有一定 R 語言編程基礎,并且希望使用 R 語言快速開展深度學習項目的軟件工程師或高校師生、科研人員閱讀。
深度學習是當前的熱門,它是機器學習的一部分。在龐大而復雜的數據應用中,深度學習取得的效果非常吸引人。同時,R編程語言在數據挖掘人員和統(tǒng)計人員當中非常流行。
本書將深度學習和R語言兩者結合起來,幫助你解決深度學習實戰(zhàn)中所遇到的各種問題,并且教會你掌握深度學習、神經網絡和機器學習的高級技巧。本書從R語言中的各種深度學習軟件包和軟件庫入手,帶領你學習復雜的深度學習算法。首先,從構建各種神經網絡模型開始,而后逐步過渡到深度學習在文本挖掘和信號處理中的應用,同時還比較了CPU和GPU的性能。
閱讀完本書,你將對深度學習的架構和不同的深度學習包有一個比較深入的理解,能夠為你今后碰到的項目或問題找到合適的解決方案。
本書的主要內容
·使用TensorFlow、H2O和MXNet構建
·不同應用領域的深度學習模型
·分析深度玻爾茲曼機
·建立和分析深度信念網絡
·使用各種機器學習算法構建監(jiān)督模型
·使用自動編碼器理解特征表示
·探索深度學習中可用的生成模型
·使用循環(huán)網絡實現(xiàn)序列建模
·了解強化學習的基礎知識
·了解深度學習應用于文本挖掘的流程和步驟
·探索深度學習在信號處理中的應用
·使用遷移學習構建深度學習模型
·在GPU上訓練深度學習模型
關于作者
Prakash 博士是一位數據科學家和作家,目前在 ZS 咨詢公司擔任數據科學經理。他獲得了美國威斯康星大學麥迪遜分校的工業(yè)和系統(tǒng)工程博士學位,其第 2 個工程博士學位是在英國華威大學獲得的;他之前還獲得了美國威斯康星大學麥迪遜分校的碩士學位、印度國家鑄造和鍛造技術研究所(NIFFT)的學士學位。
Prakash 在 IEEE-Trans、EJOR 和 IJPR 等多個刊物上發(fā)表了多篇文章,涉及運籌學和管理、軟計算工具和高級算法等多個研究領域。
Achyutuni Sri Krishna Rao 是數據科學家、土木工程師和作家,目前在 ZS 咨詢公司擔任數據科學顧問。他獲得了新加坡國立大學企業(yè)商業(yè)分析和機器學習的碩士學位、印度 Warangal 國家技術研究所的學士學位。
Sri Krishna 在土木工程研究領域發(fā)表了多篇文章,并參與了 Packt 出版的名為 Algorithms and Data Structures Using R 一書的寫作。
關于譯者
王洋洋,計算機碩士,狂熱的數據愛好者,現(xiàn)為云網絡安全領域大數據工程師,熟悉多種編程語言、大數據技術、機器學習算法和設計模式等,對自然語言處理也頗感興趣,曾翻譯《R 圖形化數據分析》一書。
第 1章 入門 1
1.1 介紹 1
1.2 安裝 R 及其 IDE 2
1.2.1 準備 2
1.2.2 怎么做 2
1.3 安裝 Jupyter Notebook 應用 3
1.3.1 怎么做 3
1.3.2 更多內容 5
1.4 從 R 機器學習基礎開始 5
1.4.1 怎么做 6
1.4.2 工作原理 9
1.5 在 R 中安裝深度學習的工具 包 11
1.6 在 R 中安裝 MXNet 11
1.6.1 做好準備 11
1.6.2 怎么做 12
1.7 在 R 中安裝 TensorFlow 13
1.7.1 做好準備 13
1.7.2 怎么做 14
1.7.3 工作原理 15
1.8 在 R 中安裝 H2O 15
1.8.1 做好準備 15
1.8.2 怎么做 16
1.8.3 工作原理 17
1.8.4 更多內容 20
1.9 使用 Docker 一次安裝 3 個包 20
1.9.1 做好準備 20
1.9.2 怎么做 21
1.9.3 更多內容 22
第 2章 R深度學習 23
2.1 始于邏輯回歸 23
2.1.1 做好準備 23
2.1.2 怎么做 24
2.2 介紹數據集 25
2.2.1 做好準備 25
2.2.2 怎么做 25
2.3 使用 H2O 執(zhí)行邏輯回歸 26
2.3.1 做好準備 26
2.3.2 怎么做 27
2.3.3 工作原理 28
2.4 使用 TensorFlow 執(zhí)行邏輯回歸 30
2.4.1 做好準備 30
2.4.2 怎么做 30
2.4.3 工作原理 32
2.5 可視化 TensorFlow 圖 33
2.5.1 做好準備 33
2.5.2 怎么做 34
2.5.3 工作原理 36
2.6 從多層感知器開始 37
2.6.1 做好準備 37
2.6.2 怎么做 38
2.6.3 更多內容 38
2.7 使用 H2O 建立神經網絡 39
2.7.1 做好準備 39
2.7.2 怎么做 39
2.7.3 工作原理 41
2.8 使用 H2O 中的網格搜索調整超參數 42
2.8.1 做好準備 42
2.8.2 怎么做 42
2.8.3 工作原理 43
2.9 使用 MXNet 建立神經網絡 44
2.9.1 做好準備 44
2.9.2 怎么做 44
2.9.3 工作原理 46
2.10 使用 TensorFlow 建立神經網絡 46
2.10.1 做好準備 46
2.10.2 怎么做 46
2.10.3 工作原理 49
2.10.4 更多內容 50
第3章 卷積神經網絡 52
3.1 介紹 52
3.2 下載并配置圖像數據集 53
3.2.1 做好準備 54
3.2.2 怎么做 54
3.2.3 工作原理 57
3.3 學習 CNN 分類器的架構 58
3.3.1 做好準備 58
3.3.2 怎么做 58
3.3.3 工作原理 59
3.4 使用函數初始化權重和偏差 60
3.4.1 做好準備 61
3.4.2 怎么做 61
3.4.3 工作原理 61
3.5 使用函數創(chuàng)建一個新的卷積層 61
3.5.1 做好準備 61
3.5.2 怎么做 62
3.5.3 工作原理 64
3.6 使用函數創(chuàng)建一個扁平化的卷積層 65
3.6.1 做好準備 65
3.6.2 怎么做 65
3.6.3 工作原理 65
3.7 使用函數扁平化密集連接層 66
3.7.1 做好準備 66
3.7.2 怎么做 66
3.7.3 工作原理 67
3.8 定義占位符變量 67
3.8.1 做好準備 67
3.8.2 怎么做 67
3.8.3 工作原理 68
3.9 創(chuàng)建第 一個卷積層 68
3.9.1 做好準備 69
3.9.2 怎么做 69
3.9.3 工作原理 70
3.10 創(chuàng)建第二個卷積層 70
3.10.1 做好準備 70
3.10.2 怎么做 71
3.10.3 工作原理 71
3.11 扁平化第二個卷積層 72
3.11.1 做好準備 72
3.11.2 怎么做 72
3.11.3 工作原理 72
3.12 創(chuàng)建第 一個完全連接的層 73
3.12.1 做好準備 73
3.12.2 怎么做 73
3.12.3 工作原理 73
3.13 將 dropout 應用于第 一個完全連接的層 73
3.13.1 做好準備 74
3.13.2 怎么做 74
3.13.3 工作原理 74
3.14 創(chuàng)建第二個帶有 dropout 的完全連接層 74
3.14.1 做好準備 74
3.14.2 怎么做 75
3.14.3 工作原理 75
3.15 應用 Softmax 激活以獲得預測的類 75
3.15.1 做好準備 75
3.15.2 怎么做 75
3.16 定義用于優(yōu)化的成本函數 76
3.16.1 做好準備 76
3.16.2 怎么做 76
3.16.3 工作原理 76
3.17 執(zhí)行梯度下降成本優(yōu)化 77
3.17.1 做好準備 77
3.17.2 怎么做 77
3.18 在 TensorFlow 會話中執(zhí)行圖 77
3.18.1 做好準備 77
3.18.2 怎么做 78
3.18.3 工作原理 78
3.19 評估測試數據的性能 79
3.19.1 做好準備 79
3.19.2 怎么做 79
3.19.3 工作原理 81
第4章 使用自動編碼器的數據表示 83
4.1 介紹 83
4.2 構建自動編碼器 84
4.2.1 做好準備 85
4.2.2 怎么做 85
4.3 數據歸一化 86
4.3.1 做好準備 86
4.3.2 怎么做 88
4.4 構建正則自動編碼器 92
4.4.1 做好準備 92
4.4.2 怎么做 92
4.4.3 工作原理 92
4.5 微調自動編碼器的參數 93
4.6 構建棧式自動編碼器 94
4.6.1 做好準備 94
4.6.2 怎么做 95
4.7 構建降噪自動編碼器 96
4.7.1 做好準備 96
4.7.2 怎么做 96
4.7.3 工作原理 101
4.8 構建并比較隨機編碼器和解碼器 102
4.8.1 做好準備 103
4.8.2 怎么做 103
4.9 從自動編碼器學習流形 109
4.10 評估稀疏分解 113
4.10.1 做好準備 114
4.10.2 怎么做 114
4.10.3 工作原理 115
第5章 深度學習中的生成模型 116
5.1 比較主成分分析和受限玻爾茲曼機 116
5.1.1 做好準備 117
5.1.2 怎么做 118
5.2 為伯努利分布輸入配置受限玻爾茲曼機 121
5.2.1 做好準備 122
5.2.2 怎么做 122
5.3 訓練受限玻爾茲曼機 122
5.3.1 做好準備 123
5.3.2 怎么做 123
5.4 RBM 的反向或重構階段 124
5.4.1 做好準備 124
5.4.2 怎么做 124
5.5 了解重構的對比散度 125
5.5.1 做好準備 125
5.5.2 怎么做 125
5.5.3 工作原理 126
5.6 初始化并啟動一個新的 TensorFlow 會話 126
5.6.1 做好準備 126
5.6.2 怎么做 127
5.6.3 工作原理 128
5.7 評估 RBM 的輸出 129
5.7.1 做好準備 130
5.7.2 怎么做 130
5.7.3 工作原理 131
5.8 為協(xié)同過濾構建一個受限玻爾茲曼機 132
5.8.1 做好準備 132
5.8.2 怎么做 132
5.9 執(zhí)行一個完整的 RBM 訓練 135
5.9.1 做好準備 137
5.9.2 怎么做 137
5.10 構建深度信念網絡 139
5.10.1 做好準備 140
5.10.2 怎么做 141
5.10.3 工作原理 144
5.11 實現(xiàn)前饋反向傳播神經網絡 145
5.11.1 做好準備 145
5.11.2 怎么做 146
5.11.3 工作原理 150
5.12 建立一個深度受限玻爾茲曼機 150
5.12.1 做好準備 150
5.12.2 怎么做 151
5.12.3 工作原理 156
第6章 循環(huán)神經網絡 157
6.1 建立一個基本的循環(huán)神經網絡 157
6.1.1 做好準備 157
6.1.2 怎么做 158
6.1.3 工作原理 160
6.2 建立一個雙向 RNN 模型 161
6.2.1 做好準備 162
6.2.2 怎么做 162
6.3 建立一個深度 RNN 模型 165
6.4 建立一個基于長短期記憶的序列模型 166
6.4.1 怎么做 167
6.4.2 工作原理 167
第7章 強化學習 170
7.1 介紹 170
7.2 建立馬爾可夫決策過程 171
7.2.1 做好準備 171
7.2.2 怎么做 172
7.3 執(zhí)行基于模型的學習 177
7.4 進行無模型學習 180
7.4.1 做好準備 180
7.4.2 怎么做 181
第8章 深度學習在文本挖掘中的應用 185
8.1 對文本數據進行預處理并提取情感 185
8.1.1 怎么做 185
8.1.2 工作原理 191
8.2 使用 tf-idf 分析文檔 192
8.2.1 怎么做 192
8.2.2 工作原理 194
8.3 使用 LSTM 網絡執(zhí)行情感預測 194
8.3.1 怎么做 194
8.3.2 工作原理 198
8.4 使用 text2vec 示例的應用程序 198
8.4.1 怎么做 198
8.4.2 工作原理 201
第9章 深度學習在信號處理中的應用 202
9.1 介紹并預處理音樂 MIDI 文件 202
9.1.1 做好準備 202
9.1.2 怎么做 203
9.2 建立 RBM 模型 204
9.2.1 做好準備 204
9.2.2 怎么做 204
9.3 生成新的音符 206
第 10章 遷移學習 208
10.1 介紹 208
10.2 舉例說明預訓練模型的使用 209
10.2.1 做好準備 210
10.2.2 怎么做 210
10.3 構建遷移學習模型 213
10.3.1 做好準備 213
10.3.2 怎么做 213
10.4 構建圖像分類模型 216
10.4.1 做好準備 216
10.4.2 怎么做 216
10.5 在 GPU 上訓練深度學習模型 219
10.5.1 做好準備 219
10.5.2 怎么做 220
10.6 比較使用 CPU 和 GPU 的性能 221
10.6.1 做好準備 221
10.6.2 怎么做 222
10.6.3 更多內容 224
10.6.4 另請參閱 224