前言
李宏毅老师的《深度强化学习》是强化学习领域经典的中文视频之一。李老师幽默风趣的上课风格让晦涩
难懂的强化学习理论变得轻松易懂,他会通过很多有趣的例子来讲解强化学习理论。比如老师经常会用玩 Atari
游戏的例子来讲解强化学习算法。此外,为了教程的完整性,我们整理了周博磊老师的《强化学习纲要》、李科
浇老师的《百度强化学习》以及多个强化学习的经典资料作为补充。对于想入门强化学习又想看中文讲解的人
来说绝对是非常推荐的。
使用说明
• 第 4 章到第 11 章为李宏毅《深度强化学习》的部分;
• 第 1 章和第 2 章根据《强化学习纲要》整理而来;
• 第 3 章和第 12 章根据《百度强化学习》整理而来。
在线阅读地址:https://datawhalechina.github.io/easy-rl/(内容实时更新)
最新版 PDF 获取地址:https://github.com/datawhalechina/easy-rl/releases
编委会
编委:Qi Wang、Yiyuan Yang、Ji Jiang
致谢
特别感谢 Sm1les、LSGOMYP 对本项目的帮助与支持。
扫描下方二维码,然后回复关键词“强化学习”,即可加入“Easy-RL 读者交流群”
Datawhale
一个专注于 AI 领域的开源组织
版权声明
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
→_→ https://github.com/datawhalechina/easy-rl ←_←
目录
第 1 章 Reinforcement Learning 1
1.1 Reinforcement Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Introduction to Sequential Decision Making . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Agent and Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Reward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Sequential Decision Making . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Action Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Major Components of an RL Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Value Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.3 Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.4 Types of RL Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Learning and Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6 Exploration and Exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6.1 K-armed Bandit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.7 Experiment with Reinforcement Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7.1 Gym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7.2 MountainCar-v0 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.10 Something About Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
第
2
章
MDP
25
2.1 Markov Process(MP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.1 Markov Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.2 Markov Process/Markov Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.3 Example of MP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2 Markov Reward Process(MRP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.1 Example of MRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.2 Return and Value function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.3 Why Discount Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.4 Bellman Equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.5 Iterative Algorithm for Computing Value of a MRP . . . . . . . . . . . . . . . . . 31
2.3 Markov Decision Process(MDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.1 MDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.2 Policy in MDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.3 Comparison of MP/MRP and MDP . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.4 Value function for MDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.5 Bellman Expectation Equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.6 Backup Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.7 Policy Evaluation(Prediction) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.8 Prediction and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3.9 Dynamic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2
→_→ https://github.com/datawhalechina/easy-rl ←_←
2.3.10 Policy Evaluation on MDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.11 MDP Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.3.12 Policy Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3.13 Value Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3.14 Dierence between Policy Iteration and Value Iteration . . . . . . . . . . . . . . . 48
2.3.15 Summary for Prediction and Control in MDP . . . . . . . . . . . . . . . . . . . . . 50
2.4 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.5 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6 Something About Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
第 3 章 Tabular Methods 55
3.1 MDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.1 Model-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.2 Model-free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.3 Model-based vs. Model-free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 Q-table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.3 Model-free Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3.1 Monte-Carlo Policy Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3.2 Temporal Dierence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3.3 Bootstrapping and Sampling for DP,MC and TD . . . . . . . . . . . . . . . . . . . 66
3.4 Model-free Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.4.1 Sarsa: On-policy TD Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.2 Q-learning: O-policy TD Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.5 On-policy vs. O-policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.7 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.8 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.9 Something About Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.10 Solve CliWalking with Q-learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.10.1 CliWalking-v0 环境简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.10.2 RL 基本训练接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.10.3 任务要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.10.4 主要代码清单 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.10.5 备注 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
第 4 章 Policy Gradient 83
4.1 Policy Gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2 Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.2.1 Tip 1: Add a Baseline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.2.2 Tip 2: Assign Suitable Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.3 REINFORCE: Monte Carlo Policy Gradient . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.5 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.6 Something About Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3
→_→ https://github.com/datawhalechina/easy-rl ←_←
第 5 章 PPO 102
5.1 From On-policy to O-policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.1.1 Importance Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2 PPO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.2.1 PPO-Penalty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.2.2 PPO-Clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.3 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.4 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.5 Something About Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
第 6 章 DQN 113
6.1 State Value Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.1.1 State Value Function Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.2 State-action Value Function(Q-function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.3 Target Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.3.1 Intuition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.4 Exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.5 Experience Replay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.6 DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.7 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6.8 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6.9 Something About Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
第 7 章 Tips of DQN 130
7.1 Double DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.2 Dueling DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3 Prioritized Experience Replay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.4 Balance between MC and TD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.5 Noisy Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.6 Distributional Q-function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.7 Rainbow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.8 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.9 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.10 Something About Interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.11 Solve Cartpole with DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.11.1 CartPole-v0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.11.2 强化学习基本接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.11.3 CartPole-v0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.11.4 代码清单 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
第 8 章 Q-learning for Continuous Actions 145
8.1 Solution 1 & Solution 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8.2 Solution 3: Design a network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.3 Solution 4: Don’t use Q-learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.4 Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4