人工智能
类型
可以朗读
语音朗读
557千字
字数
2021-07-01
发行日期
展开全部
主编推荐语
一本帮助你快速上手强化学习并开始实践的入门书,从理论与实践维度对强化学习进行全面解释和演示。
内容简介
本书理论与实践相结合,系统阐述强化学习的基础知识,以及如何动手编写智能体以执行一系列实际任务。
通过阅读本书,读者将获得深层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 总结
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。