本书借助现实案例介绍深度学习算法的实际应用(包括最佳实践),旨在帮助读者了解如何识别和提取信息,以提高预测准确率及优化结果。
本书共10章,分别是机器学习—引言、神经网络、深度学习基本原理、无监督特征学习、图像识别、递归神经网络和语言模型、深度学习在棋盘游戏中的应用、深度学习在电子游戏中的应用、异常检测和构建一个可用于生产环境的入侵检测系统。
本书适合想深入研究深度学习算法和技术的读者学习,也适合想探究如何从这项强大技术中学到更多知识的读者参考。
1. 涵盖深度学习算法的实际应用和最佳实践,可从中了解识别和提取信息的方法,提高预测的准确率,并对结果进行优化;
2. 涵盖神经网络、无监督特征学习、图像识别以及递归神经网络等多种机器学习的方法和技术;
3. 展示了深度学习在棋盘游戏和电子游戏中的应用;
4. 实现了一个可用于生产环境的入侵检测系统;
5. 提供源代码。
Valentino Zocca本科毕业于罗马大学数学系,博士毕业于美国马里兰大学,获得数学博士学位。他在设计、开发和实现高级立体3D地球可视化软件方面有着深厚的经验。他在波音公司开发了许多数学算法和预测模型,并自动化了几个卫星图像的可视化程序。此后,他成为机器学习和深度学习方面的专家,曾在米兰和纽约举办了关于机器学习和深度学习的研讨会。
第 1章 机器学习—引言 1
1.1 什么是机器学习 1
1.2 不同的机器学习方法 2
1.2.1 监督学习 2
1.2.2 无监督学习 4
1.2.3 强化学习 6
1.2.4 机器学习系统所涉及的步骤 7
1.2.5 关于流行技术/算法的简介 9
1.2.6 在现实生活中的应用 19
1.2.7 流行开源包 21
1.3 小结 26
第 2章 神经网络 27
2.1 为什么是神经网络 27
2.2 基本原理 28
2.2.1 神经元以及层 29
2.2.2 不同类型的激活函数 33
2.3 反向传播算法 37
2.3.1 线性回归 37
2.3.2 逻辑回归 39
2.3.3 反向传播 41
2.4 行业应用 44
2.4.1 信号处理 44
2.4.2 医疗 44
2.4.3 自动汽车驾驶 44
2.4.4 商业 45
2.4.5 模式识别 45
2.4.6 语音生成 45
2.5 异或函数的神经网络代码示例 45
2.6 小结 50
第3章 深度学习基本原理 52
3.1 什么是深度学习 52
3.1.1 基本概念 54
3.1.2 特征学习 55
3.1.3 深度学习算法 62
3.2 深度学习应用 63
3.2.1 语音识别 63
3.2.2 对象识别与分类 65
3.3 图形处理单元与中央处理单元 67
3.4 流行开源库—引言 69
3.4.1 Theano 69
3.4.2 TensorFlow 69
3.4.3 Keras 70
3.4.4 使用Keras的简单深度神经
网络代码 70
3.5 小结 75
第4章 无监督特征学习 76
4.1 自编码器 77
4.1.1 网络设计 80
4.1.2 用于自编码器的正则化技术 83
4.1.3 自编码器概述 87
4.2 受限玻尔兹曼机 87
4.2.1 霍普菲尔德网络与
玻尔兹曼机 89
4.2.2 玻尔兹曼机 91
4.2.3 受限玻尔兹曼机 93
4.2.4 在TensorFlow中的实现 94
4.2.5 深度信念网络 98
4.3 小结 99
第5章 图像识别 102
5.1 人工模型与生物模型的相似性 102
5.2 直观认识与合理性 103
5.3 卷积层 104
5.4 池化层 111
5.5 dropout层 112
5.6 深度学习中的卷积层 113
5.7 Theano中的卷积层 114
5.8 用Keras来识别数字的卷积层
示例 115
5.9 将Keras用于cifar10的卷积层
示例 118
5.10 预训练 120
5.11 小结 121
第6章 递归神经网络和语言模型 123
6.1 递归神经网络 123
6.1.1 RNN—如何实施和训练 125
6.1.2 长短期记忆 130
6.2 语言建模 133
6.2.1 基于单词的语言模型 133
6.2.2 基于字符的语言模型 138
6.3 语音识别 144
6.3.1 语音识别管线 144
6.3.2 作为输入数据的语音 145
6.3.3 预处理 146
6.3.4 声学模型 147
6.3.5 解码 149
6.3.6 端到端模型 150
6.4 小结 150
6.5 拓展阅读 150
第7章 深度学习在棋盘游戏中的
应用 154
7.1 早期游戏AI 155
7.2 用最小-最大算法评估游戏状态 156
7.3 实现Python井字游戏 158
7.4 学习价值函数 166
7.5 训练AI掌握围棋 167
7.6 应用于树结构的置信上限 169
7.7 蒙特卡罗树搜索中的深度学习 176
7.8 快速复习强化学习 177
7.9 用于学习策略函数的策略梯度 177
7.10 AlphaGo中的策略梯度 185
7.11 小结 186
第8章 深度学习在电子游戏中的
应用 188
8.1 应用于游戏的监督学习算法 188
8.2 遗传算法在游戏中的应用 189
8.3 Q-learning算法 190
8.4 Q-learning算法在动作中的应用 192
8.5 动态游戏 197
8.5.1 经验回放 200
8.5.2 Epsilon贪婪算法 203
8.6 《雅达利打砖块》游戏 204
8.6.1 《雅达利打砖块》游戏的
随机基准 205
8.6.2 预处理屏幕 207
8.6.3 创建一个深度卷积网络 208
8.6.4 Q-learning算法中的收敛
问题 213
8.6.5 策略梯度与Q-learning算法 214
8.7 actor-critic算法 215
8.7.1 方差缩减基线 216
8.7.2 通用优势估计器 216
8.8 异步算法 217
8.9 基于模型的算法 218
8.10 小结 220
第9章 异常检测 221
9.1 什么是异常检测和异常点检测 221
9.2 异常检测的现实应用 224
9.3 流行的浅层机器学习技术 225
9.3.1 数据建模 225
9.3.2 检测建模 225
9.4 基于深度自编码器的异常检测 227
9.5 开始使用H2O 229
9.6 示例 230
9.6.1 MNIST数字异常识别 230
9.6.2 心电图脉冲检测 238
9.7 小结 243
第 10章 构建一个可用于生产环境的
入侵检测系统 244
10.1 什么是数据产品 245
10.2 训练 246
10.2.1 权值初始化 246
10.2.2 使用HOGWILD!的并行
随机梯度下降算法 248
10.2.3 自适应学习 250
10.2.4 学习率退火 250
10.2.5 动量法 251
10.2.6 Nesterov加速法 251
10.2.7 牛顿迭代法 252
10.2.8 Adagrad算法 253
10.2.9 Adadelta算法 253
10.2.10 通过Map/Reduce实现
分布式学习 255
10.2.11 Sparkling Water 258
10.3 测试 260
10.3.1 模型验证 266
10.3.2 有标记数据 267
10.3.3 无标记数据 269
10.3.4 验证总结 272
10.3.5 超参数调优 272
10.3.6 端到端评估 275
10.3.7 A/B测试 277
10.3.8 测试总结 278
10.4 部署 279
10.4.1 POJO模型导出 280
10.4.2 异常得分API 283
10.4.3 部署总结 285
10.5 小结 285