图书目录

目录

第1章  强化学习基础 1

1.1  强化学习概述 2

1.1.1  强化学习的背景 2

1.1.2  强化学习的核心特点 3

1.1.3  强化学习与其他机器学习方法的区别 3

1.2  强化学习的应用领域 4

1.2.1  机器人控制与路径规划 4

1.2.2  游戏与虚拟环境 5

1.2.3  金融与投资决策 6

1.2.4  自动驾驶与智能交通 6

1.2.5  自然语言处理 7

1.3  强化学习中的常用概念 8

1.3.1  智能体、环境与交互 8

1.3.2  奖励与回报的概念 9

1.3.3  马尔可夫性质与马尔可夫决策过程 9

1.3.4  策略与价值函数 10

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

2.1  马尔可夫决策过程的定义 12

2.1.1  马尔可夫决策过程的核心思想 12

2.1.2  马尔可夫决策过程的形式化定义 12

2.2  马尔可夫决策过程的组成要素 13

2.2.1  状态空间与状态的定义 13

2.2.2  行动空间与行动的定义 14

2.2.3  奖励函数的作用与定义 14

2.2.4  转移概率函数的意义与定义 15

2.2.5  实例分析:构建一个简单的MDP 16

2.3  值函数与策略 18

2.3.1  值函数与策略的定义 18

2.3.2  值函数与策略的用法举例 18

2.4  贝尔曼方程 20

2.4.1  贝尔曼预测方程与策略评估 20

2.4.2  贝尔曼最优性方程与值函数之间的关系 22

2.4.3  贝尔曼最优性方程与策略改进 25

2.4.4  动态规划与贝尔曼方程的关系 28

2.4.5  贝尔曼方程在强化学习中的应用 29

第3章  蒙特卡洛方法 35

3.1  蒙特卡洛预测 36

3.1.1  蒙特卡洛预测的核心思想 36

3.1.2  蒙特卡洛预测的步骤与流程 36

3.1.3  蒙特卡洛预测的样本更新与更新规则 37

3.2  蒙特卡洛控制 39

3.2.1  蒙特卡洛控制的目标与意义 39

3.2.2  蒙特卡洛控制的策略评估与改进 40

3.2.3  蒙特卡洛控制的更新规则与收敛性 43

3.3  探索与策略改进 45

3.3.1  探索与利用的平衡再探讨 46

3.3.2  贪婪策略与? -贪婪策略的比较 47

3.3.3  改进探索策略的方法 50

3.3.4  探索策略对蒙特卡洛方法的影响 52

第4章  Q-learning与贝尔曼方程 55

4.1  Q-learning算法的原理 56

4.1.1  Q-learning的动作值函数 56

4.1.2  Q-learning算法中的贪婪策略与探索策略 58

4.1.3  Q-learning算法的收敛性与收敛条件 60

4.2  贝尔曼方程在Q-learning算法中的应用 62

4.2.1  Q-learning算法与贝尔曼最优性方程的关系 63

4.2.2  贝尔曼方程的迭代计算与收敛 65

4.2.3  Q-learning算法中贝尔曼方程的实际应用 67

4.3  强化学习中的Q-learning 69

4.3.1  ? -贪婪策略与探索的关系 70

4.3.2  Q-learning中探索策略的变化与优化 73

4.3.3  探索策略对Q-learning性能的影响分析 78

4.3.4  使用Q-learning寻找某股票的买卖点 79

第5章  时序差分学习和SARSA算法 83

5.1  时序差分预测 84

5.1.1  时序差分预测的核心思想 84

5.1.2  时序差分预测的基本公式 84

5.1.3  时序差分预测与状态值函数 85

5.1.4  时序差分预测的实例分析 86

5.2  SARSA算法 88

5.2.1  SARSA算法的核心原理和步骤 88

5.2.2  SARSA算法的更新规则 90

5.2.3  SARSA算法的收敛性与收敛条件 93

5.2.4  SARSA算法实例分析 95

5.3  Q-learning算法的时序差分更新 99

5.3.1  时序差分学习与Q-learning的结合 99

5.3.2  Q-learning的时序差分更新算法 101

第6章  DQN算法 105

6.1  引言与背景 106

6.2  DQN算法的基本原理 106

6.3  DQN的网络结构与训练过程 110

6.3.1  DQN的神经网络结构 110

6.3.2  DQN算法的训练过程 112

6.3.3  经验回放 114

6.3.4  目标网络 116

6.4  DQN算法的优化与改进 117

6.4.1  DDQN 117

6.4.2  竞争DQN 118

6.4.3  优先经验回放 122

6.5  基于DQN算法的自动驾驶程序 123

6.5.1  项目介绍 123

6.5.2  具体实现 124

