深度强化学习:基于Python的理论及实践(英文版)
作者 : [美] 劳拉·格雷泽(Laura Graesser) 龚辉伦(Wah Loon Keng) 著
丛书名 : 经典原版书库
出版日期 : 2020-12-17
ISBN : 978-7-111-67040-7
定价 : 119.00元
教辅资源下载
扩展信息
语种 : 英文
页数 : 396
开本 : 16
原书名 : Foundations of Deep Reinforcement Learning: Theory and Practice in Python
原出版社: Pearson Education Inc.
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

这本书是针对计算机科学专业大学生和软件工程师的。本课程旨在介绍深度强化学习,无需事先了解相关主题。但是,我们假设读者对机器学习和深度学习有基本的了解,并且对Python编程有中级的了解。一些使用PyTorch的经验也是有用的,但不是必需的。

图书特色

WU

图书前言

当DeepMind在Atari街机游戏中取得突破性进展时,我们第一次发现了深度强化学习(DeepRL)。人工智能体在只使用图像而不使用先验知识的情况下,首次达到了人类的水平。
人工智能体在没有监督的情况下,通过反复试验自学的想法激发了我们的想象力,这是一种新的、令人兴奋的机器学习方法,它与我们熟悉的监督学习领域有很大的不同。
我们决定一起学习这个主题,我们阅读书籍和论文,学习在线课程,学习代码,并尝试实现核心算法。我们意识到,深度强化学习不仅在概念上具有挑战性,而且在实现过程中需要像大型软件工程项目一样经过许多努力。
随着我们的进步,我们了解了更多关于深度强化学习的知识—算法如何相互关联以及它们的不同特征是什么。形成这种心理模型是困难的,因为深度强化学习是一个新的研究领域,尚无全面的理论书籍,我们必须直接从研究论文和在线讲座中学习。
另一个挑战是理论与实现之间的巨大差距。通常,深度强化学习算法有许多组件和可调的超参数,这使其变得敏感且脆弱。为了成功运行,所有组件都需要正确地协同工作,并使用适当的超参数值。从理论上讲,实现这一目标所需的细节并不是很清楚,但同样重要。在我们的学习过程中,那些理论和实现相结合的资源是非常宝贵的。
我们觉得从理论到实现的过程应该比我们发现的更简单,我们希望通过自己的努力使深度强化学习更易于学习。这本书是我们的尝试。它采用端到端的方法来引入深度强化学习—从直觉开始,然后解释理论和算法,最后是实现和实践技巧。这也是为什么这本书附带了一个软件库SLM Lab,其中包含了所有算法的实现。简而言之,这是我们在开始学习这一主题时希望拥有的书。
深度强化学习属于强化学习中一个较大的领域。强化学习的核心是函数逼近,在深度强化学习中,函数是用深度神经网络学习的。强化学习与有监督和无监督学习一起构成了机器学习的三种核心技术,每种技术在问题的表达方式和算法的数据学习方式上都有所不同。
在这本书中,我们专注于深度强化学习,因为我们所经历的挑战是针对强化学习这一子领域的。这从两个方面限制了本书的范围。首先,它排除了在强化学习中可以用来学习函数的所有其他技术。其次,虽然强化学习从20世纪50年代就已经存在,但本书强调从2013年到2019年之间的发展。最近的许多发展都是建立在较老的研究基础上的,因此我们认为有必要追溯主要思想的发展。然而,我们并不打算给出这一领域的全面历史介绍。
这本书是针对计算机科学专业学生和软件工程师的,旨在介绍深度强化学习,无须事先了解相关主题。但是,我们假设读者对机器学习和深度学习有基本的了解,并且有中级Python编程水平。一些使用PyTorch的经验也是有用的,但不是必需的。
这本书的结构如下。
第1章介绍深度强化学习问题的不同方面,并对深度强化学习算法进行综述。
第一部分是基于策略和基于值的算法。第2章介绍第一种策略梯度方法(REINFORCE算法)。第3章介绍第一种基于值的方法(SARSA)。第4章讨论深度Q网络(DQN)算法。第5章重点讨论改进的深度Q网络—目标网络、双重DQN算法和优先级经验回放技术。
第二部分重点研究基于策略和基于值的方法相结合的算法。第6章介绍对REINFORCE算法进行扩展的演员–评论家算法。第7章介绍对演员–评论家算法进行扩展的近端策略优化(PPO)算法。第8章讨论同步和异步并行技术,适用于本书中的任何算法。最后,第9章总结了所有的算法。
每个算法章节的结构都是相同的。首先,介绍该章的主要概念,并通过相关的数学公式进行研究。然后,描述算法并讨论在Python中的实现。最后,提供一个可在SLM Lab中运行的可调超参数配置算法,并用图表说明该算法的主要特点。
第三部分重点介绍实现深度强化学习算法的具体细节。第10章介绍工程和调试实现,包括关于超参数和实验结果的小结。第11章为配套的SLM Lab提供使用参考。第12章介绍神经网络设计。第13章讨论硬件。
本书的最后一部分(第四部分)是关于环境设计的,由第14~17章组成,分别讨论了状态、动作、奖励和转换函数的设计。
我们推荐从第1章开始顺序阅读到第10章。这些章节介绍了本书中的所有算法,并提供了实现算法的实用技巧。接下来的三章(第11~13章)集中在更专业的主题上,可以按任何顺序阅读。对于不想深入研究的读者来说,第1、2、3、4、6和10章是本书的一个连贯子集,重点关注了一些算法。最后,第四部分包含了一组独立的章节,供对更深入地理解环境或构建自己的环境有特殊兴趣的读者阅读。
SLM Lab[67]是本书的配套软件库,是一个使用PyTorch[114]构建的模块化深度强化学习框架。SLM是Strange Loop Machine的缩写,向侯世达的名著《哥德尔、艾舍尔、巴赫:集异璧之大成》[53]致敬。SLM Lab的具体例子包括使用PyTorch的语法和特性来训练神经网络。然而,实现深度强化学习算法的基本原理也适用于其他的深度学习框架,比如TensorFlow[1]。
SLM Lab的设计旨在帮助初学者通过将其组成部分组织成概念清晰的片段来学习深度强化学习。这些组成部分也与学术文献中讨论的深度强化学习相一致,以便于从理论转换到代码。
学习深度强化学习的另一个重要方面是实验。为了方便实验,SLM Lab还提供了一个实验框架,帮助初学者设计和测试自己的假设。
SLM Lab库作为GitHub上的开源项目发布。我们鼓励读者安装它(在Linux或MacOS机器上),并按照存储库网站上的说明运行第一个演示(https://github.com/kengz/SLM-Lab)。已经创建了一个专用的git分支“book”,其代码版本与本书兼容。从存储库网站复制的简短安装说明显示在代码0.1中。

代码0.1 从book git分支安装SLM-Lab

我们建议你先设置它,这样就可以使用本书中介绍的算法来训练智能体了。除了安装和运行演示程序外,在阅读算法章节(第一部分和第二部分)之前,不需要熟悉SLM Lab,我们会在需要的地方向训练智能体发出所有命令。在第11章中,我们将重点从算法转移到更实际的深度强化学习方面,对SLM Lab进行了更广泛的讨论。

上架指导

计算机\程序设计

封底文字

通过本书可以快速了解深度强化学习算法的理论、语言和实现方面的专业知识。全书用熟悉的符号清晰地阐明概念,用简洁、可读的代码解释各类新技术,而不是在不相关的材料中浪费时间——这些都是为本书打下坚实基础的完美方法。
——Vincent Vanhoucke,谷歌首席科学家

深度强化学习结合了深度学习和强化学习,使人工智能体能够在没有监督的情况下学习如何解决顺序决策问题。在过去的十年中,深度强化学习在一系列问题上取得了显著的成果,涵盖从单机游戏和多人游戏到机器人技术等方方面面。本书采用理论结合实践的方法,从直觉开始,然后仔细解释深度强化学习算法的理论,讨论在配套软件库SLM Lab中的实现,最后呈现深度强化学习算法的实践细节。

通过本书,你将:
理解深度强化学习问题的每个关键方面。
探索基于策略和基于值的算法,包括REINFORCE算法、SARSA算法、DQN、双重DQN和优先级经验回放(PER)。
深入研究组合算法,包括演员-评论家算法和近端策略优化(PPO)算法。
了解算法的同步并行和异步并行。
在SLM Lab中运行算法,学习深度强化学习的实现细节。
探索算法基准测试结果与调优超参数。
了解深度强化学习的环境设计。

作者简介
劳拉·格雷泽(Laura Graesser)是一名软件工程师,在谷歌从事机器人技术方面的工作。她拥有纽约大学计算机科学硕士学位,专攻机器学习。
龚辉伦(Wah Loon Keng)是Machine Zone的一名人工智能工程师,他致力于将深度强化学习应用于工业问题。他拥有理论物理和计算机科学的背景。
他们共同开发了两个深度强化学习软件库,并就此进行了多次主题讲座和技术辅导。

图书序言

2019年4月,OpenAI的五款机器人在Dota 2比赛中与2018年人类世界冠军OG展开较量。Dota 2是一个复杂的多人竞技游戏,玩家可以选择不同的角色。赢得一场比赛需要策略、团队合作和快速决策。如果构建一个人工智能来参与这个游戏,需要考虑很多的变量和一个看似无限的优化搜索空间,这似乎是一个不可逾越的挑战。然而,OpenAI的机器人轻而易举地赢得了胜利,随后它们在与公众玩家的比赛中也赢得了99%以上的胜利。这一成就背后的创新就是深度强化学习。
虽然这是最近才发展起来的,但强化学习和深度学习都已经存在了几十年,大量的新研究和GPU功率的不断提高推动了这一技术的发展。本书向读者介绍深度强化学习,并将过去六年所做的工作融合成一个连贯的整体。
虽然训练电脑赢得电子游戏的胜利可能不是特别有用的事情,但它是一个起点。强化学习是机器学习的一个领域,它对于解决顺序决策问题(即随着时间的推移而解决的问题)非常有用。这几乎适用于任何情况—无论是玩电子游戏、走在街上或驾驶汽车。
本书对这个处于机器学习前沿的复杂主题做了通俗易懂的介绍。两位作者不仅对这方面的许多论文进行了研究,还创建了一个开源库SLM Lab,用于帮助读者通过快速建立和运行算法来深入学习强化学习。SLM Lab是基于PyTorch用Python编写的,但是读者只需要熟悉Python即可。至于选择使用TensorFlow或其他一些库作为深度学习框架的读者,仍然可以从这本书中获得启发,因为它介绍了深度强化学习解决方案的概念和问题公式。
本书汇集了新的深度强化学习研究成果,以及读者可以使用的示例和代码,还有与OpenAI Gym、Roboschool、Unity ML-Agents工具包一起使用的库,这使得本书成为希望使用这些系统的读者的完美起点。
Paul Dix
丛书编辑

作者简介

[美] 劳拉·格雷泽(Laura Graesser) 龚辉伦(Wah Loon Keng) 著:劳拉·格雷泽(Laura Graesser)是一名研究软件工程师,在谷歌从事机器人技术方面的工作。她拥有纽约大学计算机科学硕士学位,专攻机器学习。

龚辉伦(Wah Loon Keng)是Machine Zone的一名人工智能工程师,他致力于将深度强化学习应用于工业问题。他拥有理论物理和计算机科学的背景。

他们共同开发了两个深度强化学习软件库,并就此进行了多次主题讲座和技术辅导。

图书目录

第1章 强化学习简介 1
1.1 强化学习 1
1.2 强化学习中的MDP 6
1.3 强化学习中的学习函数 9
1.4 深度强化学习算法 11
1.4.1 基于策略的算法 12
1.4.2 基于值的算法 13
1.4.3 基于模型的算法 13
1.4.4 组合方法 15
1.4.5 本书中的算法 15
1.4.6 同策略和异策略算法 16
1.4.7 小结 16
1.5 强化学习中的深度学习 17
1.6 强化学习与监督学习 19
1.6.1 缺乏先知 19
1.6.2 反馈稀疏性 20
1.6.3 数据生成 20
1.7 总结 21
第一部分 基于策略的算法和基于值的算法
第2章 REINFORCE 25
2.1 策略 26
2.2 目标函数 26
2.3 策略梯度 27
2.3.1 策略梯度推导 28
2.4 蒙特卡罗采样 30
2.5 REINFORCE算法 31
2.5.1 改进的REINFORCE算法 32
2.6 实现REINFORCE 33
2.6.1 一种最小化REINFORCE的实现 33
2.6.2 用PyTorch构建策略 36
2.6.3 采样动作 38
2.6.4 计算策略损失 39
2.6.5 REINFORCE训练循环 40
2.6.6 同策略内存回放 41
2.7 训练REINFORCE智能体 44
2.8 实验结果 47
2.8.1 实验:评估折扣因子的影响 47
2.8.2 实验:评估基准线的影响 49
2.9 总结 51
2.10 扩展阅读 51
2.11 历史回顾 51
第3章 SARSA 53
3.1 Q函数和V函数 54
3.2 时序差分学习 56
3.2.1 时序差分学习示例 59
3.3 SARSA中的动作选择 65
3.3.1 探索和利用 66
3.4 SARSA算法 67
3.4.1 同策略算法 68
3.5 实现SARSA 69
3.5.1 动作函数:ε-贪婪 69
3.5.2 计算Q损失 70
3.5.3 SARSA训练循环 71
3.5.4 同策略批处理内存回放 72
3.6 训练SARSA智能体 74
3.7 实验结果 76
3.7.1 实验:评估学习率的影响 77
3.8 总结 78
3.9 扩展阅读 79
3.10 历史回顾 79
第4章 深度Q网络 81
4.1 学习DQN中的Q函数 82
4.2 DQN中的动作选择 83
4.2.1 Boltzmann策略 86
4.3 经验回放 88
4.4 DQN算法 89
4.5 实现DQN 91
4.5.1 计算Q损失 91
4.5.2 DQN训练循环 92
4.5.3 内存回放 93
4.6 训练DQN智能体 96
4.7 实验结果 99
4.7.1 实验:评估网络架构的影响 99
4.8 总结 101
4.9 扩展阅读 102
4.10 历史回顾 102
第5章 改进的深度Q网络 103
5.1 目标网络 104
5.2 双重DQN 106
5.3 优先级经验回放 109
5.3.1 重要性抽样 111
5.4 实现改进的DQN 112
5.4.1 网络初始化 113
5.4.2 计算Q损失 113
5.4.3 更新目标网络 115
5.4.4 包含目标网络的DQN 116
5.4.5 双重DQN 116
5.4.6 优先级经验回放 117
5.5 训练DQN智能体玩Atari游戏 123
5.6 实验结果 128
5.6.1 实验:评估双重DQN与PER的影响 128
5.7 总结 132
5.8 扩展阅读 132
第二部分 组合方法
第6章 优势演员–评论家算法 135
6.1 演员 136
6.2 评论家 136
6.2.1 优势函数 136
6.2.2 学习优势函数 140
6.3 A2C算法 141
6.4 实现A2C 143
6.4.1 优势估计 144
6.4.2 计算价值损失和策略损失 147
6.4.3 演员–评论家训练循环 147
6.5 网络架构 148
6.6 训练A2C智能体 150
6.6.1 在Pong上使用n步回报的A2C算法 150
6.6.2 在Pong上使用GAE的A2C算法 153
6.6.3 在BipedalWalker上使用n步回报的A2C算法 155
6.7 实验结果 157
6.7.1 实验:评估n步回报的影响 158
6.7.2 实验:评估GAE中的影响 159
6.8 总结 161
6.9 扩展阅读 162
6.10 历史回顾 162
第7章 近端策略优化算法 165
7.1 替代目标函数 165
7.1.1 性能突然下降 166
7.1.2 修改目标函数 168
7.2 近端策略优化 174
7.3 PPO算法 177
7.4 实现PPO 179
7.4.1 计算PPO的策略损失 179
7.4.2 PPO训练循环 180
7.5 训练PPO智能体 182
7.5.1 在Pong上使用PPO算法 182
7.5.2 在BipedalWalker上使用PPO算法 185
7.6 实验结果 188
7.6.1 实验:评估GAE中的影响 188
7.6.2 实验:评估裁剪变量的影响 190
7.7 总结 192
7.8 扩展阅读 192
第8章 并行方法 195
8.1 同步并行 196
8.2 异步并行 197
8.2.1 Hogwild!算法 198
8.3 训练A3C智能体 200
8.4 总结 203
8.5 扩展阅读 204
第9章 算法总结 205
第三部分 实践细节
第10章 深度强化学习工程实践 209
10.1 软件工程实践 209
10.1.1 单元测试 210
10.1.2 代码质量 215
10.1.3 Git工作流 216
10.2 调试技巧 218
10.2.1 生命迹象 219
10.2.2 策略梯度诊断 219
10.2.3 数据诊断 220
10.2.4 预处理器 222
10.2.5 内存 222
10.2.6 算法函数 222
10.2.7 神经网络 222
10.2.8 算法简化 225
10.2.9 问题简化 226
10.2.10 超参数 226
10.2.11 实验室工作流 226
10.3 Atari技巧 228
10.4 深度强化学习小结 231
10.4.1 超参数表 231
10.4.2 算法性能比较 234
10.5 总结 238
第11章 SLM Lab 239
11.1 SLM Lab算法实现 239
11.2  Spec文件 241
11.2.1 搜索Spec语法 243
11.3 运行SLM Lab 246
11.3.1 SLM Lab指令 246
11.4 分析实验结果 247
11.4.1 实验数据概述 247
11.5 总结 249
第12章 神经网络架构 251
12.1 神经网络的类型 251
12.1.1 多层感知机 252
12.1.2 卷积神经网络 253
12.1.3 循环神经网络 255
12.2 选择网络族的指导方法 256
12.2.1 MDP与POMDP 256
12.2.2 根据环境选择网络 259
12.3 网络API 262
12.3.1 输入层和输出层形状推断 264
12.3.2 自动构建网络 266
12.3.3 训练步骤 269
12.3.4 基础方法的使用 270
12.4 总结 271
12.5 扩展阅读 271
第13章 硬件 273
13.1 计算机 273
13.2 数据类型 278
13.3 在强化学习中优化数据类型 280
13.4 选择硬件 285
13.5 总结 285
第四部分 环境设计
第14章 状态 289
14.1 状态示例 289
14.2 状态完整性 296
14.3 状态复杂性 297
14.4 状态信息损失 301
14.4.1 图像灰度 301
14.4.2 离散化 302
14.4.3 散列冲突 303
14.4.4 元信息损失 303
14.5 预处理 306
14.5.1 标准化 307
14.5.2 图像预处理 308
14.5.3 时间预处理 310
14.6 总结 313
第15章 动作 315
15.1 动作示例 315
15.2 动作完整性 318
15.3 动作复杂性 319
15.4 总结 323
15.5 扩展阅读:日常事务中的动作设计 324
第16章 奖励 327
16.1 奖励的作用 327
16.2 奖励设计准则 328
16.3 总结 332
第17章 转换函数 333
17.1 可行性检测 333
17.2 真实性检测 335
17.3 总结 337
后记 339
附录A 深度强化学习时间线 343
附录B 示例环境 345
B.1 离散环境 346
B.1.1 CartPole-v0 346
B.1.2 MountainCar-v0 347
B.1.3 LunarLander-v2 347
B.1.4 PongNoFrameskip-v4 348
B.1.5 BreakoutNoFrameskip-v4 349
B.2 连续环境 350
B.2.1 Pendulum-v0 350
B.2.2 BipedalWalker-v2 350
参考文献 353


Contents
1IntroductiontoReinforcementLearning1
1.1ReinforcementLearning1
1.2ReinforcementLearningasMDP6
1.3LearnableFunctionsinReinforcementLearning9
1.4DeepReinforcementLearningAlgorithms11
1.4.1Policy-BasedAlgorithms12
1.4.2Value-BasedAlgorithms13
1.4.3Model-BasedAlgorithms13
1.4.4CombinedMethods15
1.4.5AlgorithmsCoveredinThisBook15
1.4.6On-PolicyandOff-PolicyAlgorithms16
1.4.7Summary16
1.5DeepLearningforReinforcementLearning17
1.6ReinforcementLearningandSupervisedLearning19
1.6.1LackofanOracle19
1.6.2SparsityofFeedback20
1.6.3DataGeneration201.7
Summary21
IPolicy-BasedandValue-BasedAlgorithms232REINFORCE25
2.1Policy26
2.2TheObjectiveFunction26
2.3ThePolicyGradient27
2.3.1PolicyGradientDerivation28
2.4MonteCarloSampling30
2.5REINFORCEAlgorithm31
2.5.1ImprovingREINFORCE32
2.6ImplementingREINFORCE33
2.6.1AMinimalREINFORCEImplementation33
2.6.2ConstructingPolicieswithPyTorch36
2.6.3SamplingActions38
2.6.4CalculatingPolicyLoss39
2.6.5REINFORCETrainingLoop40
2.6.6On-PolicyReplayMemory41
2.7TrainingaREINFORCEAgent44
2.8ExperimentalResults47
2.8.1Experiment:TheEffectofDiscountFactor
472.8.2Experiment:TheEffectofBaseline49
2.9Summary51
2.10FurtherReading51
2.11History51
3SARSA53
3.1TheQ-andV-Functions54
3.2TemporalDifferenceLearning56
3.2.1IntuitionforTemporalDifferenceLearning59
3.3ActionSelectioninSARSA65
3.3.1ExplorationandExploitation66
3.4SARSAAlgorithm67
3.4.1On-PolicyAlgorithms68
3.5ImplementingSARSA69
3.5.1ActionFunction:"-Greedy69
3.5.2CalculatingtheQ-Loss70
3.5.3SARSATrainingLoop71
3.5.4On-PolicyBatchedReplayMemory72
3.6TrainingaSARSAAgent74
3.7ExperimentalResults76
3.7.1Experiment:TheEffectofLearningRate77
3.8Summary78
3.9FurtherReading79
3.10History79
4DeepQ-Networks(DQN)81
4.1LearningtheQ-FunctioninDQN82
4.2ActionSelectioninDQN83
4.2.1TheBoltzmannPolicy86
4.3ExperienceReplay88
4.4DQNAlgorithm89
4.5ImplementingDQN91
4.5.1CalculatingtheQ-Loss91
4.5.2DQNTrainingLoop92
4.5.3ReplayMemory93
4.6TrainingaDQNAgent96
4.7ExperimentalResults99
4.7.1Experiment:TheEffectofNetworkArchitecture99
4.8Summary101
4.9FurtherReading102
4.10History102
5ImprovingDQN103
5.1TargetNetworks104
5.2DoubleDQN106
5.3PrioritizedExperienceReplay(PER)109
5.3.1ImportanceSampling111
5.4ModifiedDQNImplementation112
5.4.1NetworkInitialization113
5.4.2CalculatingtheQ-Loss113
5.4.3UpdatingtheTargetNetwork115
5.4.4DQNwithTargetNetworks116
5.4.5DoubleDQN116
5.4.6PrioritizedExperiencedReplay117
5.5TrainingaDQNAgenttoPlayAtariGames123
5.6ExperimentalResults128
5.6.1Experiment:TheEffectofDoubleDQNandPER128
5.7Summary132
5.8FurtherReading132
IICombinedMethods133
6AdvantageActor-Critic(A2C)135
6.1TheActor136
6.2TheCritic136
6.2.1TheAdvantageFunction136
6.2.2LearningtheAdvantageFunction140
6.3A2CAlgorithm141
6.4ImplementingA2C143
6.4.1AdvantageEstimation144
6.4.2CalculatingValueLossandPolicyLoss147
5NetworkArchitecture148
6.6TraininganA2CAgent150
6.6.1A2Cwithn-StepReturnsonPong150
6.6.2A2CwithGAEonPong153
6.6.3A2Cwithn-StepReturnsonBipedalWalker155
6.7ExperimentalResults157
6.7.1Experiment:TheEffectofn-StepReturns158
6.7.2Experiment:TheEffectofofGAE159
6.8Summary161
6.9FurtherReading162
6.10History162
7ProximalPolicyOptimization(PPO)165
7.1SurrogateObjective165
7.1.1PerformanceCollapse166
7.1.2ModifyingtheObjective168
7.2ProximalPolicyOptimization(PPO)174
7.3PPOAlgorithm177
7.4ImplementingPPO179
7.4.1CalculatingthePPOPolicyLoss179
7.4.2PPOTrainingLoop180
7.5TrainingaPPOAgent182
7.5.1PPOonPong182
7.5.2PPOonBipedalWalker185
7.6ExperimentalResults188
7.6.1Experiment:TheEffectofofGAE188
7.6.2Experiment:TheEffectofClippingVariable"190
7.7Summary192
7.8FurtherReading192
8ParallelizationMethods195
8.1SynchronousParallelization196
8.2AsynchronousParallelization197
8.2.1Hogwild!198
8.3TraininganA3CAgent200
8.4Summary203
8.5FurtherReading2049Algorithm
Summary205
IIIPracticalDetails207
10GettingDeepRLtoWork20
910.1SoftwareEngineeringPractices209
10.1.1UnitTests210
10.1.2CodeQuality215
10.1.3GitWorkflow216
10.2DebuggingTips218
10.2.1SignsofLife219
10.2.2PolicyGradientDiagnoses219
10.2.3DataDiagnoses220
10.2.4Preprocessor222
10.2.5Memory222
10.2.6AlgorithmicFunctions222
10.2.7NeuralNetworks222
10.2.8AlgorithmSimplification225
10.2.9ProblemSimplification226
10.2.10Hyperparameters226
10.2.11LabWorkflow226
10.3AtariTricks228
10.4DeepRLAlmanac231
10.4.1HyperparameterTables231
10.4.2AlgorithmPerformanceComparison234
10.5Summary238
11SLMLab239
11.1AlgorithmsImplementedinSLMLab239
11.2SpecFile241
11.2.1SearchSpecSyntax243
11.3RunningSLMLab246
11.3.1SLMLabCommands246
11.4AnalyzingExperimentResults247
11.4.1OverviewoftheExperimentData247
11.5Summary249
12NetworkArchitectures251
12.1TypesofNeuralNetworks251
12.1.1MultilayerPerceptrons(MLPs)252
12.1.2ConvolutionalNeuralNetworks(CNNs)253
12.1.3RecurrentNeuralNetworks(RNNs)255
12.2GuidelinesforChoosingaNetworkFamily256
12.2.1MDPsvs.POMDPs256
12.2.2ChoosingNetworksforEnvironments259
12.3TheNetAPI262
12.3.1InputandOutputLayerShapeInference264
12.3.2AutomaticNetworkConstruction266
12.3.3TrainingStep269
12.3.4ExposureofUnderlyingMethods270
12.4Summary271
12.5FurtherReading271
13Hardware273
13.1Computer273
13.2DataTypes278
13.3OptimizingDataTypesinRL280
13.4ChoosingHardware285
13.5Summary285
IVEnvironmentDesign287
14States289
14.1ExamplesofStates289
14.2StateCompleteness296
14.3StateComplexity297
14.4StateInformationLoss301
14.4.1ImageGrayscaling301
14.4.2Discretization302
14.4.3HashConflict303
14.4.4MetainformationLoss303
14.5Preprocessing306
14.5.1Standardization307
14.5.2ImagePreprocessing308
14.5.3TemporalPreprocessing310
14.6Summary313
15Actions315
15.1ExamplesofActions315
15.2ActionCompleteness318
15.3ActionComplexity319
15.4Summary323
15.5FurtherReading:ActionDesigninEverydayThings324
16Rewards327
16.1TheRoleofRewards327
16.2RewardDesignGuidelines328
16.3Summary332
17TransitionFunction333
17.1FeasibilityChecks333
17.2RealityCheck335
17.3Summary337
Epilogue339
ADeepReinforcementLearningTimeline343
BExampleEnvironments345B.1DiscreteEnvironments346
B.1.1CartPole-v0346
B.1.2MountainCar-v0347
B.1.3LunarLander-v2347
B.1.4PongNoFrameskip-v4348
B.1.5BreakoutNoFrameskip-v4349
B.2ContinuousEnvironments350
B.2.1Pendulum-v0350
B.2.2BipedalWalker-v2350References353
Index363

教学资源推荐
作者: 顾治华 陈天煌 贺国平
作者: [美] 艾伦 A. A. 多诺万(Alan A. A. Donovan),布莱恩 W. 柯尼汉(Brian W. Kernighan)著
作者: Harvey M.Deitel,Paul J.Deitel
作者: [美]托尼·加迪斯(Tony Gaddis)著
参考读物推荐
作者: [美] 迈克·阿瑟顿(Mike Atherton) 卡丽·哈恩(Carrie Hane) 著
作者: Andr Ben Hamou
作者: (美)Chuck Cavaness Brian Keeton