轻松入门强化学习的一本新书《Easy RL 强化学习教程》

Posted 人邮异步社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了轻松入门强化学习的一本新书《Easy RL 强化学习教程》相关的知识,希望对你有一定的参考价值。

强化学习(reinforcement learningRL)讨论的问题是智能体(agent)怎么在复杂、不确定的环境(environment)里面去最大化它能获得的奖励。如图 1.1所示,强化学习由两部分组成:智能体和环境。在强化学习过程中,智能体与环境一直在交互。智能体在环境里面获取某个状态后,它会利用该状态输出一个动作(action),这个动作也称为决策(decision)。然后这个动作会在环境之中被执行,环境会根据智能体采取的动作,输出下一个状态以及当前这个动作带来的奖励。智能体的目的就是尽可能多地从环境中获取奖励。

强化学习的国内相关资料相对较少, 入门较为困难。因此,笔者尝试在网上寻找公开课进行学习,在精心 挑选后,使用李宏毅老师的“深度强化学习”、周博磊老师的“强化学习纲要”以 及李科浇老师的“百度强化学习”公开课(以下简称 “3 门公开课”) 作为学习课 程, 获益匪浅, 于是将所学内容结合笔者个人的理解和体会初步整理成笔记。之 后, 在众多优秀开源教程的启发下, 笔者决定将该笔记制作成教程来让更多的强化学习初学者受益。这本教程就是刚刚上架的“蘑菇书”《Easy RL 强化学习教程》。

Easy RL 强化学习教程

萃取3门强化学习经典公开课精华

李宏毅“深度强化学习”+周博磊“强化学习纲要”+李科浇“世界冠军带你从零实践强化学习”

Datawhale的开源“蘑菇书”——Easy-RL

来自中科院、清华、北大的Datawhale成员自学笔记,GitHub发布9个月下载过万。

小白轻松入门的指南,大厂强化学习面试敲门砖

简单生动的例子+重难点公式详细推导+关键词、习题和面试题+Python实现代码

4项配套资源,满满意外收获!

◆ 可下载Python实现代码 ◆ 可下载习题答案

◆ 可下载面试答案 ◆ 学习交流服务

全书主要内容源于 3 门公开课, 并在其基础上进行了一定的原创。比如, 为了尽可能地降低阅读门槛, 笔者对 3 门公开课的精华内容进行选取并优化, 所涉及的公式都有详细的推导过程, 对较难理解的知识点进行了重点讲解和强化, 方 便读者较为轻松地入门。此外, 为了书籍的丰富性, 笔者还补充了不少 3 门公开 课之外的强化学习相关知识。全书共 13 章, 大体上可分为 2 个部分: 第 1 部分 包括第 1 ∼ 3 章,介绍强化学习基础知识以及传统强化学习算法;第 2 部分包括

第 4 ∼ 13 章, 介绍深度强化学习算法以及常见问题的解决方法。第 2 部分各章 相对独立,读者可根据自己的兴趣和时间情况选择阅读。

李宏毅老师是台湾大学副教授,其研究方向为机器学习、深度学习及语音识别 与理解。李宏毅老师的课程在国内很受欢迎, 很多人选择的机器学习入门学习材料都是李宏毅老师的公开课视频。李宏毅老师的“深度强化学习”课程幽默风趣, 他会通过很多有趣的例子来讲解强化学习理论。比如李老师经常会用玩雅达利游 戏的例子来讲解强化学习算法。周博磊老师是 UCLA(University of California, Los Angeles,加利福尼亚大学洛杉矶分校)助理教授(原香港中文大学助理教授), 其研究方向为机器感知和智能决策, 在人工智能顶级会议和期刊发表了 50 余篇 学术论文, 论文总引用数超过 1 万次。周博磊老师的“强化学习纲要”课程理论 严谨、内容丰富, 全面地介绍了强化学习领域, 并且有相关的代码实践。李科浇 老师是飞桨强化学习 PARL 团队核心成员,百度高级研发工程师,其所在团队曾 两度夺得 NeurIPS 强化学习赛事冠军。李科浇老师的“百度强化学习”实战性强, 通过大量的代码来讲解强化学习。经过笔者不完全统计, 本书所依托的 3 门公开 课的总播放量为 80 多万,深受广大初学者欢迎,3 位老师的课程均可在哔哩哔哩 (B 站)上进行观看。读者在观看相关公开课的同时,可以使用本书作为教辅,进 一步深入理解公开课的内容。

