猜你喜欢
强化学习精要:核心算法与TensorFlow实现

强化学习精要:核心算法与TensorFlow实现

书籍作者:冯超 ISBN:9787121340000
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9756
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《强化学习精要:核心算法与TensorFlow 实现》用通俗幽默的语言深入浅出地介绍了强化学习的基本算法与代码实现,为读者构建了一个完整的强化学习知识体系,同时介绍了这些算法的具体实现方式。从基本的马尔可夫决策过程,到各种复杂的强化学习算法,读者都可以从本书中学习到。本书除了介绍这些算法的原理,还深入分析了算法之间的内在联系,可以帮助读者举一反三,掌握算法精髓。书中介绍的代码可以帮助读者快速将算法应用到实践中。

《强化学习精要:核心算法与TensorFlow 实现》内容翔实,语言简洁易懂,既适合零基础的人员入门学习,也适合相关科研人员研究参考。

编辑推荐
适读人群 :人工智能从业者、科研人员。有深度学习、强化学习基础的读者。

√从原理剖析到算法精髓,再到TensorFlow代码实现

√剖析强化学习基本概念、马尔可夫决策过程、值函数、策略梯度为思想的一系列算法,以及HRL、HER、MCTS、iLQR、反向强化学习等算法,结合计算框架TensorFlow、Gym、算法集合Baselines给予实战指导

√为读者构建了一个完整的强化学习知识体系

√介绍算法的原理,分析算法之间的内在联系,帮助读者掌握算法精髓

√掌握用强化学习思想解决实际问题的能力

√配书源代码供下载

前言

本书的主要内容

强化学习在机器学习中的难度不低,它需要很多方面的知识辅助,同时自身也已经形成了一个庞大的体系。本书不是一本科普读物,想要阅读本书需要具备一定的基础知识,如微积分、线性代数等。部分章节也会梳理这些基础知识,以确保读者掌握这些知识的核心思想。本书各章节的核心内容如下。

第一部分主要介绍与强化学习有关的基础知识,例如数学基础、对应的程序开发基础、强化学习的基本计算方法等。

第1章已经介绍了强化学习的基本概念,相信读者对强化学习的目标、特点已经有了一定的了解。

第2章介绍相关的数学知识,如线性代数、概率论、重要性采样、信息论等,帮助读者快速回顾即将用到的数学知识。

第3章介绍强化学习中会用到的优化知识,主要介绍常见的梯度下降法(Gradient Descent)、共轭梯度法和自然梯度法,这三种方法将出现在后面的算法中。

第4章介绍书中代码使用的计算框架TensorFlow。TensorFlow 是一款使用十分广泛的框架,很多强化学习的算法选择使用它进行实现,因此我们有必要学习它。本章将简单介绍它的使用方法和一些基本原理,熟悉TensorFlow 的读者可以跳过本章。

第5章介绍本书使用的另一个框架Gym 及在此框架上实现的算法集合Baselines。Gym 集成了大量的强化学习仿真环境,Baselines 则基于TensorFlow 和Gym 实现了一些经典的算法。本章将简单介绍这两个框架的基础知识。

第6章介绍强化学习的基础知识。例如马尔可夫决策过程(Markov Decision Process),以及在简单问题上的两种经典动态规划求解法:策略迭代法和价值迭代法。这些方法是强化学习算法的基石,绝大多数强化学习方法都是根据这些知识演变来的。

第二部分介绍以最优值函数为思想的一系列算法,其中的代表算法为Deep Q Network和Rainbow。

第7章介绍蒙特卡罗(Monte-Carlo)和时序差分(Temporal-Difference)两种求解Model-free 问题的方法,并介绍Deep Q Network 算法的细节。

第8章介绍Deep Q-Learning 的一些改进算法,如Priority Replay Buffer、Duel Network等,并介绍改进的集成算法Rainbow。

第三部分介绍以策略梯度(Policy Gradient)为思想的一系列算法,其中的代表算法为Actor-Critic。

第9章介绍策略梯度法和Actor-Critic 算法的原理,同时介绍A2C 算法的实现细节。

第10章介绍使策略单调提升的算法,其中的代表为Trust Region Policy Optimization(TRPO)算法。

第11章介绍高样本使用率的策略梯度算法,其中的代表算法为ACER 算法和确定策略梯度法(Deterministic Policy Gradient)。

第四部分介绍强化学习其他方面的内容。

