【包邮】强化学习精要 核心算法与TensorFlow实现+深入浅出强化学习 原理入门

【包邮】强化学习精要 核心算法与TensorFlow实现+深入浅出强化学习 原理入门 pdf epub mobi txt 电子书 下载 2025

图书标签:
  • 强化学习
  • 机器学习
  • 深度学习
  • TensorFlow
  • 算法
  • 入门
  • 原理
  • 智能体
  • 包邮
  • 书籍
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 蓝墨水图书专营店
出版社: 电子工业出版社
ISBN:9787121340000
商品编码:27795100280

具体描述


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

 

 

 

丛书名 :博文视点AI系列

作 译 者:冯超

出版时间:2018-04    千 字 数:470

版    次:01-01    页    数:392

开    本:16开

装    帧:

I S B N :9787121340000     

换    版:

所属分类:科技 >> 计算机 >> 计算机科学

纸质书定价:¥80.0  

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

 

 

 

目录

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

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 参考资料. . . . . . . . . . . . . . . .

 

 

深入浅出强化学习:原理入门

    定价    79.00

出版社    电子工业出版社

版次    1

出版时间    2018年01月

开本    16

作者    郭宪,方勇纯 著

装帧    平装

页数    256

字数    

ISBN编码    9787121329180

 

 

1 绪论 1

 

1.1 这是一本什么书 1

 

1.2 强化学习可以解决什么问题 2

 

1.3 强化学习如何解决问题 4

 

1.4 强化学习算法分类及发展趋势 5

 

1.5 强化学习仿真环境构建 7

 

1.5.1 gym安装及简单的demo示例 8

 

1.5.2 深入剖析gym环境构建 10

 

1.6 本书主要内容及安排 12

 

第*篇 强化学习基础 17

 

2 马尔科夫决策过程 18

 

2.1 马尔科夫决策过程理论讲解 18

 

2.2 MDP中的概率学基础讲解 26

 

2.3 基于gym的MDP实例讲解 29

 

2.4 习题 34

 

3 基于模型的动态规划方法 36

 

3.1 基于模型的动态规划方法理论 36

 

3.2 动态规划中的数学基础讲解 47

 

3.2.1 线性方程组的迭代解法 47

 

3.2.2 压缩映射证明策略评估的收敛性 49

 

3.3 基于gym的编程实例 52

 

3.4 *优控制与强化学习比较 54

 

3.5 习题 56

 

第*篇 基于值函数的强化学习方法 57

 

4 基于蒙特卡罗的强化学习方法 58

 

4.1 基于蒙特卡罗方法的理论 58

 

4.2 统计学基础知识 67

 

4.3 基于Python的编程实例 71

 

4.4 习题 74

 

5 基于时间差分的强化学习方法 75

 

5.1 基于时间差分强化学习算法理论讲解 75

 

5.2 基于Python和gym的编程实例 83

 

5.3 习题 87

 

6 基于值函数逼近的强化学习方法 88

 

6.1 基于值函数逼近的理论讲解 88

 

6.2 DQN及其变种 94

 

6.2.1 DQN方法 94

 

6.2.2 Double DQN 100

 

6.2.3 优先回放(Prioritized Replay) 102

 

6.2.4 Dueling DQN 104

 

6.3 函数逼近方法 105

 

6.3.1 基于非参数的函数逼近 105

 

6.3.2 基于参数的函数逼近 111

 

6.3.3 卷积神经网络 117

 

6.4 习题 123

 

第三篇 基于直接策略搜索的强化学习方法 125

 

7 基于策略梯度的强化学习方法 126

 

7.1 基于策略梯度的强化学习方法理论讲解 126

 

7.2 基于gym和TensorFlow的策略梯度算法实现 134

 

7.2.1 安装Tensorflow 135

 

7.2.2 策略梯度算法理论基础 135

 

7.2.3 Softmax策略及其损失函数 136

 

7.2.4 基于TensorFlow的策略梯度算法实现 138

 

7.2.5 基于策略梯度算法的小车倒立摆问题 141

 

7.3 习题 141

 

8 基于置信域策略优化的强化学习方法 142

 

8.1 理论基础 143

 

8.2 TRPO中的数学知识 153

 

8.2.1 信息论 153

 

8.2.2 优化方法 155

 