本书在大部分章节的最后设置了原创的关键词、习题和面试题来提高和巩固 读者对知识的清晰度和掌握程度。其中,关键词部分总结了对应章节的重点概念, 方便读者高效地回忆并掌握核心内容; 习题部分以问答的形式阐述了本章节中出 现的知识点,帮助读者理清知识脉络;面试题部分来源于大厂的算法岗面试真题, 通过还原最真实的面试场景和面试的问题, 帮助读者开阔思路, 为读者面试理想 的岗位助力。此外, 笔者以为, 强化学习是一个理论与实践相结合的学科, 读者 不仅要理解其算法背后的一些数学原理, 还要通过上机实践来实现算法。本书配 有对应的 Python 代码实现, 可以让读者通过动手实现各种经典的强化学习算法, 充分掌握强化学习算法的原理。本书经过近 1 年的更新迭代以及读者对于我们开源版教程的上百次的反馈和交流,对您的学习和工作一定会是一个有利的加持。

本书包含什么内容?

全书共13章,大体上可分为两个部分:第一部分包括第1~3章,介绍强化学习基础知识以及传统强化学习算法;第二部分包括第4~13章,介绍深度强化学习算法及其常见问题的解决方法。第二部分各章相对独立,读者可根据自己的兴趣和时间选择性阅读。

我是刚刚毕业的学生,想去“大厂”工作,本书是否有帮助?

本书习题部分以问答的形式阐述了相应章中出现的知识点,以帮助读者理清知识脉络;面试题部分的内容源于“大厂”的算法岗面试真题,通过还原真实的面试场景和面试问题,为读者面试理想的岗位助力。

目录

第 1 章绪论 1

1.1 强化学习概述 1

1.1.1 强化学习与监督学习 1

1.1.2 强化学习的例子 5

1.1.3 强化学习的历史 7

1.1.4 强化学习的应用 8

1.2 序列决策概述 10

1.2.1 智能体和环境 10

1.2.2 奖励 10

1.2.3 序列决策 10

1.3 动作空间 12

1.4 强化学习智能体的组成部分和类型 12

1.4.1 策略 13

1.4.2 价值函数 13

1.4.3 模型 14

1.4.4 强化学习智能体的类型 16

1.5 学习与规划 19

1.6 探索和利用 20

1.7 强化学习实验 22

1.7.1 Gym 23

1.7.2 MountainCar-v0 例子27

1.8 关键词 30

1.9 习题 31

1.10 面试题 32

参考文献 32

第 2 章马尔可夫决策过程 33

2.1 马尔可夫过程 34

2 | Easy RL:强化学习教程

2.1.1 马尔可夫性质 34

2.1.2 马尔可夫过程/马尔可夫链 34

2.1.3 马尔可夫过程的例子 35

2.2 马尔可夫奖励过程 36

2.2.1 回报与价值函数 36

2.2.2 贝尔曼方程 38

2.2.3 计算马尔可夫奖励过程价值的迭代算法 42

2.2.4 马尔可夫奖励过程的例子 43

2.3 马尔可夫决策过程 44

2.3.1 马尔可夫决策过程中的策略 44

2.3.2 马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别 45

2.3.3 马尔可夫决策过程中的价值函数 45

2.3.4 贝尔曼期望方程 46

2.3.5 备份图47

2.3.6 策略评估 49

2.3.7 预测与控制 51

2.3.8 动态规划 53

2.3.9 使用动态规划进行策略评估 53

2.3.10 马尔可夫决策过程控制 56

2.3.11 策略迭代 58

2.3.12 价值迭代 61

2.3.13 策略迭代与价值迭代的区别 63

2.3.14 马尔可夫决策过程中的预测和控制总结 66

2.4 关键词 67

2.5 习题 68

2.6 面试题 69

参考文献 69

第3 章表格型方法 70

3.1 马尔可夫决策过程 70

3.1.1 有模型71

3.1.2 免模型72

3.1.3 有模型与免模型的区别 73

3.2 Q 表格 73

3.3 免模型预测 77

3.3.1 蒙特卡洛方法 77

3.3.2 时序差分方法 80

3.3.3 动态规划方法、蒙特卡洛方法以及时序差分方法的自举和采样 86

3.4 免模型控制 88

3.4.1 Sarsa:同策略时序差分控制 91

3.4.2 Q 学习:异策略时序差分控制 94

3.4.3 同策略与异策略的区别 97

3.5 使用Q 学习解决悬崖寻路问题 98

3.5.1 CliffWalking-v0 环境简介 98

3.5.2 强化学习基本接口 100

3.5.3 Q 学习算法 102

3.5.4 结果分析 103

3.6 关键词 104

3.7 习题105

3.8 面试题 105

参考文献 105

第4 章策略梯度 106

4.1 策略梯度算法 106

4.2 策略梯度实现技巧 115

4.2.1 技巧1:添加基线 115

4.2.2 技巧2:分配合适的分数 117

