《强化学习:原理与Python实现 》

举报
华章计算机 发表于 2019/11/12 09:57:45 2019/11/12
【摘要】 本节书摘来自华章计算机《强化学习:原理与Python实现》 一作者肖智清。

智能系统与技术丛书

强化学习:原理与Python实现

1573532845541296.jpg

肖智清 著

 

 

 

 


 

 

 

 

PREFACE

前  言

强化学习正在改变人类社会的方方面面:基于强化学习的游戏AI已经在围棋、星际争霸等游戏上战胜人类顶尖选手,基于强化学习的控制算法已经运用于机器人、无人机等设备,基于强化学习的交易算法已经部署在金融平台上并取得超额收益。由于同一套强化学习代码在使用同一套参数的情况下能解决多个看起来毫无关联的问题,所以强化学习常被认为是迈向通用人工智能的重要途径。在此诚邀相关专业人士研究强化学习,以立于人工智能的时代之巅。

内容梗概

本书介绍强化学习理论及其Python实现,全书分为三个部分。

第1章:介绍强化学习的基础知识与环境库Gym的使用,并给出一个完整的编程实例。

第2~9章:介绍强化学习的理论和算法。采用严谨的数学语言,推导强化学习的基本理论,进而在理论的基础上讲解算法,并为算法提供配套的Python实现。算法的讲解和Python实现逐一对应,覆盖了所有主流的强化学习算法。

第10~12章:介绍多个综合案例,包括电动游戏、棋盘游戏和自动驾驶。环境部分涵盖Gym库的完整安装和自定义扩展,也包括Gym库以外的环境。算法部分涵盖了《自然》 《科学》等权威期刊发表的多个深度强化学习明星算法。

本书特色

本书完整地介绍了主流的强化学习理论。

全书采用完整的数学体系,各章内容循序渐进,严谨地讲授强化学习的理论基础,主要定理均给出证明过程。基于理论讲解强化学习算法,覆盖了所有主流强化学习算法,包括资格迹等经典算法和深度确定性梯度策略等深度强化学习算法。

全书采用一致的数学符号,并且与权威强化学习教程(如R. Sutton等的《Reinforce-ment Learning: An Introduction(第2版)》和D. Silver的视频课程)完美兼容。

本书各章均提供Python代码,实战性强。

全书代码统一规范,基于最新的Python 3.7(兼容Python 3.6)、Gym 0.12和TensorFlow 2(兼容TensorFlow 1)实现强化学习算法。所有代码在Windows、macOS和Linux三大操作系统上均可运行,书中给出了环境的安装和配置方法。

涉及环境全面。第1~9章提供算法的配套实现,强化学习环境只依赖于Gym的最小安装,使理论学习免受环境安装困扰;第10~12章的综合案例既涵盖Gym库的完整安装和自定义扩展,还包括Gym库以外的环境,让读者体验更加复杂的强化学习任务。

全书实现对硬件配置要求低。第1~9章代码在没有GPU的计算机上也可运行;第10~12章代码在配置普通GPU的计算机上即可运行。

代码下载和技术支持

本书代码下载地址为:http://github.com/zhiqingxiao/rl-book。笔者会不定期更新代码,以适应软件版本的升级。

在此推荐你加入本书学习交流QQ群:935702193。如果有任何意见、建议或经过网络搜索仍不能解决的问题,可以在QQ群里提问。笔者的邮箱是:xzq.xiaozhiqing@gmail.com。

致谢

在此感谢为本书出版做出贡献的所有工作人员。其中,机械工业出版社的高婧雅女士是本书的责任编辑,她对本书的写作提出了很多建设性意见。同时,还要感谢机械工业出版社的其他编辑为提升本书质量所做的大量工作,与他们合作是一个愉快的过程。我要特别感谢我的父亲肖林进和母亲许丽平,他们也参与了本书的编写。同时,还要感谢我的上级、同事和其他亲友,他们在本书写作期间给予我极大的支持。

感谢你选择本书。祝你学习快乐!

 

 

 

 

 

CONTENTS

目  录

前言

第1章 初识强化学习  1