8.3 习题 164

 

9 基于确定性策略搜索的强化学习方法 165

 

9.1 理论基础 165

 

9.2 习题 170

 

10 基于引导策略搜索的强化学习方法 171

 

10.1 理论基础 171

 

10.2 GPS中涉及的数学基础 178

 

10.2.1 监督相LBFGS优化方法 178

 

10.2.2 ADMM算法 179

 

10.2.3 KL散度与变分推理 183

 

10.3 习题 184

 

第四篇 强化学习研究及前沿 185

 

11 逆向强化学习 186

 

11.1 概述 186

 

11.2 基于*大边际的逆向强化学习 187

 

11.3 基于*大熵的逆向强化学习 194

 

11.4 习题 201

 

12 组合策略梯度和值函数方法 202

 

13 值迭代网络 207

 

13.1 为什么要提出值迭代网络 207

 

13.2 值迭代网络 210

 

14 基于模型的强化学习方法:PILCO及其扩展 214

 

14.1 概述 214

 

14.2 PILCO 216

 

14.3 滤波PILCO和探索PILCO 226

 

14.3.1 滤波PILCO算法 227

 

14.3.2 有向探索PILCO算法 230

 

14.4 深度PILCO 232

 

后记 235

 

参考文献 237

 

 

 

推荐序一

 

强化学习是机器学习的一个重要分支,它试图解决决策优化的问题。所谓决策优化,是指面对特定状态(State,S),采取什么行动方案(Action,A),才能使收益*大(Reward,R)。很多问题都与决策优化有关,比如下棋、投资、课程安排、驾车,动作模仿等。

 

AlphaGo的核心算法,就是强化学习。AlphaGo不仅稳操胜券地战胜了当今世界所有人类高手,而且甚至不需要学习人类棋手的棋谱,完全靠自己摸索,就在短短几天内,发现并超*了一千多年来人类积累的全部围棋战略战术。

 

*简单的强化学习的数学模型,是马尔科夫决策过程(Markov Decision Process,MDP)。之所以说MDP是一个简单的模型,是因为它对问题做了很多限制。

 

1.面对的状态st,数量是有限的。

 

2.采取的行动方案at,数量也是有限的。

 

3.对应于特定状态st,当下的收益rt是明确的。


