展开全部

主编推荐语

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

内容简介

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

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

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

目录

  • 版权信息
  • 译者序
  • 前言
  • 作者简介
  • 审校者简介
  • 第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个评分

出版方

机械工业出版社有限公司

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。