1.1 强化学习及其关键元素  1

1.2 强化学习的应用  3

1.3 智能体/环境接口  4

1.4 强化学习的分类  6

1.4.1 按任务分类  6

1.4.2 按算法分类  7

1.5 如何学习强化学习  8

1.5.1 学习路线  9

1.5.2 学习资源  9

1.6 案例:基于Gym库的智能体/环境交互  9

1.6.1 安装Gym库  10

1.6.2 使用Gym库  10

1.6.3 小车上山  12

1.7 本章小结  14

第2章 Markov决策过程  16

2.1 Markov决策过程模型  16

2.1.1 离散时间Markov决策过程  16

2.1.2 环境与动力  18

2.1.3 智能体与策略  19

2.1.4 奖励、回报与价值函数  19

2.2 Bellman期望方程  21

2.3 最优策略及其性质  25

2.3.1 最优策略与最优价值函数  25

2.3.2 Bellman最优方程  25

2.3.3 用Bellman最优方程求解最优策略  29

2.4 案例:悬崖寻路  31

2.4.1 实验环境使用  31

2.4.2 求解Bellman期望方程  32

2.4.3 求解Bellman最优方程  33

2.5 本章小结  35

第3章 有模型数值迭代  37

3.1 度量空间与压缩映射  37

3.1.1 度量空间及其完备性  37

3.1.2 压缩映射与Bellman算子  38

3.1.3 Banach不动点定理  39

3.2 有模型策略迭代  40

3.2.1 策略评估  40

3.2.2 策略改进  42

3.2.3 策略迭代  44

3.3 有模型价值迭代  45

3.4 动态规划  46

3.4.1 从动态规划看迭代算法  46

3.4.2 异步动态规划  47

3.5 案例:冰面滑行  47

3.5.1 实验环境使用  48

3.5.2 有模型策略迭代求解  49

3.5.3 有模型价值迭代求解  51

3.6 本章小结  52

第4章 回合更新价值迭代  54

4.1 同策回合更新  54

4.1.1 同策回合更新策略评估  54

4.1.2 带起始探索的同策回合更新  58

4.1.3 基于柔性策略的同策回合更新  60

4.2 异策回合更新  62

4.2.1 重要性采样  62

4.2.2 异策回合更新策略评估  64

4.2.3 异策回合更新最优策略求解  65

4.3 案例:21点游戏  66

4.3.1 实验环境使用  66

4.3.2 同策策略评估  67

4.3.3 同策最优策略求解  70

4.3.4 异策策略评估  72

4.3.5 异策最优策略求解  73

4.4 本章小结  74

第5章 时序差分价值迭代  76

5.1 同策时序差分更新  76

5.1.1 时序差分更新策略评估  78

5.1.2 SARSA算法  81

5.1.3 期望SARSA算法  83

5.2 异策时序差分更新  85

5.2.1 基于重要性采样的异策算法  85

5.2.2 Q学习  86

5.2.3 双重Q学习  87

5.3 资格迹  89

5.3.1 λ回报  89

5.3.2 TD(λ)  90

5.4 案例:出租车调度  92

5.4.1 实验环境使用  93

5.4.2 同策时序差分学习调度  94

5.4.3 异策时序差分学习调度  97

5.4.4 资格迹学习调度  99

5.5 本章小结  100

第6章 函数近似方法  101

6.1 函数近似原理  101

6.1.1 随机梯度下降  101

6.1.2 半梯度下降  103

6.1.3 带资格迹的半梯度下降  105

6.2 线性近似  107

6.2.1 精确查找表与线性近似的关系  107

6.2.2 线性最小二乘策略评估  107

6.2.3 线性最小二乘最优策略求解  109

6.3 函数近似的收敛性  109

6.4 深度Q学习  110

6.4.1 经验回放  111

6.4.2 带目标网络的深度Q学习  112

6.4.3 双重深度Q网络  114

6.4.4 对偶深度Q网络  114

6.5 案例:小车上山  115

6.5.1 实验环境使用  116

6.5.2 用线性近似求解最优策略  117