第7章  DDQN算法 133

7.1  DDQN对标准DQN的改进 134

7.2  双重深度Q网络的优势 134

7.3  《超级马里奥》游戏的DDQN强化学习实战 135

7.3.1  项目介绍 135

7.3.2  gym_super_mario_bros库的介绍 136

7.3.3  环境预处理 136

7.3.4  创建DDQN模型 139

7.3.5  模型训练和测试 143

第8章  竞争DQN算法 149

8.1  竞争DQN 算法原理 150

8.1.1  竞争DQN算法的动机和核心思想 150

8.1.2  竞争DQN 网络架构 150

8.2  竞争DQN的优势与改进 151

8.2.1  分离状态价值和动作优势的好处 151

8.2.2  优化训练效率与稳定性 152

8.2.3  解决过度估计问题的潜力 152

8.3  股票交易策略系统 153

8.3.1  项目介绍 153

8.3.2  数据准备 154

8.3.3  数据拆分与时间序列 154

8.3.4  Environment(环境) 156

8.3.5  DQN算法实现 157

8.3.6  DDQN算法的实现 163

8.3.7  竞争DQN算法的实现 167

第9章  REINFORCE算法 173

9.1  策略梯度介绍 174

9.1.1  策略梯度的重要概念和特点 174

9.1.2  策略梯度定理的数学推导 175

9.2  REINFORCE算法基础 175

9.2.1  REINFORCE算法的基本原理 176

9.2.2  REINFORCE算法的更新规则 179

9.2.3  基线函数与REINFORCE算法的优化 180

第10章  Actor-Critic算法 187

10.1  Actor-Critic算法的介绍与原理 188

10.1.1  强化学习中的策略梯度方法 188

10.1.2  Actor-Critic算法框架概述 189

10.1.3  Actor-Critic算法实战:手推购物车游戏 189

10.2  A2C算法 197

10.2.1  A2C算法的基本思想 198

10.2.2  优势函数的引入 198

10.2.3  A2C算法的训练流程 199

10.2.4  A2C算法实战 200

10.3  SAC算法 202

10.3.1  SAC算法的核心思想 202

10.3.2  熵的作用及其在SAC算法中的应用 203

10.3.3  SAC算法实战 204

10.4  A3C算法 206

10.4.1  A3C算法的核心思想 206

10.4.2  A3C算法的训练过程 207

10.4.3  A3C算法实战 207

第11章  PPO算法 211

11.1  PPO算法的背景与概述 212

11.1.1  强化学习中的策略优化方法 212

11.1.2  PPO算法的优点与应用领域 213

11.2  PPO算法的核心原理 213

11.2.1  PPO算法的基本思想 213

11.2.2  目标函数与优化策略的关系 214

11.2.3  PPO算法中的策略梯度计算 215

11.3  PPO算法的实现与调参 215

11.3.1  策略网络结构的设计 215

11.3.2  超参数的选择与调整 218

11.4  PPO算法的变种与改进 221

11.4.1  PPO-Clip算法 221

11.4.2  PPO-Penalty算法 224

11.4.3  PPO2算法 230

第12章  TRPO算法 233

12.1  TRPO算法的意义 234

12.2  TRPO算法的核心原理 234

12.2.1  TRPO算法的步骤 234

12.2.2  信任区域的概念与引入 237

12.2.3  目标函数与约束条件的构建 237

12.2.4  TRPO算法中的策略梯度计算 238

12.3  TRPO算法的变种与改进 241

12.3.1  TRPO-Clip算法 241

12.3.2  TRPO-Penalty算法 243

12.4  TRPO算法优化实战:基于矩阵低秩分解的TRPO 245

12.4.1  优化策略:NN-TRPO和TRLRPO 246

12.4.2  经验数据管理和状态空间离散化 246

12.4.3  定义环境 247

12.4.4  创建强化学习模型 247

12.4.5  创建Agent 248

12.4.6  评估TRPO算法在Acrobot 环境中的性能 249

12.4.7  评估TRPO算法在MountainCarContinuous-v0环境中的性能 250

12.4.8  评估TRPO算法在CustomPendulumEnv环境中的性能 251

12.4.9  性能可视化 251

第13章  连续动作空间的强化学习 253

13.1  连续动作空间强化学习基础 254

13.1.1  连续动作空间介绍 254

13.1.2  动作幅度问题与采样效率问题 255

13.1.3  连续动作空间中的探索问题 255

13.2  DDPG算法 256

13.2.1  DDPG算法的特点 256

13.2.2  DDPG算法在连续动作空间中的优势 257

13.2.3  DDPG算法的实现步骤与网络结构 257

13.2.4  DDPG算法中的经验回放与探索策略 262