智能决策的脉搏:探索强化学习的深层奥秘与实际应用 在这个数据爆炸、智能驱动的时代,如何让机器像人类一样,通过不断试错和学习,自主地做出最优决策?强化学习(Reinforcement Learning, RL)正是回答这一挑战的核心学科。它以其独特的学习范式,在游戏、自动驾驶、机器人控制、推荐系统等众多领域展现出强大的潜力,并正以前所未有的速度改变着我们的世界。 这本深入浅出的著作,旨在带领读者穿越强化学习的迷人世界,从最基础的原理出发,循序渐进地揭示其核心算法的精髓,并通过TensorFlow这一强大的深度学习框架,提供详实可行的代码实现。我们不仅会深入剖析那些驱动智能体(Agent)行为的“思考”模式,更会强调这些理论如何在真实的复杂环境中落地生根,展现强化学习从抽象概念到具体应用的完整蜕变。 第一部分:强化学习的基石——理解智能体与环境的交互 强化学习的核心在于智能体(Agent)与环境(Environment)之间的一系列交互。书中将首先构建起这个基本框架,让读者清晰地理解: 智能体(Agent):作为学习和决策的主体,它拥有感知当前状态(State)的能力,并根据其策略(Policy)选择动作(Action)。 环境(Environment):智能体所处的外部世界,它接收智能体的动作,并根据自身的动态规律,向智能体反馈新的状态和相应的奖励(Reward)。 状态(State):描述了环境在某一时刻的完整信息。例如,在围棋游戏中,状态就是棋盘上所有棋子的位置;在自动驾驶中,状态可能包括车辆的速度、位置、周围障碍物信息等。 动作(Action):智能体可以执行的操作。例如,在围棋游戏中,动作就是落子在某个空位;在机器人控制中,动作可能是移动关节的角度。 奖励(Reward):智能体执行某个动作后,环境给予的即时反馈信号,它直接指示了动作的好坏。正奖励代表着朝着目标迈进,负奖励(惩罚)则代表着偏离目标。 策略(Policy):智能体的核心“大脑”,它定义了在给定状态下,智能体采取何种动作的概率分布。策略的优化是强化学习的最终目标,即找到能够最大化累积奖励的策略。 价值函数(Value Function):用于评估某个状态或某个状态-动作对的长期“好坏”。它衡量了从当前状态开始,遵循特定策略所能获得的期望累积奖励。价值函数是许多强化学习算法的重要组成部分。 通过生动形象的比喻和图示,我们将清晰地阐述这些概念,并引出强化学习的根本问题:智能体如何在有限的观察和反馈下,学习到一种最优策略,从而最大化其长期累积奖励? 第二部分:核心算法的深入解析——从经典到前沿 理解了基础框架后,我们将全面而深入地剖析强化学习的经典算法和当前主流的先进算法: 动态规划(Dynamic Programming, DP):作为强化学习的理论基石,DP算法(如策略评估、策略改进、价值迭代、策略迭代)在已知环境模型的情况下,能够精确计算最优策略。我们将详细讲解其原理,并指出其局限性(需要完整模型)。 蒙特卡洛方法(Monte Carlo, MC):当环境模型未知时,MC方法通过对完整的“回合”(Episode)进行采样,从实际经验中学习价值函数和策略。我们将讲解如何利用MC方法进行学习,并分析其收敛性和效率。 时间差分学习(Temporal Difference, TD):TD学习是强化学习中最具代表性的算法之一,它结合了DP和MC的优点,能够在不等待回合结束的情况下,利用当前步的奖励和下一状态的估计价值来更新当前状态的价值。 Q-Learning:一种离策略(Off-policy)的TD控制算法,直接学习最优动作价值函数Q(s, a),即使当前策略不是最优的,也能学习到最优策略。我们将详细讲解其更新规则和原理。 SARSA:一种在策略(On-policy)的TD控制算法,它学习的是在当前策略下执行动作的价值。我们将对比Q-Learning和SARSA的异同,理解它们在不同场景下的适用性。 深度强化学习(Deep Reinforcement Learning, DRL):将深度神经网络(DNN)与强化学习相结合,克服了传统方法在处理高维状态空间时的瓶颈。 深度Q网络(Deep Q-Network, DQN):首次将DNN成功应用于Q-Learning,通过经验回放(Experience Replay)和目标网络(Target Network)等技术,实现了在Atari游戏中的超人表现。我们将详细讲解DQN的结构、训练过程以及关键技术。 策略梯度(Policy Gradient, PG):直接学习策略函数,而不是价值函数。PG方法通过优化策略参数,使得策略能够生成更好的动作。我们将介绍REINFORCE等基础PG算法。 Actor-Critic方法:结合了价值函数和策略梯度的方法,Actor(策略网络)负责生成动作,Critic(价值网络)负责评估Actor的动作。我们将深入讲解A2C、A3C等经典的Actor-Critic算法,理解其高效性和稳定性。 高级算法:还将触及更前沿的算法,如TRPO(Trust Region Policy Optimization)、PPO(Proximal Policy Optimization),它们在策略更新的稳定性和效率上进行了进一步的优化,是当前许多SOTA(State-Of-The-Art)研究的基础。 在讲解每一种算法时,我们不仅会清晰地阐述其数学原理,更会提供详细的伪代码,帮助读者理解算法的每一步操作。 第三部分:TensorFlow的实践——将理论转化为代码 理论的掌握固然重要,但真正让强化学习“活”起来,离不开实际的编程实现。本部分将以TensorFlow为工具,将前面讲解的各种核心算法付诸实践: TensorFlow基础回顾:针对可能不熟悉TensorFlow的读者,我们将简要回顾其基本概念,如张量(Tensor)、计算图(Computational Graph)、变量(Variable)、占位符(Placeholder)以及常用API。 构建神经网络模型:学习如何使用TensorFlow构建用于代表策略或价值函数的神经网络。我们将讨论不同类型的网络结构,如全连接网络(Fully Connected Networks)、卷积神经网络(Convolutional Neural Networks, CNN)以及循环神经网络(Recurrent Neural Networks, RNN),并根据不同的问题选择合适的网络架构。 算法的TensorFlow实现: DQN实现:我们将一步步展示如何使用TensorFlow构建DQN模型,包括经验回放缓冲区、目标网络的更新机制等。 Policy Gradient实现:展示如何构建策略网络,并利用TensorFlow计算梯度更新策略参数。 Actor-Critic实现:讲解如何同时构建Actor和Critic网络,并利用TensorFlow实现它们的协同训练。 实战项目演示:通过几个精心挑选的实战项目,让读者亲身体验强化学习的魅力。例如: 经典控制问题:如CartPole(倒立摆)、MountainCar(爬山车)等,这些问题虽然简单,但能够清晰地展示基本算法的学习过程。 Atari游戏:利用DQN等算法,让智能体学习玩像Pong、Breakout这样的经典街机游戏,直观感受深度强化学习的强大能力。 机器人仿真:在简化的仿真环境中,训练机器人完成行走、抓取等任务,展现强化学习在机器人控制领域的应用前景。 推荐系统:虽然实际应用可能更复杂,但我们将展示如何用强化学习的思路来构建一个简单的推荐系统,实现个性化推荐。 在每一个实现环节,我们都会提供清晰的代码注释,并详细解释关键代码段的逻辑,帮助读者理解代码背后的原理,并能够根据自己的需求进行修改和扩展。 第四部分:强化学习的进阶话题与未来展望 除了核心算法和实践,本书还将探讨一些更深层次的话题,以及强化学习的未来发展方向: 探索与利用(Exploration vs. Exploitation):如何在未知的环境中有效地进行探索,发现更好的策略,同时又不放弃已知的良好选择,这是强化学习面临的核心挑战之一。我们将介绍ε-greedy、UCB(Upper Confidence Bound)、汤普森采样(Thompson Sampling)等策略。 模型基(Model-Based)强化学习:与前面介绍的模型无关(Model-Free)方法不同,模型基方法试图学习环境的模型,然后利用模型来规划和学习。我们将讨论模型基方法的优势与劣势。 多智能体强化学习(Multi-Agent Reinforcement Learning, MARL):当环境中存在多个相互作用的智能体时,问题会变得更加复杂。我们将简要介绍MARL的基本概念和一些挑战。 迁移学习与元学习(Transfer Learning & Meta-Learning):如何让智能体在学会一项任务后,能够更快地学会另一项相关任务,以及如何让智能体学会“如何学习”。 安全性与鲁棒性:在实际应用中,如何保证强化学习算法的安全性和鲁棒性,避免出现灾难性的错误,是一个至关重要的研究方向。 强化学习的伦理与社会影响:随着强化学习应用的深入,我们也需要关注其可能带来的伦理和社会问题。 本书的特色与价值 理论与实践的完美结合:既有严谨的理论推导,又有可执行的代码实现,让读者能够真正掌握强化学习的知识。 循序渐进的学习路径:从基础概念到复杂算法,再到前沿研究,提供了一条清晰的学习路线。 丰富的案例研究:通过多种多样的应用场景,展示强化学习的强大能力和广泛前景。 TensorFlow实战:以业界主流的深度学习框架TensorFlow为例,提供贴合实际开发的代码实现。 面向广泛读者:无论是对机器学习有一定了解的研究者、工程师,还是希望进入智能决策领域的初学者,都能从中受益。 通过学习本书,您将能够深刻理解智能体如何通过与环境的交互来学习和决策,掌握构建和训练强大强化学习模型的关键技能,并为解决现实世界中的复杂问题打下坚实的基础。让我们一同踏上这场智能决策的探索之旅!

