类似推荐
编辑推荐
一本帮助你快速上手强化学习并开始实践的入门书,从理论与实践维度对强化学习进行全面解释和演示。
内容简介
本书理论与实践相结合,系统阐述强化学习的基础知识,以及如何动手编写智能体以执行一系列实际任务。
通过阅读本书,读者将获得深层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版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。