新書推薦:
《
银行业架构网络BIAN(全球数字化时代金融服务业框架)(数字化转型与创新管理丛书)
》
售價:HK$
98.6
《
金托邦:江湖中的沉重正义
》
售價:HK$
60.5
《
易经今解:释疑·解惑·见微
》
售價:HK$
88.5
《
东欧史(全二册)-“中间地带”的困境
》
售價:HK$
221.8
《
虚拟资本:金融怎样挪用我们的未来
》
售價:HK$
77.3
《
刻意练习不生气
》
售價:HK$
39.2
《
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
》
售價:HK$
109.8
《
安全感是内心长出的盔甲
》
售價:HK$
67.0
內容簡介:
强化学习是一类重要的机器学习方法,在很多领域得到了成功的应用,*近几年与深度学习结合起来,进一步推动了人工智能的发展?本书首先介绍了强化学习的基本原理,然后介绍典型的强化学习算法,包括时序差分? SARSA? Q-Learning? DeepQ-network? Double DQN?竞争网络结构? Rainbow? Actor-Critic? A2C? A3C? TRPO和PPO等,每种算法基本上利用了主流的开源机器学习框架TensorFlow,使用Python编程进行实现?此外,还介绍了一些上述算法的应用?本书可以使读者快速理解强化学习的基本知识,并通过简单的案例加深对算法的理解?本书适合对强化学习感兴趣的普通高校师生以及相关专业人员阅读?
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
內容試閱 :
本书概述了几种不同的强化学习( Reinforcement Learning, RL)算法,包括算法中涉及的理论知识以及编程算法使用到的 Python 和 TensorFlow。具体而言,本书涉及的算法包括 Q-Learning、 SARSA、 DQN、 DDPG、 A3C、 TRPO 和 PPO 等。使用强化学习算法的应用包括来自 OpenAI Gym 的计算机游戏和使用 TORCS 赛车模拟器的自动驾驶。
本书适用对象
本书适用于对强化学习算法感兴趣的机器学习( 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.comsupport 并注册,作者将通过电子邮件直接将文件发送给读者。
读者可以按照以下步骤下载代码文件:
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.comPacktPublishingTensorFlow-Reinforcement-Learning-Quick-Start-Guide。如果代码有更新,作者将在现有的GitHub 库上更新。
作者还提供了其他代码包,这些代码包来自作者丰富的书籍和视频目录,可通过 https:github.comPacktPublishing 获得。欢迎读者使用!
下载彩色图像作者还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图 图表的彩色图像。读者可以在这里下载:
http:www.packtpub.comsitesdefaultfilesdownloads9781789533583_ColorImages.pdf
使用约定本书中使用了许多文本约定。
CodeInText:表示文本、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄中的代码字。下面是一个示例:“将下载的 WebStorm-10*.dmg 磁盘映像文件装入( mount)系统中的另一个磁盘。”
代码如下