用户评价

评分

这本书绝对是我近期读到的一本非常震撼的机器学习入门读物!我之前对机器学习一直都是“听过但不知其所以然”的状态,对各种模型和算法都感觉很模糊,总觉得它们是黑箱操作。但《强化学习精要》这本书,真的就像它的名字一样,把强化学习最核心、最精要的部分,用一种非常清晰、易懂的方式讲解出来了。作者的叙述逻辑非常棒,从最基础的概念,比如状态、动作、奖励,一步一步深入到Q-learning、SARSA、DQN等经典算法。而且,它不仅仅是理论的堆砌,更重要的是,它会告诉你这些算法背后的思考逻辑和适用场景,让你明白为什么会有这些算法,以及它们是如何解决实际问题的。我尤其喜欢书中对数学公式的讲解,不是那种干巴巴的推导,而是会结合直观的比喻和图示,让你很容易理解。对于我这种数学基础不算特别扎实的人来说,这一点太重要了!读完第一部分,我感觉自己对强化学习的基本框架已经有了非常扎实的认识,那种豁然开朗的感觉,真的太棒了!

评分

作为一个深度学习爱好者,我一直在寻找一本能够将理论与实践完美结合的书籍,而《深入浅出强化学习原理入门》恰恰满足了我的期待。这本书的写作风格非常“接地气”,没有那些过于学术化的术语,而是用大量生动形象的例子来阐述复杂的概念。比如,它在讲解策略梯度的时候,用了“下棋”的比喻,让我一下子就理解了目标是最大化累积奖励的思想。而且,书中还提供了很多实际的Python代码片段,虽然我还没有机会自己动手敲完,但光是看代码,就能感受到作者是如何将理论模型转化为可执行的程序的。这对于想要将强化学习应用到实际项目中的读者来说,无疑是巨大的福利。书中的图示也画得非常精美,将抽象的算法流程可视化,大大降低了理解难度。我印象最深的是关于“探索与利用”的权衡,作者通过一个简单的“捡硬币”的游戏,就将其中的精髓讲得淋漓尽致。这本书真的让我觉得强化学习没有那么遥不可及,而且充满了趣味性。

