本书介绍强化学习理论及其Python实现。第1章: 从零开始介绍强化学习的背景知识, 介绍环境库Gym的使用。第2-15章: 基于折扣奖励离散时间Markov决策过程模型, 介绍强化学习的主干理论和常见算法。采用数学语言推导强化学习的基础理论, 进而在理论的基础上讲解算法。Python实现和算法讲解一一对应, 针对深度强化学习算法还给出了基于TensorFlow 2和PyTorch 1的对照实现。第16章: 介绍其他强化学习模型, 包括平均奖励模型、连续时间模型、非齐次模型, 半Markov模型、部分可观测模型等, 以便更好了解强化学习研究的全貌。
携七大优势,带你一书学透强化学习,掌握ChatGPT背后的关键技术。
1)内容完备:完整地介绍了主流强化学习理论,全面覆盖主流强化学习算法,包括了资格迹等经典算法和MuZero等深度强化学习算法,且给出主要定理的证明过程。让你参透ChatGPT背后的关键技术。
2)表述一致:全书采用统一的数学符号,并兼容主流强化学习教程。
3)配套丰富:每章都配有知识点总结、代码和习题。
4)环境全面:既有Gym的内置环境,也有在Gym基础上进一步扩展的第三方环境,还带领读者一起实现了自定义的环境。
5)兼容广泛:所有代码均可在Windows、macOS、Linux上运行,提供安装和配置方法。同时,为深度强化学习相关算法提供了TensorFlow和PyTorch的对照实现,学习方案任你选择。
6)硬件要求低:所有代码均可在没有GPU的个人计算机上运行,也可以在线查阅运行结果。
7)版权输出:本书内容受到国际知名出版社Springer和评审专家认可,英文版同步输出,以飨读者。
为什么要写作本书
强化学习正在改变人类社会的方方面面:基于强化学习的游戏AI已经在围棋、《星际争霸》等游戏上全面碾压人类顶尖选手,基于强化学习的控制算法已经运用于机器人、无人机等设备,基于强化学习的交易算法已经部署在金融平台上并取得了超额收益。由于同一套强化学习代码在同一套参数设置下能解决多个看起来毫无关联的问题,因此强化学习常被认为是迈向通用人工智能的重要途径。
本书特色
本书完整地介绍了主流强化学习理论。
选用现代强化学习理论体系,突出主干,主要定理均给出证明过程。基于理论讲解强化学习算法,全面覆盖主流强化学习算法,包括资格迹等经典算法和MuZero等深度强化学习算法。
全书采用完整的数学体系各章内容循序渐进。全书采用一致的数学符号,并兼容主流强化学习教程。
本书各章均提供Python代码,实战性强。
简洁易懂:全书代码统一规范,简约完备,与算法讲解直接对应。
查阅、运行方便:所有代码及运行结果均在GitHub上展示,既可以在浏览器上查阅,也可以下载到本地运行。各算法实现放在单独的文件里,可单独查阅和运行。
环境全面:既有Gym的内置环境,也有在Gym基础上进一步扩展的第三方环境,还带领读者一起实现自定义的环境。
兼容性好:所有代码在三大操作系统(Windows、macOS、Linux)上均可运行,书中给出了环境的安装和配置方法。深度强化学习代码还提供了TensorFlow 2和PyTorch对照代码。读者可任选其一。
版本新:全书代码基于最新版本的Python及其扩展库。作者会在GitHub上更新代码以适应版本升级。
硬件要求低:所有代码均可在没有GPU的个人计算机上运行。
本书主要内容
本书介绍强化学习理论及其Python实现。
第1章:从零开始介绍强化学习的背景知识,以及环境库Gym的使用。
第2~15章:基于折扣奖励离散时间Markov决策过程模型,介绍强化学习的主干理论和常见算法。采用数学语言推导强化学习的基础理论,进而在理论的基础上讲解算法,并为算法提供配套代码实现。基础理论的讲解突出主干部分,算法讲解全面覆盖主流的强化学习算法,包括经典的非深度强化学习算法和近年流行的深度强化学习算法。Python实现和算法讲解一一对应,对于深度强化学习算法还给出了基于TensorFlow 2和PyTorch的对照实现。
第16章:介绍其他强化学习模型,包括平均奖励模型、连续时间模型、非齐次模型、半Markov模型、部分可观测模型等,以便让读者更好地了解强化学习研究的全貌。
勘误与支持
本书配套GitHub仓库https://github.com/zhiqingxiao/rlbook提供勘误、代码、习题答案、本书涉及的参考资料的具体信息、读者交流群等资源。我会在GitHub上不定期更新内容。
作者的电子邮箱是:xzqxiaozhiqing@gmailcom。
致谢
在此感谢为本书出版做出贡献的所有工作人员。本书还采纳了童峥岩、赵永进、黄永杰、李伟、马云龙、黄俊峰、李岳铸、李柯、龙涛、陈庆虎等专家的意见。向他们表示感谢。
特别要感谢我父母的无私支持,感谢我的上司与同事对本书出版的关心和支持。
感谢你选择本书。祝学习快乐!
肖智清
肖智清
强化学习一线研发人员,清华大学工学博士。在国内外出版多本人工智能专著,在知名期刊和会议上发表多篇第一作者论文。他是开源项目Gym的源码贡献者,并在国内外多项程序设计和数据科学竞赛上获得冠军。
目录
数学符号表
前言
第1章初识强化学习111强化学习及其关键元素1
1.2强化学习的应用3
1.3智能体/环境接口4
1.4强化学习的分类6
1.4.1按任务分类6
1.4.2按算法分类8
1.5强化学习算法的性能指标9
1.6案例:基于Gym库的智能体/环境接口10
1.6.1安装Gym库11
1.6.2使用Gym库11
1.6.3小车上山13
1.7本章小结18
1.8练习与模拟面试19
第2章Markov决策过程2121Markov决策过程模型21
2.1.1离散时间Markov决策过程21
2.1.2环境与动力24
2.1.3策略26
2.1.4带折扣的回报26
2.2价值27
2.2.1价值的定义28
2.2.2价值的性质28
2.2.3策略的偏序和改进34
2.3带折扣的分布35
2.3.1带折扣的分布的定义35
2.3.2带折扣的分布的性质37
2.3.3带折扣的分布和策略的等价性39
2.3.4带折扣的分布下的期望40
2.4最优策略与最优价值41
2.4.1从最优策略到最优价值41
2.4.2最优策略的存在性42
2.4.3最优价值的性质与Bellman
最优方程43
2.4.4用线性规划法求解最优价值48
2.4.5用最优价值求解最优策略51
2.5案例:悬崖寻路52
2.5.1使用环境52
2.5.2求解策略价值53
2.5.3求解最优价值54
2.5.4求解最优策略55
2.6本章小结55
2.7练习与模拟面试57
第3章有模型数值迭代5931Bellman算子及其性质59
3.2有模型策略迭代64
3.2.1策略评估65
3.2.2策略改进66
3.2.3策略迭代67
3.3价值迭代68
3.4自益与动态规划69
3.5案例:冰面滑行70
3.5.1使用环境71
3.5.2有模型策略迭代求解73
3.5.3有模型价值迭代求解76
3.6本章小结76
3.7练习与模拟面试77
第4章回合更新价值迭代78
4.1同策回合更新79
4.1.1同策回合更新策略评估79
4.1.2带起始探索的同策回合更新84
4.1.3基于柔性策略的同策回合更新86
4.2异策回合更新89
4.2.1重要性采样89
4.2.2异策回合更新策略评估92
4.2.3异策回合更新最优策略求解93
4.3实验:21点游戏94
4.3.1使用环境94
4.3.2同策策略评估96
4.3.3同策最优策略求解98
4.3.4异策策略评估101
4.3.5异策最优策略求解102
4.4本章小结103
4、5练习与模拟面试104
第5章时序差分价值迭代10651时序差分目标106
5.2同策时序差分更新109
5.2.1时序差分更新策略评估109
5.2.2SARSA算法113
5.2.3期望SARSA算法115
5.3异策时序差分更新117
5.3.1基于重要性采样的异策算法117
5.3.2Q学习119
5.3.3双重Q学习120
5.4资格迹121
5.4.1λ回报122
5.4.2TD(λ)算法123
5.5案例:的士调度125
5.5.1使用环境126
5.5.2同策时序差分学习127
5.5.3异策时序差分学习130
5.5.4资格迹学习132
56本章小结134
57练习与模拟面试135
第6章函数近似方法137
6.1函数近似原理138
6.2基于梯度的参数更新139
6.2.1随机梯度下降139
6.2.2半梯度下降141
6.2.3带资格迹的半梯度下降142
6.3函数近似的收敛性144
6.3.1收敛的条件144
6.3.2Baird反例145
6.4深度Q网络147
6.4.1经验回放148
6.4.2目标网络151
6.4.3双重深度Q网络152
6.4.4决斗深度Q网络153
6.5案例:小车上山154
6.5.1使用环境155
6.5.2用线性近似求解最优策略156
6.5.3用深度Q网络求解最优策略161
6.6本章小结172
6.7练习与模拟面试172
第7章回合更新策略梯度方法17471策略梯度算法的原理174
7.1.1函数近似策略174
7.1.2策略梯度定理175
7.1.3策略梯度和极大似然估计的关系179
7.2同策回合更新策略梯度算法179
7.2.1简单的策略梯度算法180
7.2.2带基线的简单策略梯度算法180
7.3异策回合更新策略梯度算法182
7.4案例:车杆平衡183
7.4.1用同策策略梯度算法求解最优策略184
7.4.2用异策策略梯度算法求解最优策略189
7.5本章小结195
7.6练习与模拟面试196
第8章执行者/评论者197
8.1执行者/评论者方法197
8.2同策执行者/评论者算法198
8.2.1动作价值执行者/评论者算法198
8.2.2优势执行者/评论者算法199
8.2.3带资格迹的执行者/评论者算法200
8.3基于代理优势的同策算法201
8.3.1性能差别引理201
8.3.2代理优势202
8.3.3邻近策略优化203
8.4自然梯度和信赖域算法205
8.4.1KL散度与Fisher信息矩阵206
8.4.2代理优势的信赖域208
8.4.3自然策略梯度算法209
8.4.4信赖域策略优化212
8.5重要性采样异策执行者/评论者算法213
8.6案例:双节倒立摆214
8.6.1用同策执行者/评论者算法求解最优策略216
8.6.2用基于代理优势的同策算法求解最优策略226
8.6.3用自然策略梯度和信赖域算法求解最优策略230
8.6.4用重要性采样异策执行者/评论者算法求解最优策略242
8.7本章小结246
8.8练习与模拟面试247
第9章连续动作空间的确定性策略248
9.1确定性策略梯度定理248
9.2同策确定性算法250
9.3异策确定性算法251
9.3.1基本的异策确定性执行者/评论者算法251
9.3.2深度确定性策略梯度算法253
9.3.3双重延迟深度确定性策略梯度算法254
9.4探索过程255
9.5案例:倒立摆的控制256
9.5.1用深