《深度强化学习:入门与实践指南 深度强化学习从原理到算法全面探索.面向实践,掌握构建智能体、聊天机器人实战项目》[俄]马克西姆•拉潘(Max | PDF下载|ePub下载
深度强化学习:入门与实践指南 深度强化学习从原理到算法全面探索.面向实践,掌握构建智能体、聊天机器人实战项目 版权信息
- 出版社:机械工业出版社
- 出版时间:2021-03-01
- ISBN:9787111668084
- 条形码:9787111668084 ; 978-7-111-66808-4
深度强化学习:入门与实践指南 深度强化学习从原理到算法全面探索.面向实践,掌握构建智能体、聊天机器人实战项目 本书特色
适读人群 :深度强化学习、机器学习、人工智能相关行业的从业者、学习者编辑推荐: 迅速理解深度强化学习,从原理到新近算法全面探索 面向实践,掌握构建智能体、聊天机器人等实践项目 本书对RL的核心知识进行了全面深入讲解,并为你提供了编写智能体代码的详细知识,以使其执行一系列艰巨的实际任务。帮助你掌握如何在“网格世界”环境中实现Q-learning,教会你的智能体购买和交易股票,并掌握如何通过实现自然语言模型来推动聊天机器人的发展。 你将学到什么: ● 理解如何通过RL的DL上下文实现复杂的DL模型 ● 掌握RL的基础理论:马尔可夫决策过程 ● 学会评估RL的方法,包括交叉熵、DQN、Actor-Critic、TRPO、PPO、DDPG、D4PG等 ● 研究探索如何处理各种环境中的离散和连续动作空间 ● 学会使用值迭代方法击败Atari街机游戏 ● 学会创建自己的OpenAI Gym环境以训练股票交易智能体 ● 教会你的智能体使用AlphaGo Zero玩Connect4 ● 探索有关主题的*新深度RL研究,包括AI驱动的聊天机器人
深度强化学习:入门与实践指南 深度强化学习从原理到算法全面探索.面向实践,掌握构建智能体、聊天机器人实战项目 内容简介
强化学习是机器学习发展很好迅速的一个领域,由于其灵活性和通用性,可以应用在从玩游戏到优化复杂制造过程的许多实际情况。本书帮助读者迅速理解深度强化学习,并从原理到新近算法进行全面探索。关于强化学习的新资料很多,但多数过于专业和抽象,很不容易理解,并且从理解原理到可以实际解决问题之间还有巨大差距,而本书意在填补强化学习方法在实用性和结构化信息方面的不足,以帮助读者从整体上轻松理解深度强化学习。同时本书的另一个特点是面向实践,从简单到很好复杂,将每种方法实际应用在各种具体环境中,以帮助读者在实际研究和工作中应用深度强化学习来解决问题。 本书适合深度强化学习、机器学习、人工智能相关行业从业者、学习者阅读参考。
深度强化学习:入门与实践指南 深度强化学习从原理到算法全面探索.面向实践,掌握构建智能体、聊天机器人实战项目 目录
目 录
原书前言
第1章 什么是强化学习 // 1
1.1 学习―监督、无监督和强化 // 1
1.2 RL形式和关系 // 3
1.2.1 奖励 // 4
1.2.2 智能体 // 5
1.2.3 环境 // 5
1.2.4 动作 // 6
1.2.5 观察 // 6
1.3 马尔可夫决策过程简介 // 8
1.3.1 马尔可夫过程 // 8
1.3.2 马尔可夫奖励过程 // 11
1.3.3 马尔可夫决策过程 // 13
1.4 本章小结 // 16
第2章 OpenAI Gym开源平台 // 17
2.1 智能体剖析 // 17
2.2 硬件和软件要求 // 19
2.3 OpenAI Gym API // 20
2.3.1 动作空间 // 21
2.3.2 观察空间 // 21
2.3.3 环境 // 22
2.3.4 创建环境 // 23
2.3.5 CartPole会话 // 25
2.4 随机CartPole智能体 // 26
2.5 额外的Gym功能―Wrapper和Monitor // 27
2.5.1 Wrapper // 28
2.5.2 Monitor // 30
2.6 本章小结 // 32
第3章 使用PyTorch进行深度学习 // 33
3.1 张量 // 33
3.1.1 创建张量 // 33
3.1.2 标量张量 // 35
3.1.3 张量操作 // 36
3.1.4 GPU张量 // 36
3.2 梯度 // 37
3.2.1 张量和梯度 // 38
3.3 NN构建块 // 40
3.4 定制层级 // 41
3.5 *终的黏合剂―损失函数和优化器 // 43
3.5.1 损失函数 // 44
3.5.2 优化器 // 44
3.6 使用TensorBoard监控 // 45
3.6.1 TensorBoard简介 // 46
3.6.2 绘图工具 // 47
3.7 示例:在Atari图像上使用GAN // 48
3.8 本章小结 // 52
第4章 交叉熵方法 // 53
4.1 RL方法的分类 // 53
4.2 实践交叉熵 // 54
4.3 CartPole上的交叉熵方法 // 55
4.4 FrozenLake上的交叉熵方法 // 62
4.5 交叉熵方法的理论背景 // 67
4.6 本章小结 // 68
第5章 表格学习与Bellman方程 // 69
5.1 值、状态、*优性 // 69
5.2 *优的Bellman方程 // 70
5.3 动作的值 // 72
5.4 值迭代法 // 74
5.5 实践中的值迭代 // 75
5.6 FrozenLake中的Q-learning // 80
5.7 本章小结 // 82
第6章 深度Q网络 // 83
6.1 现实中的值迭代 // 83
6.2 表格式Q-learning // 84
6.3 深度Q-learning // 88
6.3.1 与环境的交互 // 89
6.3.2 SGD优化 // 90
6.3.3 步骤之间的相关性 // 90
6.3.4 马尔可夫性 // 90
6.3.5 DQN训练的*终形式 // 91
6.4 Pong上的DQN // 91
6.4.1 封装 // 92
6.4.2 DQN模型 // 96
6.4.3 训练 // 98
6.4.4 运行与性能 // 105
6.4.5 动作中的模型 // 107
6.5 本章小结 // 109
第7章 DQN扩展 // 110
7.1 PyTorch Agent Net函数库 // 110
7.1.1 智能体 // 111
7.1.2 智能体的经验 // 112
7.1.3 经验缓冲区 // 113
7.1.4 Gym env封装 // 113
7.2 基本DQN // 113
7.3 N步DQN // 119
7.3.1 实现 // 121
7.4 双DQN // 123
7.4.1 实现 // 123
7.4.2 结果 // 126
7.5 有噪网络 // 127
7.5.1 实现 // 127
7.5.2 结果 // 130
7.6 优先级重放缓冲区 // 132
7.6.1 实现 // 133
7.6.2 结果 // 137
7.7 竞争DQN // 137
7.7.1 实现 // 138
7.7.2 结果 // 139
7.8 分类 // 140
7.8.1 实现 // 142
7.8.2 结果 // 148
7.9 结合所有 // 149
7.9.1 实现 // 150
7.9.2 结果 // 154
7.10 本章小结 // 155
参考文献 // 155
第8章 RL用于股票交易 // 156
8.1 贸易 // 156
8.2 数据 // 156
8.3 问题陈述和关键决策 // 157
8.4 交易环境 // 159
8.5 模型 // 165
8.6 训练代码 // 166
8.7 结果 // 167
8.7.1 前馈模型 // 167
8.7.2 卷积模型 // 170
8.8 要尝试的事 // 173
8.9 本章小结 // 173
第9章 策略梯度法:一种替代方案 // 174
9.1 值与策略 // 174
9.1.1 为什么是策略 // 174
9.1.2 策略表示 // 175
9.1.3 策略梯度 // 175
9.2 强化方法 // 176
9.2.1 CartPole的例子 // 177
9.2.2 结果 // 180
9.2.3 基于策略的方法与基于值的方法 // 181
9.3 强化问题 // 181
9.3.1 完整episode是必需的 // 182
9.3.2 高梯度方差 // 182
9.3.3 探索 // 182
9.3.4 样本之间的相关性 // 183
9.4 CartPole上的PG // 183
9.5 Pong上的PG // 187
9.6 本章小结 // 190
第10章 Actor-Critic方法 // 191
10.1 方差减少 // 191
10.2 CartPole方差 // 192
10.3 Actor-Critic // 194
10.4 Pong上的A2C // 196
10.5 Pong上的A2C的结果 // 201
10.6 调整超参数 // 202
10.6.1 学习率 // 203
10.6.2 熵beta // 203
10.6.3 环境数量 // 204
10.6.4 batch大小 // 204
10.7 本章小结 // 204
第11章 异步优势Actor-Critic方法 // 205
11.1 相关性和样本效率 // 205
11.2 在A2C中添加另一个A // 206
11.3 Python中的多处理 // 208
11.4 A3C―数据并行 // 208
11.5 A3C―梯度并行 // 214
11.6 本章小结 // 219
第12章 用 RL训练聊天机器人 // 220
12.1 聊天机器人概述 // 220
12.2 Deep NLP基础知识 // 221
12.2.1 RNN // 222
12.2.2 嵌入 // 223
12.2.3 编码器 -解码器 // 224
12.3 seq2seq训练 // 224
12.3.1 对数似然训练 // 224
12.3.2 双语评估替补(BLEU)得分 // 226
12.3.3 seq2seq中的RL // 226
12.3.4 自我评价序列训练 // 228
12.4 聊天机器人示例 // 228
12.4.1 示例结构 // 229
12.4.2 模块:cornell.py和data.py // 229
12.4.3 BLEU得分和utils.py // 230
12.4.4 模型 // 231
12.4.5 训练:交叉熵 // 236
12.4.6 执行训练 // 239
12.4.7 检查数据 // 241
12.4.8 测试训练的模型 // 243
12.4.9 训练:SCST // 244
12.4.10 运行SCST训练 // 250
12.4.11 结果 // 251
12.4.12 电报机器人 // 252
12.5 本章小结 // 254
第13章 Web浏览 // 255
13.1 网页浏览 // 255
13.1.1 浏览器自动化操作和强化学习 // 255
13.1.2 Mini World of Bits基准 // 256
13.2 OpenAI Universe // 258
13.2.1 安装 // 258
13.2.2 动作和观察 // 259
13.2.3 环境创建 // 259
13.2.4 MiniWoB稳定性 // 261
13.3 简单的点击方式 // 261
13.3.1 网格动作 // 262
13.3.2 示例概述 // 263
13.3.3 模型 // 264
13.3.4 训练代码 // 264
13.3.5 启动容器 // 269
13.3.6 训练过程 // 271
13.3.7 检查学到的策略 // 272
13.3.8 简单点击的问题 // 273
13.4 人工演示 // 275
13.4.1 记录演示 // 275
13.4.2 录制格式 // 277
13.4.3 使用演示进行训练 // 279
13.4.4 结果 // 280
13.4.5 TicTacToe问题 // 281
13.5 增加文本描述 // 283
13.6 要尝试的事情 // 288
13.7 本章小结 // 288
第14章 连续动作空间 // 289
14.1 为什么是连续空间 // 289
14.2 动作空间 // 289
14.3 环境 // 290
14.4 Actor-Critic(A2C)方法 // 292
14.4.1 实现 // 292
14.4.2 结果 // 295
14.4.3 使用模型和录制视频 // 296
14.5 确定性策略梯度 // 297
14.5.1 探索 // 298
14.5.2 实现 // 298
14.5.3 结果 // 302
14.5.4 录制视频 // 303
14.6 分布式策略梯度 // 304
14.6.1 架构 // 304
14.6.2 实现 // 304
14.6.3 结果 // 308
14.7 需要进一步尝试的事情 // 309
14.8 本章小结 // 309
第15章 信赖域 ―TRPO、PPO和ACKTR // 310
15.1 引言 // 310
15.2 roboschool // 310
15.3 A2C基线 // 311
15.3.1 结果 // 313
15.3.2 录制视频 // 313
15.4 PPO // 313
15.4.1 实现 // 314
15.4.2 结果 // 317
15.5 TRPO // 318
15.5.1 实现 // 318
15.5.2 结果 // 319
15.6 使用ACKTR的A2C // 320
15.6.1 实现 // 320
15.6.2 结果 // 321
15.7 本章小结 // 321
第16章 RL中的黑盒优化 // 322
16.1 黑盒方法 // 322
16.2 进化策略 // 322
16.2.1 CartPole上的ES // 323
16.2.2 HalfCheetah上的ES // 328
16.3 遗传算法 // 332
16.3.1 CartPole上的GA // 333
16.3.2 GA调整 // 335
16.3.3 Cheetah上的GA // 336
16.4 本章小结 // 339
参考文献 // 339
第17章 超越无模型 ―想象力 // 340
17.1 基于模型与无模型 // 340
17.2 模型缺陷 // 341
17.3 想象力增强的智能体 // 342
17.3.1 环境模型 // 343
17.3.2 走步策略 // 343
17.3.3 走步编码器 // 344
17.3.4 论文结果 // 344
17.4 Atari Breakout上的I2A // 344
17.4.1 基线A2C智能体 // 344
17.4.2 环境模型训练 // 345
17.4.3 想象力智能体 // 347
17.5 实验结果 // 352
17.5.1 基线智能体 // 352
17.5.2 训练环境模型权重 // 353
17.5.3 使用I2A模型进行训练 // 354
17.6 本章小结 // 356
参考文献 // 356
第18章 AlphaGo Zero // 357
18.1 棋盘游戏 // 357
18.2 AlphaGo Zero方法 // 358
18.2.1 概述 // 358
18.2.2 MCTS // 359
18.2.3 自玩 // 360
18.2.4 训练和评估 // 360
18.3 Connect4机器人 // 361
18.3.1 游戏模型 // 361
18.3.2 实现MCTS // 363
18.3.3 模型 // 368
18.3.4 训练 // 369
18.3.5 测试和比较 // 370
18.4 Connect4结果 // 370
18.5 本章小结 // 372
参考文献 // 372
本书总结 // 373
深度强化学习:入门与实践指南 深度强化学习从原理到算法全面探索.面向实践,掌握构建智能体、聊天机器人实战项目 作者简介
Maxim Lapan 深度学习研究者,作为一名软件开发人员和系统架构师,具有超过15年的专业经验,涵盖了从Linux内核驱动程序开发到可在数千台服务器上工作的分布式应用项目的设计与性能优化。他在大数据、机器学习以及大型并行分布式HPC系统方面拥有丰富的工作经验,并擅长使用简单的文字和生动的示例来解释复杂事物。他目前专注的领域是深度学习的实际应用,例如深度自然语言处理和深度强化学习。Maxim目前在以色列一家初创公司工作,担任高级NLP开发人员。