评分

这套书在讲解强化学习的“精要”和“原理”方面,可以说做到了很好的互补。我个人对算法的理论基础比较感兴趣,所以《强化学习精要》对我来说很有价值。它对经典算法的推导过程清晰,并且对算法的优缺点进行了客观的分析,这有助于我选择最适合特定问题的算法。书中关于“泛化能力”、“收敛性”等理论问题的探讨,也让我对强化学习的局限性有了更深的认识。而《深入浅出强化学习原理入门》则提供了很好的实践指导。它不仅仅是理论的讲解,更重要的是,它用一种非常直观的方式,将强化学习的概念和算法的实现联系起来。书中的代码示例,虽然不一定包含所有细节,但足以勾勒出算法实现的框架。我喜欢它将复杂的概念拆解成小模块,然后逐步构建起来的方式。总的来说,这两本书结合起来,能够帮助读者从宏观到微观,从理论到实践,全面地掌握强化学习的核心知识。

评分

读完《深入浅出强化学习原理入门》后,我最大的感受就是这本书真的做到了“深入浅出”。它不像市面上一些强化学习书籍那样,上来就是铺天盖地的数学公式和复杂的模型推导,而是循序渐进,先从最核心的概念讲起,然后再慢慢引入各种算法。我之前看过一些关于强化学习的书,总是被各种符号和公式弄得头晕目眩,但这本书却用一种非常生动活泼的语言,将这些概念变得清晰起来。例如,它在讲解“马尔可夫决策过程”的时候,并没有直接给出数学定义,而是通过一个“迷宫寻宝”的场景来比喻,让我一下子就理解了状态转移、动作选择和奖励的含义。书中的案例也非常贴切,很多都是生活中或者游戏中的例子,读起来一点都不枯燥。而且,作者还很注重讲解算法背后的思想和intuition,这对于我理解算法的本质非常有帮助,而不是仅仅停留在“知其然”的层面。

评分

我是一名刚入职的AI算法工程师,工作中经常会接触到强化学习相关的任务,但之前的基础比较薄弱。在同事的推荐下,我入手了这套书,整体感觉非常惊喜。其中《强化学习精要》这本书,在算法的深度和广度上都做得相当到位,它不仅介绍了DQN、Policy Gradient这些基础算法,还涉及到了Actor-Critic、PPO等更先进的模型。更难得的是,它还花了不少篇幅讲解了这些算法在实际应用中的一些优化技巧和注意事项,比如经验回放、目标网络等,这些都是在项目中经常会用到的。书中的TensorFlow实现部分,代码写得非常规范,注释也很详细,我跟着代码跑了一些示例,发现它们都能够正常运行,并且效果不错。这对于我快速上手并进行二次开发非常有帮助。而且,书中还提供了一些经典强化学习问题的解决方案,例如Atari游戏、倒立摆等,这些都是很好的实践案例,可以帮助我们巩固所学知识。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有