深度强化学习实践(原书第2版)

深度强化学习实践(原书第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

一本帮助你快速上手强化学习并开始实践的入门书,从理论与实践维度对强化学习进行全面解释和演示。

内容简介

本书理论与实践相结合,系统阐述强化学习的基础知识,以及如何动手编写智能体以执行一系列实际任务。

通过阅读本书,读者将获得深层Q网络、策略梯度方法、连续控制问题以及高度可扩展的非梯度方法等主题领域的可行洞见,还将学会如何构建一个经过强化学习训练、价格低廉的真实硬件机器人,并通过一步步代码优化在短短30分钟的训练后解决Pong环境。

此外,本书还专门介绍了强化学习的新发展,包括离散优化(解决魔方问题)、多智能体方法、Microsoft的TextWorld环境、高级探索技术等。

作者简介

作者马克西姆·拉潘(Maxim Lapan)是一位深度学习爱好者和独立研究者。作为一名软件开发人员和系统架构师,他拥有15年的工作经验,涉及从底层Linux内核驱动程序开发到性能优化以及在数千台服务器上工作的分布式应用程序设计的方方面面。他在大数据、机器学习以及大型并行分布式HPC和非HPC系统方面也拥有丰富的经验,能够用简单的词汇和生动的示例来解释复杂的事物。他目前感兴趣的领域涉及深度学习的实际应用,例如深度自然语言处理和深度强化学习。

章节目录

版权信息

译者序

前言

作者简介

审校者简介

第1章 什么是强化学习

1.1 机器学习分类

1.1.1 监督学习

1.1.2 非监督学习

1.1.3 强化学习

1.2 强化学习的复杂性

1.3 强化学习的形式

1.3.1 奖励

1.3.2 智能体

1.3.3 环境

1.3.4 动作

1.3.5 观察

1.4 强化学习的理论基础

1.4.1 马尔可夫决策过程

1.4.2 策略

1.5 总结

第2章 OpenAI Gym

2.1 剖析智能体

2.2 硬件和软件要求

2.3 OpenAI Gym API

2.3.1 动作空间

2.3.2 观察空间

2.3.3 环境

2.3.4 创建环境

2.3.5 车摆系统

2.4 随机CartPole智能体

2.5 Gym的额外功能:包装器和监控器

2.5.1 包装器

2.5.2 监控器

2.6 总结

第3章 使用PyTorch进行深度学习

3.1 张量

3.1.1 创建张量

3.1.2 零维张量

3.1.3 张量操作

3.1.4 GPU张量

3.2 梯度

3.3 NN构建块

3.4 自定义层

3.5 最终黏合剂:损失函数和优化器

3.5.1 损失函数

3.5.2 优化器

3.6 使用TensorBoard进行监控

3.6.1 TensorBoard 101

3.6.2 绘图

3.7 示例:将GAN应用于Atari图像

3.8 PyTorch Ignite

3.9 总结

第4章 交叉熵方法

4.1 RL方法的分类

4.2 交叉熵方法的实践

4.3 交叉熵方法在CartPole中的应用

4.4 交叉熵方法在FrozenLake中的应用

4.5 交叉熵方法的理论背景

4.6 总结

第5章 表格学习和Bellman方程

5.1 价值、状态和最优性

5.2 最佳Bellman方程

5.3 动作的价值

5.4 价值迭代法

5.5 价值迭代实践

5.6 Q-learning在FrozenLake中的应用

5.7 总结

第6章 深度Q-network

6.1 现实的价值迭代

6.2 表格Q-learning

6.3 深度Q-learning

6.3.1 与环境交互

6.3.2 SGD优化

6.3.3 步骤之间的相关性

6.3.4 马尔可夫性质

6.3.5 DQN训练的最终形式

6.4 DQN应用于Pong游戏

6.4.1 包装器

6.4.2 DQN模型

6.4.3 训练

6.4.4 运行和性能

6.4.5 模型实战

6.5 可以尝试的事情

6.6 总结

第7章 高级强化学习库

7.1 为什么使用强化学习库

7.2 PTAN库

7.2.1 动作选择器

7.2.2 智能体

7.2.3 经验源

7.2.4 经验回放缓冲区

7.2.5 TargetNet类

7.2.6 Ignite帮助类

7.3 PTAN版本的CartPole解决方案

7.4 其他强化学习库

7.5 总结

第8章 DQN扩展

8.1 基础DQN

8.1.1 通用库

8.1.2 实现

8.1.3 结果

8.2 N步DQN

8.2.1 实现

8.2.2 结果

8.3 Double DQN

8.3.1 实现

8.3.2 结果

8.4 噪声网络

8.4.1 实现

8.4.2 结果

8.5 带优先级的回放缓冲区

8.5.1 实现

8.5.2 结果

8.6 Dueling DQN

8.6.1 实现

8.6.2 结果

8.7 Categorical DQN

8.7.1 实现

8.7.2 结果

8.8 组合所有方法

8.9 总结

第9章 加速强化学习训练的方法

9.1 为什么速度很重要

9.2 基线

9.3 PyTorch中的计算图

9.4 多个环境

9.5 在不同进程中分别交互和训练

9.6 调整包装器

9.7 基准测试总结

9.8 硬核CuLE

9.9 总结

第10章 使用强化学习进行股票交易

10.1 交易

10.2 数据

10.3 问题陈述和关键决策

10.4 交易环境

10.5 模型

10.6 训练代码

10.7 结果

10.7.1 前馈模型

10.7.2 卷积模型

10.8 可以尝试的事情

10.9 总结

第11章 策略梯度:一种替代方法

11.1 价值与策略

11.1.1 为什么需要策略

11.1.2 策略表示

11.1.3 策略梯度

11.2 REINFORCE方法

11.2.1 CartPole示例

11.2.2 结果

11.2.3 基于策略的方法与基于价值的方法

11.3 REINFORCE的问题

11.3.1 需要完整片段

11.3.2 高梯度方差

11.3.3 探索

11.3.4 样本相关性

11.4 用于CartPole的策略梯度方法

11.4.1 实现

11.4.2 结果

11.5 用于Pong的策略梯度方法

11.5.1 实现

11.5.2 结果

11.6 总结

第12章 actor-critic方法

12.1 减小方差

12.2 CartPole的方差

12.3 actor-critic

12.4 在Pong中使用A2C

12.5 在Pong中使用A2C的结果

12.6 超参调优

12.6.1 学习率

12.6.2 熵的beta值

12.6.3 环境数

12.6.4 批大小

12.7 总结

第13章 A3C

13.1 相关性和采样效率

13.2 向A2C添加另一个A

13.3 Python中的多重处理功能

13.4 数据并行化的A3C

13.4.1 实现

13.4.2 结果

13.5 梯度并行化的A3C

13.5.1 实现

13.5.2 结果

13.6 总结

第14章 使用强化学习训练聊天机器人

14.1 聊天机器人概述

14.2 训练聊天机器人

14.3 深度NLP基础

14.3.1 RNN

14.3.2 词嵌入

14.3.3 编码器–解码器架构

14.4 seq2seq训练

14.4.1 对数似然训练

14.4.2 双语替换评测分数

14.4.3 seq2seq中的强化学习

14.4.4 自评序列训练

14.5 聊天机器人示例

14.5.1 示例的结构

14.5.2 模块:cornell.py和data.py

14.5.3 BLEU分数和utils.py

14.5.4 模型

14.6 数据集探索

14.7 训练:交叉熵

14.7.1 实现

14.7.2 结果

14.8 训练:SCST

14.8.1 实现

14.8.2 结果

14.9 经过数据测试的模型

14.10 Telegram机器人

14.11 总结

第15章 TextWorld环境

15.1 文字冒险游戏

15.2 环境

15.2.1 安装

15.2.2 游戏生成

15.2.3 观察和动作空间

15.2.4 额外的游戏信息

15.3 基线DQN

15.3.1 观察预处理

15.3.2 embedding和编码器

15.3.3 DQN模型和智能体

15.3.4 训练代码

15.3.5 训练结果

15.4 命令生成模型

15.4.1 实现

15.4.2 预训练结果

15.4.3 DQN训练代码

15.4.4 DQN训练结果

15.5 总结

第16章 Web导航

16.1 Web导航简介

16.1.1 浏览器自动化和RL

16.1.2 MiniWoB基准

16.2 OpenAI Universe

16.2.1 安装

16.2.2 动作与观察

16.2.3 创建环境

16.2.4 MiniWoB的稳定性

16.3 简单的单击方法

16.3.1 网格动作

16.3.2 示例概览

16.3.3 模型

16.3.4 训练代码

16.3.5 启动容器

16.3.6 训练过程

16.3.7 检查学到的策略

16.3.8 简单单击的问题

16.4 人类演示

16.4.1 录制人类演示

16.4.2 录制的格式

16.4.3 使用演示进行训练

16.4.4 结果

16.4.5 井字游戏问题

16.5 添加文字描述

16.5.1 实现

16.5.2 结果

16.6 可以尝试的事情

16.7 总结

第17章 连续动作空间

17.1 为什么会有连续的空间

17.1.1 动作空间

17.1.2 环境

17.2 A2C方法

17.2.1 实现

17.2.2 结果

17.2.3 使用模型并录制视频

17.3 确定性策略梯度

17.3.1 探索

17.3.2 实现

17.3.3 结果

17.3.4 视频录制

17.4 分布的策略梯度

17.4.1 架构

17.4.2 实现

17.4.3 结果

17.4.4 视频录制

17.5 可以尝试的事情

17.6 总结

第18章 机器人技术中的强化学习

18.1 机器人与机器人学

18.1.1 机器人的复杂性

18.1.2 硬件概述

18.1.3 平台

18.1.4 传感器

18.1.5 执行器

18.1.6 框架

18.2 第一个训练目标

18.3 模拟器和模型

18.3.1 模型定义文件

18.3.2 机器人类

18.4 DDPG训练和结果

18.5 控制硬件

18.5.1 MicroPython

18.5.2 处理传感器

18.5.3 驱动伺服器

18.5.4 将模型转移至硬件上

18.5.5 组合一切

18.6 策略实验

18.7 总结

第19章 置信域:PPO、TRPO、ACKTR及SAC

19.1 Roboschool

19.2 A2C基线

19.2.1 实现

19.2.2 结果

19.2.3 视频录制

19.3 PPO

19.3.1 实现

19.3.2 结果

19.4 TRPO

19.4.1 实现

19.4.2 结果

19.5 ACKTR

19.5.1 实现

19.5.2 结果

19.6 SAC

19.6.1 实现

19.6.2 结果

19.7 总结

第20章 强化学习中的黑盒优化

20.1 黑盒方法

20.2 进化策略

20.2.1 将ES用在CartPole上

20.2.2 将ES用在HalfCheetah上

20.3 遗传算法

20.3.1 将GA用在CartPole上

20.3.2 GA优化

20.3.3 将GA用在HalfCheetah上

20.4 总结

第21章 高级探索

21.1 为什么探索很重要

21.2 ε-greedy怎么了

21.3 其他探索方式

21.3.1 噪声网络

21.3.2 基于计数的方法

21.3.3 基于预测的方法

21.4 MountainCar实验

21.4.1 使用ε-greedy的DQN方法

21.4.2 使用噪声网络的DQN方法

21.4.3 使用状态计数的DQN方法

21.4.4 近端策略优化方法

21.4.5 使用噪声网络的PPO方法

21.4.6 使用基于计数的探索的PPO方法

21.4.7 使用网络蒸馏的PPO方法

21.5 Atari实验

21.5.1 使用ε-greedy的DQN方法

21.5.2 经典的PPO方法

21.5.3 使用网络蒸馏的PPO方法

21.5.4 使用噪声网络的PPO方法

21.6 总结

第22章 超越无模型方法:想象力

22.1 基于模型的方法

22.1.1 基于模型与无模型

22.1.2 基于模型的缺陷

22.2 想象力增强型智能体

22.2.1 EM

22.2.2 展开策略

22.2.3 展开编码器

22.2.4 论文的结果

22.3 将I2A用在Atari Breakout上

22.3.1 基线A2C智能体

22.3.2 EM训练

22.3.3 想象力智能体

22.4 实验结果

22.4.1 基线智能体

22.4.2 训练EM的权重

22.4.3 训练I2A模型

22.5 总结

第23章 AlphaGo Zero

23.1 棋盘游戏

23.2 AlphaGo Zero方法

23.2.1 总览

23.2.2 MCTS

23.2.3 自我对抗

23.2.4 训练与评估

23.3 四子连横棋机器人

23.3.1 游戏模型

23.3.2 实现MCTS

23.3.3 模型

23.3.4 训练

23.3.5 测试与比较

23.4 四子连横棋的结果

23.5 总结

第24章 离散优化中的强化学习

24.1 强化学习的名声

24.2 魔方和组合优化

24.3 最佳性与上帝的数字

24.4 魔方求解的方法

24.4.1 数据表示

24.4.2 动作

24.4.3 状态

24.5 训练过程

24.5.1 NN架构

24.5.2 训练

24.6 模型应用

24.7 论文结果

24.8 代码概览

24.8.1 魔方环境

24.8.2 训练

24.8.3 搜索过程

24.9 实验结果

24.9.1 2×2魔方

24.9.2 3×3魔方

24.10 进一步改进和实验

24.11 总结

第25章 多智能体强化学习

25.1 多智能体RL的说明

25.1.1 通信形式

25.1.2 强化学习方法

25.2 MAgent环境

25.2.1 安装

25.2.2 概述

25.2.3 随机环境

25.3 老虎的深度Q-network

25.4 老虎的合作

25.5 同时训练老虎和鹿

25.6 相同actor之间的战斗

25.7 总结

深度强化学习实践(原书第2版)是2021年由机械工业出版社华章分社出版,作者[俄] 马克西姆·拉潘。

得书感谢您对《深度强化学习实践(原书第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
重症医学:规范·流程·实践(第2版) 电子书
本书介绍了重症医学相关的理论,重点在规范操作流程和规范。
从零开始:机器学习的数学原理和算法实践 电子书
一学就会的数学知识,通俗易懂的算法原理,经典实用的编程实践。
教育脑科学:提升教学与学习效果的实践指南 电子书
大脑是学习的器官,而老师是帮助学生重塑大脑的人。
聆听陇原的自然音符 电子书
本书从陇原大地入手,分别介绍了神秘森林、苍茫草原、浩瀚荒漠、醉美湿地、沙海绿洲、陇上梯田和珍稀物种等内容,旨在全面反映甘肃省丰富多样的生态资源,让广大读者认识一个多彩的陇原大地和这片土地上生存的生物,同时对建设生态文明社会有着很好的社会意义。
线性代数习题全解与学习指导(第2版) 电子书
本书是与《线性代数(第2版微课版)》配套的学习辅导书,是按照工科类本科“线性代数”课程的基本要求,充分吸收相关教材辅导书的精华,结合编者在同济大学多年的教学实践经验,针对当今学生的知识结构和习惯特点编写而成的.全书共5章,分别是线性方程组与矩阵、方阵的行列式、向量空间与线性方程组解的结构、相似矩阵及二次型、线性空间与线性变换.每章包含知识结构、归纳总结、典型例题、习题详解4个部分.本书的章节内容和