强化学习精要:核心算法与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是明确的。
这本书绝对是我近期读到的一本非常震撼的机器学习入门读物!我之前对机器学习一直都是“听过但不知其所以然”的状态,对各种模型和算法都感觉很模糊,总觉得它们是黑箱操作。但《强化学习精要》这本书,真的就像它的名字一样,把强化学习最核心、最精要的部分,用一种非常清晰、易懂的方式讲解出来了。作者的叙述逻辑非常棒,从最基础的概念,比如状态、动作、奖励,一步一步深入到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. 静思书屋 版权所有