强化学习一线研发人员撰写,涵盖主流强化学习算法和多个综合案例,在理论基础、算法设计、性能分析等多个角度全面覆盖强化学习的原理,并逐章配套Python代码。
本书理论完备,涵盖主流非深度强化学习算法和深度强化学习算法;实战性强,基于Python、Gym、TensorFlow 2等构建,并有AlphaZero等综合案例。全书共12章,主要内容如下。
第1章:介绍强化学习的基础知识与强化学习环境库Gym的使用,并给出完整的编程实例。
第2~9章:介绍强化学习的理论知识。以Markov决策过程为基础模型,覆盖了所有主流强化学习理论和算法,包括资格迹等经典算法和深度确定性梯度策略等深度强化学习算法。所有章节都提供了与算法配套的Python程序,使读者完全掌握强化学习算法的原理与应用。
第10~12章:介绍了多个热门综合案例,包括电动游戏、棋盘游戏和自动驾驶。算法部分涵盖了在《自然》《科学》等期刊上发表的多个深度强化学习明星算法,包括AlphaGo的全新改进版AlphaZero。
前言
第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