本书在详细阐述强化学习基本概念与基本理论的基础上,循序渐进地介绍了深度强化学习各常用算法的基本思想、算法伪代码、算法实现、基于实例的算法演示与程序分析等内容。具体介绍了Q-learning算法求解最优路径问题,SARSA算法求解最优安全路径问题,策略迭代算法求解两地租车最优调度问题,价值迭代算法求解最优路径问题,DQN?算法求解平衡系统的最优控制问题,PG算法求解双积分系统的最优控制问题,AC类算法求解股票交易的最优推荐策略,SAC算法求解机器人手臂控球平衡问题,PPO算法求解飞行器平稳着陆最优控制问题,DDPG算法求解四足机器人行走控制策略问题,TD3算法求解PID控制器参数整定问题,多智能体强化学习的基本概念与基本方法,MAPPO算法求解多智能体协作运送物体问题,IPPO算法与MAPPO算法求解协作竞争探索区域问题,MADDPG与DDPG算法求解车辆路径跟踪控制问题。
本书可作为高等院校深度强化学习课程的教材,亦可作为本科生毕业设计、研究生项目设计和广大科研人员的技术参考用书。
第1章 强化学习的基本概念与基本理论 1
1.1 强化学习研究的问题及基本概念 1
1.1.1 一些强化学习研究实例 1
1.1.2 智能体 3
1.1.3 环境 4
1.1.4 状态及其观测 4
1.1.5 状态转移概率 5
1.1.6 动作 6
1.1.7 奖励 8
1.1.8 策略 12
1.2 马尔可夫决策过程 13
1.2.1 马尔可夫性质与转移概率 13
1.2.2 轨迹、回合及经验转换样本 14
1.2.3 回报及折现率 15
1.2.4 马尔可夫决策过程的数学记号及其含义 17
1.3 强化学习的基本函数 19
1.3.1 目标函数及其作用 19
1.3.2 状态价值函数及其作用 19
1.3.3 动作价值函数及其作用 21
1.3.4 Vπ(s)与Qπ(s, a)的互相表示关系 21
1.4 贝尔曼方程理论 23
1.4.1 Bellman方程及其作用 23
1.4.2 最优策略及最优状态价值函数 26
1.4.3 最优动作价值函数及其作用 27
1.4.4 Bellman最优方程及其作用 28
1.4.5 求解Bellman方程的思路 30
*1.5 神经网络的基本知识及几个重要定理 31
1.5.1 神经网络基本知识 31
1.5.2 神经网络通用近似定理 32
1.5.3 可微假设与矩阵点乘运算等基本知识 32
1.5.4 梯度及梯度下降与神经网络权值参数更新公式 34
1.5.5 数学期望基本知识 36
1.5.6 循环迭代结果的存在性与唯一性 37
1.6 本章小结 40
习题1 41
第2章 Q-learning算法求解最优路径问题 42
2.1 Q-learning算法的基本思想 42
2.2 ε-贪婪策略与时序差分算法 43
2.2.1 ε-贪婪策略及其作用 43
2.2.2 时序差分算法 44
2.3 Q-learning算法的实现 45
2.3.1 Q-learning算法的应用条件 45
2.3.2 Q-learning算法的伪代码 45
2.3.3 Q-learning算法的程序步骤 46
2.3.4 Q-learning算法的收敛性 46
2.4 Q-learning算法实例:寻找最优路径 47
2.4.1 问题说明 47
2.4.2 数学模型 48
2.4.3 基于MATLAB自带函数实现求解 48
2.4.4 基于自编代码实现求解 54
2.5 Q-learning算法的优缺点及算法扩展 60
2.5.1 Q-learning算法的优缺点 60
2.5.2 模型扩展 61
2.5.3 算法扩展 62
2.6 本章小结 62
习题2 63
第3章 SARSA算法求解最优安全路径问题 65
3.1 SARSA算法的基本思想 65
3.2 SARSA算法的实现 65
3.2.1 SARSA算法的伪代码 65
3.2.2 SARSA算法的程序步骤 66
3.2.3 on-policy和off-policy 66
3.2.4 SARSA算法的收敛性 67
3.3 SARSA算法实例:寻找最优安全路径 68
3.3.1 问题说明 68
3.3.2 数学模型 68
3.3.3 主程序代码 69
3.3.4 程序分析 70
3.4 SARSA算法与Q-learning算法对比 72
3.4.1 SARSA算法的优缺点 72
3.4.2 SARSA算法与Q-learning算法适用情况对比 72
3.4.3 最优策略对比 72
3.4.4 图像对比分析 73
3.5 本章小结 75
习题3 76
第4章 策略迭代算法求解两地租车最优调度问题 78
4.1 策略迭代算法的基本思想 78
4.2 策略迭代算法的实现 78
4.2.1 策略迭代算法的应用条件 78
4.2.2 策略迭代算法的伪代码 79
4.2.3 策略迭代算法的程序步骤 79
4.2.4 策略迭代算法的收敛性 80
4.3 策略迭代算法实例:寻找最优调度方案 80
4.3.1 问题说明 81
4.3.2 数学模型 81
4.3.3 主程序代码 82
4.3.4 程序分析 86
4.3.5 程序结果解读 88
4.4 策略迭代算法的优缺点及算法扩展 90
4.4.1 策略迭代算法的优缺点 90
4.4.2 模型扩展 91
4.4.3 算法扩展 91
4.5 本章小结 92
习题4 93
第5章 价值迭代算法求解最优路径问题 94
5.1 价值迭代算法的基本思想 94
5.2 价值迭代算法的实现 94
5.2.1 价值迭代算法的应用条件 94
5.2.2 价值迭代算法的伪代码 95
5.2.3 价值迭代算法的程序步骤 95
5.2.4 价值迭代算法的收敛性 96
5.2.5 价值迭代算法与策略迭代算法的联系与区别 96
5.3 价值迭代算法实例:寻找最优路径 97
5.3.1 问题说明 97
5.3.2 数学模型 98
5.3.3 主程序代码 98
5.3.4 程序分析 101
5.3.5 程序结果解读 102
5.4 价值迭代算法的优缺点及算法扩展 103
5.4.1 价值迭代算法的优缺点 103
5.4.2 模型扩展 103
5.4.3 算法扩展 104
5.5 本章小结 104
习题5 106
第6章 DQN算法求解平衡系统的最优控制问题 107
6.1 DQN算法的基本思想 107
6.2 经验回放技术与目标网络技术 107
6.2.1 经验回放技术与重要性采样及其作用 107
6.2.2 当前网络与目标网络 109
6.3 DQN算法的实现 111
6.3.1 DQN算法的应用条件 111
6.3.2 DQN算法的伪代码 111
6.3.3 DQN算法的流程与程序步骤 112
6.3.4 DQN算法的收敛性 114
6.4 DQN算法实例:求解平衡系统最优控制策略 115
6.4.1 问题说明 115
6.4.2 数学模型 115
6.4.3 主程序代码 116
6.4.4 程序分析 121
6.4.5 程序结果解读 121
6.5 代码程序细化 123
6.5.1 问题改进说明 123
6.5.2 主程序代码 123
6.5.3 程序分析 132
6.5.4 程序结果解读 133
6.6 强化学习算法的性能指标 135
6.6.1 任务累计奖励 135
6.6.2 收敛回合与收敛速度 136
6.6.3 收敛平稳性 137
6.6.4 最优策略鲁棒性 137
6.6.5 最优策略泛化力 137
6.6.6 程序的性能测试 140
6.7 DQN算法的优缺点及算法扩展 141
6.7.1 DQN算法的优缺点 141
6.7.2 模型扩展 141
6.7.3 算法扩展 142
6.8 本章小结 143
习题6 145
第7章 PG算法求解双积分系统的最优控制问题 146
7.1 PG算法的基本思想 146
7.2 策略参数优化问题及策略梯度定理 146
7.2.1 策略梯度及其策略参数优化问题 146
7.2.2 策略梯度定理及其几个变形 147
7.3 REINFORCE算法及其伪代码 148
7.3.1 蒙特卡洛方法近似估计策略梯度 149
7.3.2 REINFORCE算法的伪代码 149
7.4 带基线的策略梯度定理及演员网络与评委网络 150
7.4.1 带基线的策略梯度定理 150
7.4.2 基线网络、演员网络与评委网络 151
7.5 PG算法的实现 152
7.5.1 PG算法的应用条件 152
7.5.2 PG算法的伪代码 152
7.5.3 PG算法的程序步骤 153
7.5.4 PG算法的收敛性 154
7.6 PG算法实例:求解双积分系统的最优控制策略 154
7.6.1 问题说明 154
7.6.2 数学模型 155
7.6.3 主程序代码 155
7.6.4 程序分析 159
7.6.5 程序结果解读 159
7.7 PG算法的优缺点及算法扩展 161
7.7.1 PG算法的优缺点 161
7.7.2 模型扩展 161
7.7.3 算法扩展 162
7.8 本章小结 163
习题7 164
第8章 AC类算法求解股票交易最优推荐策略 166
8.1 AC算法的基本思想 166
8.2 AC算法的实现 166
8.2.1 AC算法的应用条件 166
8.2.2 AC算法的伪代码 167
8.2.3 AC算法的程序步骤 168
8.2.4 A2C算法 168
8.2.5 A3C算法 169
8.2.6 AC类算法的收敛性 170
8.3 AC算法实例:求解股票交易最优推荐策略问题 171
8.3.1 问题说明 171
8.3.2 数学模型 171
8.3.3 主程序代码 172
8.3.4 程序分析 176
8.3.5 程序结果解读 177
8.4 AC算法的优缺点及算法扩展 180
8.4.1 AC算法的优缺点 180
8.4.2 模型扩展 181
8.4.3 算法扩展 181
8.5 本章小结 182
习题8 183
第9章 SAC算法求解机器人手臂控球平衡问题 184
9.1 SAC算法的基本思想 184
9.2 最大熵强化学习 184
9.2.1 信息熵概念及其作用与策略熵 184
9.2.2 最大熵强化学习基本知识 185
9.3 SAC算法的实现 186
9.3.1 SAC算法的应用条件 186
9.3.2 SAC算法的伪代码 186
9.3.3 SAC算法的程序步骤 187
9.3.4 SAC算法的收敛性 188
9.4 SAC算法实例:求解机器人手臂控球平衡问题 188
9.4.1 问题说明 188
9.4.2 数学模型 189
9.4.3 主程序代码 189
9.4.4 程序分析 193
9.4.5 程序结果解读 195
9.5 SAC算法的优缺点及算法扩展 197
9.5.1 SAC算法的优缺点 197
9.5.2 模型扩展 197
9.5.3 算法扩展 198
9.6 本章小结 198
习题9 200
第10章 PPO算法求解飞行器平稳着陆最优控制问题 201
10.1 PPO算法的基本思想 201
10.2 PPO算法涉及的关键技术 201
10.2.1 TRPO算法 201
10.2.2 PPO算法的两个技巧 204
10.3 PPO算法的实现 206
10.3.1 PPO算法的应用条件 206
10.3.2 广义优势估计(GAE) 206
10.3.3 PPO算法的伪代码 206
10.3.4 PPO算法的程序步骤 207
10.3.5 PPO算法的收敛性 207
10.4 PPO算法实例:求解飞行器平稳着陆最优控制问题 208
10.4.1 问题说明 208
10.4.2 数学模型 209
10.4.3 主程序代码 210
10.4.4 程序分析 214
10.4.5 程序结果解读 215
10.5 PPO算法的优缺点及算法扩展 217
10.5.1 PPO算法的优缺点 217
10.5.2 模型扩展 217
10.5.3 算法扩展 218
10.6 本章小结 218
习题10 219
第11章 DDPG算法求解四足机器人行走控制策略问题 221
11.1 DDPG算法的基本思想 221
11.2 随机性策略与确定性策略的联系与对比 221
11.3 DDPG算法网络结构及其逻辑关系 222
11.4 DDPG算法的实现 224
11.4.1 DDPG算法的应用条件 224
11.4.2 DDPG算法的伪代码 225
11.4.3 DDPG算法的程序步骤 226
11.4.4 DDPG算法的收敛性 226
11.5 DDPG算法实例:求解四足机器人行走控制策略问题 227
11.5.1 问题说明 227
11.5.2 数学模型 227
11.5.3 主程序代码 229
11.5.4 程序分析 233
11.5.5 程序结果解读 234
11.6 DDPG算法的优缺点及算法扩展 236
11.6.1 DDPG算法的优缺点 236
11.6.2 模型扩展 237
11.6.3 算法扩展 238
11.7 本章小结 238
习题11 240
第12章 TD3算法求解PID控制器参数整定问题 241
12.1 TD3算法的基本思想 241
12.2 TD3算法的实现 242
12.2.1 TD3算法的应用条件 242
12.2.2 TD3算法的伪代码 242
12.2.3 TD3算法的程序步骤 243
12.2.4 TD3算法的收敛性 244
12.3 TD3算法实例:求解PID控制水箱液位问题 244
12.3.1 问题说明 244
12.3.2 数学模型 245
12.3.3 主程序代码 246
12.3.4 程序分析 250
12.3.5 程序结果解读 251
12.4 TD3智能体与PID控制器参数整定结果对比分析 254
12.4.1 PID控制器参数整定简介 254
12.4.2 TD3算法及PID控制器参数整定程序 254
12.4.3 TD3算法及PID控制器参数整定结果对比分析 257
12.5 TD3算法的优缺点及算法扩展 258
12.5.1 TD3算法的优缺点 258
12.5.2 模型扩展 259
12.5.3 算法扩展 260
12.6 本章小结 260
习题12 262
第13章 多智能体强化学习的基本概念与基本方法 263
13.1 多智能体强化学习概述 263
13.1.1 多智能体与单智能体强化学习的联系与区别 263
13.1.2 多智能体强化学习的实际问题举例 264
13.1.3 多智能体强化学习的具体内容 264
13.1.4 多智能体系统类型分类 264
13.2 多智能体强化学习基础知识 265
13.2.1 多智能体强化学习的基本概念 266
13.2.2 多智能体强化学习的相关基本理论 268
13.2.3 多智能体强化学习的基本方法 269
13.3 多智能体强化学习的基本函数 270
13.3.1 策略函数 270
13.3.2 动作价值函数及其作用 271
13.3.3 状态价值函数及其作用 273
13.3.4 优势函数 274
13.3.5 动作评估函数 275
13.3.6 最佳响应策略 275
13.3.7 纳什均衡 275
13.3.8 帕累托(Pareto)非劣策略 276
13.4 本章小结 276
习题13 277
第14章 MAPPO算法求解多智能体协作运送物体问题 278
14.1 MAPPO算法的基本思想 278
14.2 MAPPO算法的实现 278
14.2.1 MAPPO算法的应用条件 278
14.2.2 MAPPO算法的伪代码 278
14.2.3 MAPPO算法的程序步骤 279
14.2.4 MAPPO算法的收敛性 280
14.3 MAPPO算法实例:求解多智能体协作运送物体问题 280
14.3.1 问题说明 280
14.3.2 数学模型 281
14.3.3 主程序代码 282
14.3.4 程序分析 285
14.3.5 程序结果解读 286
14.4 分散式训练与集中式训练对比分析 287
14.4.1 分散式与集中式训练程序组合方案 287
14.4.2 不同训练方案的训练进程对比分析 288
14.4.3 MAPPO算法的仿真结果对比分析 290
14.5 MAPPO算法的优缺点及算法扩展 293
14.5.1 MAPPO算法的优缺点 293
14.5.2 模型扩展 294
14.5.3 算法扩展 295
14.6 本章小结 295
习题14 296
第15章 IPPO算法与MAPPO算法求解协作竞争探索区域问题 297
15.1 IPPO算法的基本思想 297
15.2 IPPO算法的实现 297
15.2.1 IPPO算法的应用条件 297
15.2.2 IPPO算法的伪代码 297
15.2.3 IPPO算法的程序步骤 298
15.2.4 IPPO算法的收敛性 298
15.3 IPPO算法实例:求解多智能体协作竞争探索区域问题 298
15.3.1 问题说明 298
15.3.2 数学模型 299
15.3.3 主程序代码 300
15.3.4 程序分析 304
15.3.5 程序结果解读 305
15.4 IPPO与MAPPO算法程序及其结果对比分析 306
15.4.1 IPPO算法程序与MAPPO算法程序差别 306
15.4.2 5个训练方案的训练进程对比分析 306
15.4.3 IPPO算法与MAPPO算法仿真测试结果对比分析 309
15.5 IPPO算法的优缺点及算法扩展 312
15.5.1 IPPO算法的优缺点 312
15.5.2 模型扩展 312
15.5.3 算法扩展 312
15.6 本章小结 313
习题15 313
第16章 MADDPG与DDPG算法求解车辆路径跟踪控制问题 315
16.1 MADDPG算法的基本思想 315
16.2 MADDPG算法的实现 315
16.2.1 MADDPG算法的应用条件 315
16.2.2 MADDPG算法的伪代码 315
16.2.3 MADDPG算法的程序步骤 316
16.2.4 MADDPG算法的收敛性 317
16.3 MADDPG算法实例:求解车辆路径跟踪控制问题 317
16.3.1 问题说明 317
16.3.2 数学模型 318
16.3.3 主程序代码 319
16.3.4 程序分析 322
16.3.5 程序结果解读 322
16.4 MADDPG与DDPG算法的对比分析 325
16.4.1 两个自带函数程序对比 325
16.4.2 训练进程对比分析 329
16.4.3 仿真结果对比分析 330
16.5 MADDPG算法的优缺点及算法扩展 331
16.5.1 MADDPG算法的优缺点 331
16.5.2 模型扩展 331
16.5.3 算法扩展 332
16.6 本章小结 332
习题16 333
参考文献 335
附录 符号说明 337