6.5.3 用深度Q学习求解最优策略  120

6.6 本章小结  123

第7章 回合更新策略梯度方法  125

7.1 策略梯度算法的原理  125

7.1.1 函数近似与动作偏好  125

7.1.2 策略梯度定理  126

7.2 同策回合更新策略梯度算法  128

7.2.1 简单的策略梯度算法  128

7.2.2 带基线的简单策略梯度算法  129

7.3 异策回合更新策略梯度算法  131

7.4 策略梯度更新和极大似然估计的关系  132

7.5 案例:车杆平衡  132

7.5.1 同策策略梯度算法求解最优策略  133

7.5.2 异策策略梯度算法求解最优策略  135

7.6 本章小结  137

第8章 执行者/评论者方法  139

8.1 同策执行者/评论者算法  139

8.1.1 动作价值执行者/评论者算法  140

8.1.2 优势执行者/评论者算法  141

8.1.3 带资格迹的执行者/评论者算法  143

8.2 基于代理优势的同策算法  143

8.2.1 代理优势  144

8.2.2 邻近策略优化  145

8.3 信任域算法  146

8.3.1 KL散度  146

8.3.2 信任域  147

8.3.3 自然策略梯度算法  148

8.3.4 信任域策略优化  151

8.3.5 Kronecker因子信任域执行者/评论者算法  152

8.4 重要性采样异策执行者/评论者算法  153

8.4.1 基本的异策算法  154

8.4.2 带经验回放的异策算法  154

8.5 柔性执行者/评论者算法  157

8.5.1 熵  157

8.5.2 奖励工程和带熵的奖励  158

8.5.3 柔性执行者/评论者的网络设计  159

8.6 案例:双节倒立摆  161

8.6.1 同策执行者/评论者算法求解最优策略  162

8.6.2 异策执行者/评论者算法求解最优策略  168

8.7 本章小结  170

第9章 连续动作空间的确定性策略  172

9.1 同策确定性算法  172

9.1.1 策略梯度定理的确定性版本  172

9.1.2 基本的同策确定性执行者/评论者算法  174

9.2 异策确定性算法  176

9.2.1 基本的异策确定性执行者/评论者算法  177

9.2.2 深度确定性策略梯度算法  177

9.2.3 双重延迟深度确定性策略梯度算法  178

9.3 案例:倒立摆的控制  180

9.3.1 用深度确定性策略梯度算法求解  181

9.3.2 用双重延迟深度确定性算法求解  184

9.4 本章小结  187

第10章 综合案例:电动游戏  188

10.1 Atari游戏环境  188

10.1.1 Gym库的完整安装  188

10.1.2 游戏环境使用  190

10.2 基于深度Q学习的游戏AI  191

10.2.1 算法设计  192

10.2.2 智能体的实现  193

10.2.3 智能体的训练和测试  197

10.3 本章小结  198

第11章 综合案例:棋盘游戏  200

11.1 双人确定性棋盘游戏  200

11.1.1 五子棋和井字棋  200

11.1.2 黑白棋  201

11.1.3 围棋  202

11.2 AlphaZero算法  203

11.2.1 回合更新树搜索  203

11.2.2 深度残差网络  206

11.2.3 自我对弈  208

11.2.4 算法流程  210

11.3 棋盘游戏环境boardgame2  210

11.3.1 为Gym库扩展自定义环境  211

11.3.2 boardgame2设计  211

11.3.3 Gym环境接口的实现  214

11.3.4 树搜索接口的实现  216

11.4 AlphaZero算法实现  218

11.4.1 智能体类的实现  218

11.4.2 自我对弈的实现  223

11.4.3 训练智能体  224

11.5 本章小结  225

第12章 综合案例:自动驾驶  226

12.1 AirSim开发环境使用  226

12.1.1 安装和运行AirSim  226

12.1.2 用Python访问AirSim  228

12.2 基于强化学习的自动驾驶  229

12.2.1 为自动驾驶设计强化学习环境  230

12.2.2 智能体设计和实现  235

12.2.3 智能体的训练和测试  237

12.3 本章小结  239


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。