第12章介绍回报稀疏情况下的一些求解方法,其中包括基于层次的强化学习和基于课程学习(Curriculum Learning)思想的方法。

第13 章介绍模型已知的一些算法,如基于蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS)的强化学习算法和iLQR 算法的原理。

第五部分介绍反向强化学习的基础知识。

第14章介绍反向强化学习的基础,以及基本的求解方法。

第15 章介绍最大熵反向强化学习(Max Entropy Inverse Reinforcement Learning)和生成对抗模仿学习(Generative Adversarial Imitation Learning)算法的内容。

由于本人才疏学浅,行文间难免有所纰漏,望各位读者多多包涵,不吝赐教。

作者

目录

第一部分强化学习入门与基础知识

1 引言2

1.1 强化学习的概念 2

1.1.1 巴浦洛夫的狗 3

1.1.2 俄罗斯方块 4

1.2 站在被实验者的角度看问题 5

1.3 强化学习效果的评估 8

1.3.1 不断试错 8

1.3.2 看重长期回报 8

1.4 强化学习与监督学习 9

1.4.1 强化学习与监督学习的本质 9

1.4.2 模仿学习 10

1.5 强化学习的实验环境 11

1.5.1 Arcade Learning Environment 12

1.5.2 Box2D 12

1.5.3 MuJoCo 13

1.5.4 Gym 14

1.6 本书的主要内容 15

1.7 参考资料 16

2 数学与机器学习基础17

2.1 线性代数基础 17

2.2 对称矩阵的性质 21

2.2.1 特征值与特征向量 21

2.2.2 对称矩阵的特征值和特征向量 22

2.2.3 对称矩阵的对角化 23

2.3 概率论 24

2.3.1 概率与分布 24

2.3.2 最大似然估计 27

2.4 重要性采样 29

2.5 信息论基础 33

2.6 KL 散度 35

2.7 凸函数及其性质 39

2.8 机器学习的基本概念 41

2.9 机器学习的目标函数 43

2.10 总结 45

3 优化算法47

3.1 梯度下降法 47

3.1.1 什么是梯度下降法 47

3.1.2 优雅的步长 48

3.2 动量算法 53

3.3 共轭梯度法 59

3.3.1 精妙的约束 59

3.3.2 共轭 60

3.3.3 优化步长的确定 63

3.3.4 Gram-Schmidt 方法 64

3.3.5 共轭梯度 65

3.4 自然梯度法 69

3.4.1 基本概念 69

3.4.2 Fisher 信息矩阵 71

3.4.3 自然梯度法目标公式 76

3.5 总结 77

4 TensorFlow 入门78

4.1 TensorFlow 的基本使用方法 78

4.2 TensorFlow 原理介绍 82

4.2.1 创建变量的scope 83

4.2.2 创建一个Variable 背后的故事 89

4.2.3 运算操作 94

4.2.4 tf.gradients 96

4.2.5 Optimizer 102

4.2.6 TensorFlow 的反向传播技巧 106

4.2.7 arg_scope 的使用 109

4.3 TensorFlow 的分布式训练 113

4.3.1 基于MPI 的数据并行模型 114

4.3.2 MPI 的实现:mpi_adam 121

4.4 基于TensorFlow 实现经典网络结构 122

4.4.1 多层感知器 122

4.4.2 卷积神经网络 124

4.4.3 循环神经网络 126

4.5 总结 129

4.6 参考资料 129

5 Gym 与Baselines 130

5.1 Gym 130

5.1.1 Gym 的安装 130

5.1.2 Gym 的基本使用方法 132

5.1.3 利用Gym 框架实现一个经典的棋类游戏:蛇棋 134

5.2 Baselines 138

5.2.1 Baselines 中的Python 3 新特性 139

5.2.2 tf_util 141

5.2.3 对Gym 平台的扩展 142

5.3 总结 144

6 强化学习基本算法145

6.1 马尔可夫决策过程 145

6.1.1 MDP:策略与环境模型 145

6.1.2 值函数与Bellman 公式 147

6.1.3 “表格式”Agent 151

6.2 策略迭代 153

6.2.1 策略迭代法 153

6.2.2 策略提升的证明 159

6.2.3 策略迭代的效果展示 160

6.3 价值迭代 162

6.3.1 N 轮策略迭代 162

6.3.2 从动态规划的角度谈价值迭代 165

6.3.3 价值迭代的实现 167

6.4 泛化迭代 168