13.3  DDPG算法综合实战:基于强化学习的股票交易策略 266

13.3.1  项目介绍 266

13.3.2  准备开发环境 266

13.3.3  下载数据 268

13.3.4  数据预处理 270

13.3.5  构建环境 271

13.3.6  实现深度强化学习算法 273

13.3.7  性能回测 276

第14章  值分布式算法 281

14.1  值分布式算法基础 282

14.1.1  值分布式算法的背景与优势 282

14.1.2  值分布式算法的基本概念 282

14.1.3  强化学习中的值函数表示问题 283

14.1.4  常用的值分布式算法 284

14.2  C51算法 284

14.2.1  C51算法的基本原理 284

14.2.2  C51算法的网络架构 285

14.2.3  C51算法的训练流程 285

14.2.4  C51算法的试验与性能评估 286

14.2.5  使用 TF-Agents训练C51代理 287

14.3  QR-DQN算法 291

14.3.1  QR-DQN算法的核心思想 292

14.3.2  QR-DQN算法的实现步骤 292

14.3.3  QR-DQN算法实战 293

14.4  FPQF算法 295

14.4.1  FPQF算法的核心思想 295

14.4.2  FPQF算法的实现步骤 295

14.4.3  FPQF算法实战 296

14.5  IQN算法 298

14.5.1  IQN 算法的原理与背景 298

14.5.2  IQN算法实战 299

第15章  基于模型的强化学习 301

15.1  基于模型的强化学习基础 302

15.1.1  基于模型的强化学习简介 302

15.1.2  模型的种类与构建方法 302

15.1.3  基于模型的强化学习算法 303

15.2  模型预测控制 304

15.2.1  模型预测控制介绍 304

15.2.2  模型预测控制实战 305

15.3  蒙特卡洛树搜索算法 307

15.3.1  MCTS算法介绍 307

15.3.2  MCTS算法实战 308

15.4  MBPO算法 309

15.4.1  MBPO算法介绍 310

15.4.2  MBPO算法实战 310

15.5  PlaNet算法 313

15.5.1  PlaNet算法介绍 313

15.5.2  PlaNet算法实战 314

第16章  多智能体强化学习实战:Predator-Prey游戏 319

16.1  Predator-Prey游戏介绍 320

16.2  背景介绍 320

16.3  功能模块介绍 321

16.4  环境准备 321

16.4.1  安装OpenAI gymnasium 322

16.4.2  导入库 322

16.5  捕食者-猎物(Predator-Prey)的环境 322

16.5.1  定义自定义强化学习环境类 323

16.5.2  定义自定义强化学习环境类 324

16.5.3  环境重置 325

16.5.4  计算捕食者和猎物的奖励 325

16.5.5  判断回合是否结束 326

16.5.6  检查动作的合法性 326

16.5.7  记录和获取状态历史 326

16.5.8  实现step方法 327

16.5.9  生成视图帧 328

16.5.10  渲染环境的视图 328

16.6  第二个环境 329

16.7  随机智能体 333

16.7.1  应用场景 334

16.7.2  实现随机智能体 334

16.8  DDPG算法的实现 335

16.8.1  信息存储 335

16.8.2  实现Actor模型 336

16.8.3  实现Critic模型 337

16.8.4  实现DDPG智能体 338

16.9  训练模型 341

16.9.1  环境初始化 342

16.9.2  创建智能体 342

16.9.3  训练循环 343

16.9.4  保存模型 345

16.9.5  训练结果可视化 345

第17章  自动驾驶系统 347

17.1  自动驾驶背景介绍 348

17.2  项目介绍 348

17.2.1  功能介绍 348

17.2.2  模块结构 349

17.3  环境准备 349

17.4  配置文件 350

17.5  准备数据文件 353

17.5.1  Carla数据处理与转换 353

17.5.2  加载、处理数据 356

17.5.3  收集、处理数据 357

17.5.4  创建数据集 362

17.6  深度学习模型 363

17.6.1  编码器 363

17.6.2  变分自编码器 368

17.6.3  定义强化学习模型 368

17.7  强化学习 371

17.7.1  强化学习工具类的实现 371

17.7.2  经验回放存储的实现 372

17.7.3  深度强化学习智能体的实现 373

17.7.4  使用SAC算法的强化学习代理的实现 375

17.7.5  实现DDPG用于强化学习 381

17.8  调用处理 384

17.8.1  生成训练数据 384

17.8.2  训练模型 385

17.8.3  收集Carla环境中的专家驾驶数据 387

17.8.4  训练自动驾驶的强化学习代理 390

17.8.5  训练DDPG智能体执行自动驾驶任务 392

17.8.6  评估自动驾驶模型的性能 393

17.9  调试运行 393