本书旨在利用 TensorFlow 针对各种现实场景设计深度学习系统,引导读者实现有趣的深度学习项目。本书涵盖 10 个实践项目,如用目标检测 API 标注图像、利用长短期记忆神经网络(LSTM)预测股票价格、构建和训练机器翻译模型、检测 Quora 数据集中的重复问题等。通过阅读本书,读者可以了解如何搭建深度学习的 TensorFlow 环境、如何构建卷积神经网络以有效地处理图像、如何利用长短期记忆神经网络预测股票价格,以及如何实现一个能够自己玩电子游戏的人工智能(AI)!
本书适合数据科学家、机器学习和深度学习领域的从业者以及人工智能技术的爱好者阅读。
1.用TensorFlow框架针对现实场景设计深度学习系统,实现有趣的深度学习项目。
2.10个真实项目,侧重于实战,涵盖图像处理、推荐系统、股票价格预测和训练聊天机器人、机器翻译系统和基于强化学习的电子游戏等实际应用
3.适合数据科学家、机器学习和深度学习领域的从业者以及人工智能技术的爱好者阅读。
Luca Massaron 是一名数据科学家,也是一家公司的市场研究总监,长期从事多元统计分析、机器学习和客户分析等工作,有 10 多年的解决实际问题的经验,擅长运用推理、统计、数据挖掘和算法为客户创造价值。他对数据分析技术非常感兴趣,乐于向专业人员和非专业人员展示数据驱动的知识发现的巨大潜力。他坚信通过简单明了的解释和对行业的基本理解可以实现很多目标。
Alberto Boschetti 是一名数据科学家,在信号处理和统计方面有丰富的经验。他拥有通信工程博士学位,目前从事自然语言处理、机器学习和分布式处理等方向的工作。他经常参加学术讨论、大型会议和其他活动,关注数据科学技术的最新进展。
Alexey Grigorev 是经验丰富的数据科学家、机器学习工程师和软件开发人员,拥有超过8年的专业经验。他原是一名 Java 开发人员,后转而从事数据科学工作。现在,Alexey 是Simplaex 公司的数据科学家,主要使用 Java 和 Python 进行数据清理、数据分析和建模。他擅长的领域是机器学习和文本挖掘。
Abhishek Thakur 是一名数据科学家,主要关注应用机器学习和深度学习。他在 2014 年获得了德国波恩大学的计算机科学硕士学位,之后在多个行业工作。他的研究方向是自动化机器学习。他热衷于参加机器学习竞赛,在 Kaggle 竞赛中获得过的好成绩全球第三名。
第 1章 用卷积神经网络识别交通标志 1
1.1 数据集 1
1.2 卷积神经网络 2
1.3 图像预处理 3
1.4 训练模型并进行预测 6
1.5 后续问题 12
1.6 小结 12
第 2章 用目标检测API标注图像 13
2.1 微软常见物体数据集 13
2.2 TensorFlow的目标检测API 16
2.3 展示项目计划 18
2.3.1 为项目搭建合适的开发环境 19
2.3.2 protobuf编译 20
2.4 准备项目代码 20
2.4.1 一些简单应用 31
2.4.2 网络摄像头实时检测 34
2.5 致谢 36
2.6 小结 36
第3章 图像的描述生成 37
3.1 什么是描述生成 37
3.2 探索图像描述数据集 38
3.3 把单词转换为词嵌入 40
3.4 描述图像的方法 42
3.4.1 条件随机场 42
3.4.2 基于卷积神经网络的循环神经网络 43
3.4.3 描述排序 44
3.4.4 密集描述 45
3.4.5 循环神经网络描述 46
3.4.6 多模态描述 46
3.4.7 基于注意力机制的描述 47
3.5 实现描述生成模型 48
3.6 小结 52
第4章 为生成条件图像构建GAN 53
4.1 GAN简介 53
4.1.1 对抗方式是关键 54
4.1.2 “寒武纪大爆发” 56
4.2 项目 57
4.2.1 数据集类 58
4.2.2 CGAN类 60
4.3 CGAN应用示例 74
4.3.1 MNIST 75
4.3.2 Zalando MNIST 79
4.3.3 EMNIST 81
4.3.4 重用经过训练的CGAN 82
4.4 使用AWS服务 84
4.5 致谢 85
4.6 小结 86
第5章 利用LSTM预测股票价格 87
5.1 输入数据集(余弦信号和股票价格) 87
5.2 格式化数据集 90
5.3 用回归模型预测股票价格 93
5.4 长短期记忆神经网络入门 101
5.5 利用LSTM进行股票价格预测 103
5.6 练习 108
5.7 小结 109
第6章 构建和训练机器翻译模型 110
6.1 机器翻译系统架构 110
6.2 语料库预处理 112
6.3 训练机器翻译模型 118
6.4 测试和翻译 123
6.5 练习 125
6.6 小结 125
第7章 训练能像人类一样讨论的聊天机器人 126
7.1 项目简介 126
7.2 输入语料库 127
7.3 创建训练集 128
7.4 训练聊天机器人 132
7.5 聊天机器人API 134
7.6 练习 137
7.7 小结 137
第8章 检测Quora数据集中的重复问题 138
8.1 展示数据集 138
8.2 基础特征工程 141
8.3 创建模糊特征 142
8.4 借助TF-IDF和SVD特征 145
8.5 用Word2vec嵌入映射 148
8.6 测试机器学习模型 153
8.7 搭建TensorFlow模型 158
8.8 构建深度神经网络之前所做的处理 158
8.9 深度神经网络的构建模块 160
8.10 设计学习架构 163
8.11 小结 169
第9章 用TensorFlow构建推荐系统 170
9.1 推荐系统 170
9.2 推荐系统下的矩阵分解 172
9.2.1 数据集准备和基准 172
9.2.2 矩阵分解 177
9.2.3 隐式反馈数据集 178
9.2.4 基于SGD的矩阵分解 181
9.2.5 贝叶斯个性化排序 186
9.3 面向推荐系统的RNN 189
9.3.1 数据集准备和基准 190
9.3.2 用TensorFlow构建RNN模型 195
9.4 小结 206
第 10章 基于强化学习的电子游戏 207
10.1 关于游戏 207
10.2 OpenAI版游戏 208
10.3 在Linux(Ubuntu 14.04或16.04)上安装OpenAI Gym 210
10.4 通过深度学习探索强化学习 212
10.4.1 深度Q-learning技巧 215
10.4.2 理解深度Q-learning的局限性 216
10.5 启动项目 216
10.5.1 定义人工智能大脑 217
10.5.2 为经验回放创建记忆 221
10.5.3 创建智能体 222
10.5.4 指定环境 227
10.5.5 执行强化学习过程 230
10.6 致谢 233
10.7 小结 234