6.4.1 两个极端 168

6.4.2 广义策略迭代法 169

6.4.3 泛化迭代的实现 170

6.5 总结 171

第二部分最优价值算法

7 Q-Learning 基础173

7.1 状态转移概率:从掌握到放弃 173

7.2 蒙特卡罗方法 174

7.3 探索与利用 178

7.4 蒙特卡罗的方差问题 181

7.5 时序差分法与SARSA 183

7.6 Q-Learning 186

7.7 Q-Learning 的收敛性分析 189

7.8 从表格形式到价值模型 193

7.9 Deep Q Network 195

7.10 总结 202

7.11 参考资料 202

8 DQN 的改进算法203

8.1 Double Q-Learning 203

8.2 Priority Replay Buffer 204

8.3 Dueling DQN 209

8.4 解决DQN 的冷启动问题 211

8.5 Distributional DQN 214

8.5.1 输出价值分布 214

8.5.2 分布的更新 216

8.6 Noisy Network 218

8.7 Rainbow 221

8.7.1 Rainbow 的模型特点 221

8.7.2 Deep Q Network 的实现 223

8.8 总结 227

8.9 参考资料 227

第三部分基于策略梯度的算法

9 基于策略梯度的算法229

9.1 策略梯度法 229

9.1.1 算法推导 230

9.1.2 算法分析 233

9.1.3 算法改进 234

9.2 Actor-Critic 算法 236

9.2.1 降低算法的方差 236

9.2.2 A3C 算法 238

9.2.3 A2C 算法实战 240

9.3 总结 243

9.4 参考资料 243

10 使策略单调提升的优化算法244

10.1 TRPO 244

10.1.1 策略的差距 245

10.1.2 策略提升的目标公式 247

10.1.3 TRPO 的目标定义 248

10.1.4 自然梯度法求解 251

10.1.5 TRPO 的实现 254

10.2 GAE 256

10.2.1 GAE 的公式定义 256

10.2.2 基于GAE 和TRPO 的值函数优化 259

10.2.3 GAE 的实现 260

10.3 PPO 261

10.3.1 PPO 介绍 261

10.3.2 PPO 算法实践 263

10.4 总结 264

10.5 参考资料 264

11 Off-Policy 策略梯度法265

11.1 Retrace 266

11.1.1 Retrace 的基本概念 266

11.1.2 Retrace 的算法实现 267

11.2 ACER 270

11.2.1 Off-Policy Actor-Critic 270

11.2.2 ACER 算法 272

11.2.3 ACER 的实现 276

11.3 DPG 279

11.3.1 连续空间的策略优化 279

11.3.2 策略模型参数的一致性 280

11.3.3 DDPG 算法 283

11.3.4 DDPG 的实现 286

11.4 总结 289

11.5 参考资料 289

第四部分其他强化学习算法

12 稀疏回报的求解方法291

12.1 稀疏回报的困难 291

12.2 层次强化学习 294

12.3 HER 298

12.3.1 渐进式学习 299

12.3.2 HER 的实现 301

12.4 总结 304

12.5 参考资料 304

13 Model-based 方法305

13.1 AlphaZero 305

13.1.1 围棋游戏 305

13.1.2 Alpha-Beta 树 307

13.1.3 MCTS 309

13.1.4 策略价值模型 312

13.1.5 模型的对决 316

13.2 iLQR 316

13.2.1 线性模型的求解法 317

13.2.2 非线性模型的解法 322

13.2.3 iLQR 的实现 325

13.3 总结 328

13.4 参考资料 328

第五部分反向强化学习

14 反向强化学习入门330

14.1 基本概念 330

14.2 从最优策略求解回报 332

14.2.1 求解回报的目标函数 332

14.2.2 目标函数的约束 334

14.3 求解线性规划 335

14.3.1 线性规划的求解过程 335

14.3.2 实际案例 337

14.4 无限状态下的求解 338

14.5 从样本中学习 342

14.6 总结 344

14.7 参考资料 344

15 反向强化学习算法2.0 345

15.1 最大熵模型 345

15.1.1 指数家族 346

15.1.2 最大熵模型的推导 349

15.1.3 最大熵模型的实现 354

15.2 最大熵反向强化学习 356

15.3 GAIL 361

15.3.1 GAN 的基本概念 361

15.3.2 GAN 的训练分析 363

15.4 GAIL 实现 367

15.5 总结 370

15.6 参考资料 370


标签
人工智能