4.3 REINFORCE:蒙特卡洛策略梯度 119

4.4 关键词 125

4.5 习题125

4.6 面试题 125

参考文献 126

第5 章近端策略优化 127

5.1 从同策略到异策略 127

5.2 近端策略优化 133

5.2.1 近端策略优化惩罚 134

4 | Easy RL:强化学习教程

5.2.2 近端策略优化裁剪 135

5.3 关键词 138

5.4 习题139

5.5 面试题 139

参考文献 139

第6 章深度Q 网络 140

6.1 状态价值函数 140

6.2 动作价值函数 145

6.3 目标网络 150

6.4 探索152

6.5 经验回放 154

6.6 深度Q 网络算法总结156

6.7 关键词 157

6.8 习题158

6.9 面试题 159

参考文献 159

第7 章深度Q 网络进阶技巧 160

7.1 双深度Q 网络 160

7.2 竞争深度Q 网络 162

7.3 优先级经验回放 165

7.4 在蒙特卡洛方法和时序差分方法中取得平衡 166

7.5 噪声网络 167

7.6 分布式Q 函数 168

7.7 彩虹170

7.8 使用深度Q 网络解决推车杆问题 172

7.8.1 CartPole-v0 简介 172

7.8.2 深度Q 网络基本接口 173

7.8.3 回放缓冲区175

7.8.4 Q 网络 175

7.8.5 深度Q 网络算法 176

7.8.6 结果分析 178

7.9 关键词 179

7.10 习题 180

7.11 面试题 180

参考文献 180

第8 章针对连续动作的深度Q 网络 181

8.1 方案1:对动作进行采样182

8.2 方案2:梯度上升 182

8.3 方案3:设计网络架构 182

8.4 方案4:不使用深度Q 网络 183

8.5 习题184

第9 章演员-评论员算法 185

9.1 策略梯度回顾 185

9.2 深度Q 网络回顾 186

9.3 演员-评论员算法 187

9.4 优势演员-评论员算法 188

9.5 异步优势演员-评论员算法 190

9.6 路径衍生策略梯度 191

9.7 与生成对抗网络的联系 195

9.8 关键词 196

9.9 习题196

9.10 面试题 196

第 10 章深度确定性策略梯度 197

10.1 离散动作与连续动作的区别 197

10.2 深度确定性策略梯度199

10.3 双延迟深度确定性策略梯度 203

10.4 使用深度确定性策略梯度解决倒立摆问题 205

10.4.1 Pendulum-v1 简介 205

10.4.2 深度确定性策略梯度基本接口 206

10.4.3 Ornstein-Uhlenbeck 噪声 207

10.4.4 深度确定性策略梯度算法 208

10.4.5 结果分析209

10.5 关键词 211

10.6 习题 211

10.7 面试题 211

参考文献 211

第 11 章稀疏奖励212

11.1 设计奖励 212

11.2 好奇心 214

11.3 课程学习 216

11.4 分层强化学习 219

11.5 关键词 221

11.6 习题 222

参考文献 222

第 12 章模仿学习223

12.1 行为克隆 223

12.2 逆强化学习 226

12.3 第三人称视角模仿学习 231

12.4 序列生成和聊天机器人 232

12.5 关键词 233

12.6 习题 233

参考文献 234

第 13 章AlphaStar 论文解读 235

13.1 AlphaStar 以及背景简介 235

13.2 AlphaStar 的模型输入和输出是什么呢?——环境设计 235

13.2.1 状态(网络的输入) 236

13.2.2 动作(网络的输出) 236

13.3 AlphaStar 的计算模型是什么呢?——网络结构 237

13.3.1 输入部分237

13.3.2 中间过程239

13.3.3 输出部分239

13.4 庞大的AlphaStar 如何训练呢?——学习算法 240

13.4.1 监督学习240

13.4.2 强化学习241

13.4.3 模仿学习242

13.4.4 多智能体学习/自学习 243

13.5 AlphaStar 实验结果如何呢?——实验结果 243

13.5.1 宏观结果243

13.5.2 其他实验(消融实验) 244

13.6 关于AlphaStar 的总结 245

参考文献 245

以上是关于轻松入门强化学习的一本新书《Easy RL 强化学习教程》的主要内容,如果未能解决你的问题,请参考以下文章

一周上榜新书:强化学习深度学习最受程序员关注

强化学习入门笔记 | UCL silver RL | UC Berkely cs285 DRL

深度强化学习(Deep Reinforcement Learning)入门:RL base & DQN-DDPG-A3C introduction

强化学习教程来啦!贡献者来自中科院清华北大3位男神!

为啥 RL 被称为“强化”学习?

强化学习:初识