作者 |
[俄]马克西姆&#8226 拉潘(Maxim Lapan) 王静怡 刘斌 程 |
丛书名 |
出版社 |
机械工业出版社* |
ISBN |
9787111668084 |
简要 |
简介 |
内容简介书籍计算机书籍 强化学习是机器学习发展非常迅速的一个领域,由于其灵活性和通用性,可以应用在从玩游戏到优化复杂制造过程的许多实际情况。本书帮助读者迅速理解深度强化学习,并从原理到新近算法进行全面探索。关于强化学习的新资料很多,但多数过于专业和抽象,很不容易理解,并且从理解原理到可以实际解决问题之间还有巨大差距,而本书意在填补强化学习方法在实用性和结构化信息方面的不足,以帮助读者从整体上轻松理解深度强化学习。同时本书的另一个特点是面向实践,从简单到非常复杂,将每种方法实际应用在各种具体环境中,以帮助读者在实际研究和工作中应用深度强化学习来解决问题。 本书适合深度强化学习、机器学习、人工智能相关行业从业者、学习者阅读参考。 |
目录 |
原书前言 第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 |