描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111648123
Copyright ? Packt Publishing 2018First published in the English language under the title “Deep Learning with TensorFlow-SecondEdition- ( 9781788831109)”
Copyright in the Chinese language( simplified characters) ? 2020 China Machine PreesThis title is published in China by China Machine Press with license from Packt Publishing Ltd.This edition is authorized for sale in China only , excluding Hong Kong SAR. Macao SAR and Taiwan.Unauthorized export of this edition is a violation of the Copyright Act. Violation of this Law is subjectto Civil and Criminal Penalties.
前 言
第 1 章 强化学习的启动和运行 // 1
1.1 为何选择强化学习 // 1
阐述强化学习问题 // 2
1.2 agent 及其环境之间的关系 // 3
1.2.1 定义 agent 的状态 // 3
1.2.2 定义 agent 的行为 // 3
1.2.3 了解策略、价值函数和优势函数 // 4
1.3 认识回合 // 5
1.4 认识奖励函数和折扣奖励 // 5
奖励 // 6
1.5 学习马尔可夫决策过程 // 6
1.6 定义贝尔曼方程 // 7
1.7 同步策略与异步策略学习 // 7
1.7.1 同步策略方法 // 7
1.7.2 异步策略方法 // 8
1.8 无模型训练和基于模型训练 // 8
1.9 本书中涉及的算法 // 8
总结 // 9
思考题 // 9
扩展阅读 // 9
第 2 章 时序差分、SARSA 与 Q-Learning // 10
2.1 技术需求 // 10
2.2 理解 TD 学习 // 10
价值函数与状态之间的关系 // 11
2.3 理解 SARSA 与 Q-Learning // 11
IX
2.3.1 学习 SARSA // 12
2.3.2 理解 Q-Learning // 12
2.4 悬崖徒步与网格世界问题 // 12
2.4.1 SARSA 下的悬崖徒步 // 13
2.4.2 Q-Learning 下的悬崖徒步 // 18
2.4.3 SARSA 下的网格世界 // 20
总结 // 22
扩展阅读 // 22
第 3 章 深度 Q 网络 // 23
3.1 技术需求 // 23
3.2 学习 DQN 原理 // 23
3.3 理解目标网络 // 24
3.4 了解重放缓冲区 // 25
3.5 Atari 环境介绍 // 25
3.5.1 Atari 游戏概述 // 26
3.5.2 用 TensorFlow 编写 DQN // 27
3.6 验证 DQN 在 Atari Breakout 上的性能 // 39
总结 // 40
思考题 // 40
扩展阅读 // 41
第 4 章 Double DQN、竞争网络结构和 Rainbow // 42
4.1 技术需求 // 42
4.2 了解 Double DQN // 43
4.2.1 编写 DDQN 并训练解决 Atari Breakout 问题 // 43
4.2.2 在 Atari Breakout 问题中评估 DDQN 的性能 // 44
4.3 理解竞争网络结构 // 45
4.3.1 编写竞争网络结构并训练其解决 Atari Breakout 问题 // 47
4.3.2 在 Atari Breakout 中评估竞争网络结构的性能 // 48
4.4 了解 Rainbow 网络 // 49
DQN 改进 // 50
4.5 在 Dopamine 上运行 Rainbow 网络 // 50
TensorFlow 强化学习快速入门指南
—使用 Python 动手搭建自学习的智能体
X
使用 Dopamine 运行 Rainbow // 52
总结 // 53
思考题 // 53
扩展阅读 // 53
第 5 章 深度确定性策略梯度 // 55
5.1 技术需求 // 55
5.2 Actor-Critic 算法和策略梯度 // 56
策略梯度 // 56
5.3 深度确定性策略梯度 // 56
5.3.1 编写 ddpg.py // 57
5.3.2 编写 AandC.py // 59
5.3.3 编写 TrainOrTest.py // 64
5.3.4 编写 replay_buffer.py // 67
5.4 在 Pendulum-v0 中训练和测试 DDPG // 68
总结 // 69
思考题 // 70
扩展阅读 // 70
第 6 章 异步的方法——A3C 和 A2C // 71
6.1 技术需求 // 71
6.2 A3C 算法 // 71
6.2.1 损失函数 // 72
6.2.2 CartPole and LunarLander // 72
6.3 A3C 算法在 CartPole 中的应用 // 73
6.3.1 编写 cartpole.py // 73
6.3.2 编写 a3c.py // 75
6.3.3 Worker 类 // 77
6.3.4 编写 utils.py // 80
6.3.5 CartPole 训练 // 81
6.4 A3C 算法在 LunarLander 中的应用 // 82
6.4.1 编写 lunar.py // 82
6.4.2 在 LunarLander 上训练 // 82
6.5 A2C 算法 // 83
总结 // 83
思考题 // 84
扩展阅读 // 84
第 7 章 信任区域策略优化和近端策略优化 // 85
7.1 技术需求 // 85
7.2 学习 TRPO // 85
TRPO 方程 // 86
7.3 学习 PPO // 86
PPO 损失函数 // 86
7.4 使用 PPO 解决 Mountain Car 问题 // 87
7.4.1 编写 class_ppo.py // 87
7.4.2 编写 train_test.py // 91
7.5 评估性能 // 95
7.6 马力全开 // 95
7.7 随机发力 // 96
总结 // 97
思考题 // 97
扩展阅读 // 97
第 8 章 深度强化学习在自动驾驶中的应用 // 98
8.1 技术需求 // 98
8.2 汽车驾驶模拟器 // 99
8.3 学习使用 TORCS // 99
8.3.1 状态空间 // 100
8.3.2 支持文件 // 100
8.4 训练 DDPG agent 来学习驾驶 // 101
8.4.1 编写 ddpg.py // 101
8.4.2 编写 AandC.py // 101
8.4.3 编写 TrainOrTest.py // 102
TensorFlow 强化学习快速入门指南
—使用 Python 动手搭建自学习的智能体
8.5 训练 PPO agent // 104
总结 // 104
思考题 // 105
扩展阅读 // 105
附录 思考题答案 // 10
本书适用对象
本书适用于对强化学习算法感兴趣的机器学习( Machine Learning, ML)爱好者。它对机器学习工程师、数据科学家和研究生等群体很有帮助。读者需要具备机器学习的基本知识以及 Python 和 TensorFlow 的编程经验,才能成功完成本书的学习。
本书内容
第 1 章 强化学习的启动和运行,概述了强化学习的基本概念,例如智能体( agent)、环境及其之间的关系。本章还涵盖了奖励函数、折扣奖励( discountedrewards)、价值函数和优势函数( advantage functions)等内容。读者还将熟悉贝尔曼( Bellman)方程、同步策略算法和异步策略算法,以及无模型和基于模型的强化学习算法。
第 2 章 时序差分、 SARSA 与 Q-Learning, 介绍了时序差分、 SARSA 与Q-Learning。本章还总结了如何使用 Python 编写这些算法,并在网格世界( gridworld)和悬崖徒步( cliff walking)两个经典的强化学习问题上进行训练和测试。
第 3 章 深度 Q 网络, 介绍了本书的第一个深度强化学习算法 DQN。本章还讨论了如何在 Python 和 TensorFlow 中编写代码。然后该代码用于训练深度学习agent 来玩 Atari Breakout 游戏。
第 4 章 Double DQN、竞争网络结构和 Rainbow, 在第 3 章的基础上进一步扩展到 Double DQN。本章还讨论了价值函数和优势函数相关的竞争网络( dueling network)架构。这些扩展用 Python 和 TensorFlow 编码,并用于训练 RL agent玩 Atari Breakout 游戏。最后引入谷歌的 Dopamine 代码用于训练 Rainbow DQNagent。
第 5 章 深度确定性策略梯度, 介绍了本书的第一个 Actor-Critic 算法,也是第一个用于连续控制的强化学习算法。它向读者介绍策略梯度,并讨论如何使用它来训练actor( agent)的策略。本章使用Python和TensorFlow对此算法进行编程,并用其来训练 agent 以解决倒立摆问题。
第 6 章 异步的方法——A3C 和 A2C,介绍了 A3C 算法,这是一种异步强化学习算法,其中一个主处理器用来更新策略网络,而其他多个工作处理器使用它收集经验样本,应用计算策略梯度,然后传递给主处理器。在本章中, A3C 还用于训练 RL agent 玩 OpenAI Gym 的 CartPole 和 LunarLander。最后,还简要介绍了 A2C。
第 7 章 信任区域策略优化和近端策略优化,讨论了基于策略分配比率的两种强化学习算法 TRPO 和 PPO。本章还讨论了如何使用 Python 和 TensorFlow 编写PPO 代码,并用其来训练 RL agent 以解决 OpenAI Gym 中的山地车问题。
第 8 章 深度强化学习在自动驾驶中的应用,介绍 TORCS 赛车模拟器,编写DDPG 算法,训练 agent 自主驾驶汽车。本章的代码文件还包括针对相同 TORCS问题的 PPO 算法,并将该算法作为读者的练习材料。
为了充分利用本书读者应该对机器学习算法有很好的了解,例如深度神经网络、卷积神经网络、随机梯度下降和 Adam 优化。读者还应具备 Python 和 TensorFlow 的动手编程经验。
下载示例代码文件读者可以通过 www.packt.com 网站上的账户下载本书的示例代码文件。如果在其他地方购买了本书,可以访问 www.packt.com/support 并注册,作者将通过电子邮件直接将文件发送给读者。
读者可以按照以下步骤下载代码文件:
1. 登录或注册 www.packt.com。
2. 选择 SUPPORT 选项卡。
3. 单击 Code Downloads & Errata。
4. 在“搜索”框中输入图书的名称,然后按照屏幕说明进行操作。
下载文件后,请确保使用最新版本解压缩或提取文件夹:
? WinRAR / 7-Zip for Windows
? Zipeg / iZip / UnRarX for Mac
? 7-Zip / PeaZip for Linux
本书的代码包也托管在 GitHub 上: https://github.com/PacktPublishing/TensorFlow-Reinforcement-Learning-Quick-Start-Guide。如果代码有更新,作者将在现有的GitHub 库上更新。
作者还提供了其他代码包,这些代码包来自作者丰富的书籍和视频目录,可通过 https://github.com/PacktPublishing/ 获得。欢迎读者使用!
下载彩色图像作者还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图 / 图表的彩色图像。读者可以在这里下载:
http://www.packtpub.com/sites/default/files/downloads/9781789533583_ColorImages.pdf
使用约定本书中使用了许多文本约定。
CodeInText:表示文本、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄中的代码字。下面是一个示例:“将下载的 WebStorm-10*.dmg 磁盘映像文件装入( mount)系统中的另一个磁盘。”
代码如下
评论
还没有评论。