TensorFlow强化学习快速入门指南——使用Python动手搭建自学习的智能体
定 价:45 元
丛书名:大数据丛书
- 作者:[美]考希克·巴拉克里希南(Kaushik Balakrishnan)
- 出版时间:2020/5/1
- ISBN:9787111648123
- 出 版 社:机械工业出版社
- 中图法分类:TP18
- 页码:120
- 纸张:胶版纸
- 版次:1
- 开本:16K
强化学习是一类重要的机器学习方法,在很多领域得到了成功的应用,*近几年与深度学习结合起来,进一步推动了人工智能的发展?本书首先介绍了强化学习的基本原理,然后介绍典型的强化学习算法,包括时序差分? SARSA? Q-Learning? DeepQ-network? Double DQN?竞争网络结构? Rainbow? Actor-Critic? A2C? A3C? TRPO和PPO等,每种算法基本上利用了主流的开源机器学习框架TensorFlow,使用Python编程进行实现?此外,还介绍了一些上述算法的应用?本书可以使读者快速理解强化学习的基本知识,并通过简单的案例加深对算法的理解?本书适合对强化学习感兴趣的普通高校师生以及相关专业人员阅读?
Copyright ? Packt Publishing 2018First published in the English language under the title “Deep Learning with TensorFlow-SecondEdition- ( 9781788831109)”
Copyright in the Chinese language( simplified characters) ? 2020 China Machine PreesThis title is published in China by China Machine Press with license from Packt Publishing Ltd.This edition is authorized for sale in China only , excluding Hong Kong SAR. Macao SAR and Taiwan.Unauthorized export of this edition is a violation of the Copyright Act. Violation of this Law is subjectto Civil and Criminal Penalties.
译者序
前 言
第 1 章 强化学习的启动和运行 // 1
1.1 为何选择强化学习 // 1
阐述强化学习问题 // 2
1.2 agent 及其环境之间的关系 // 3
1.2.1 定义 agent 的状态 // 3
1.2.2 定义 agent 的行为 // 3
1.2.3 了解策略、价值函数和优势函数 // 4
1.3 认识回合 // 5
1.4 认识奖励函数和折扣奖励 // 5
奖励 // 6
1.5 学习马尔可夫决策过程 // 6
1.6 定义贝尔曼方程 // 7
1.7 同步策略与异步策略学习 // 7
1.7.1 同步策略方法 // 7
1.7.2 异步策略方法 // 8
1.8 无模型训练和基于模型训练 // 8
1.9 本书中涉及的算法 // 8
总结 // 9
思考题 // 9
扩展阅读 // 9
第 2 章 时序差分、SARSA 与 Q-Learning // 10
2.1 技术需求 // 10
2.2 理解 TD 学习 // 10
价值函数与状态之间的关系 // 11
2.3 理解 SARSA 与 Q-Learning // 11
IX
2.3.1 学习 SARSA // 12
2.3.2 理解 Q-Learning // 12
2.4 悬崖徒步与网格世界问题 // 12
2.4.1 SARSA 下的悬崖徒步 // 13
2.4.2 Q-Learning 下的悬崖徒步 // 18
2.4.3 SARSA 下的网格世界 // 20
总结 // 22
扩展阅读 // 22
第 3 章 深度 Q 网络 // 23
3.1 技术需求 // 23
3.2 学习 DQN 原理 // 23
3.3 理解目标网络 // 24
3.4 了解重放缓冲区 // 25
3.5 Atari 环境介绍 // 25
3.5.1 Atari 游戏概述 // 26
3.5.2 用 TensorFlow 编写 DQN // 27
3.6 验证 DQN 在 Atari Breakout 上的性能 // 39
总结 // 40
思考题 // 40
扩展阅读 // 41
第 4 章 Double DQN、竞争网络结构和 Rainbow // 42
4.1 技术需求 // 42
4.2 了解 Double DQN // 43
4.2.1 编写 DDQN 并训练解决 Atari Breakout 问题 // 43
4.2.2 在 Atari Breakout 问题中评估 DDQN 的性能 // 44
4.3 理解竞争网络结构 // 45
4.3.1 编写竞争网络结构并训练其解决 Atari Breakout 问题 // 47
4.3.2 在 Atari Breakout 中评估竞争网络结构的性能 // 48
4.4 了解 Rainbow 网络 // 49
DQN 改进 // 50
4.5 在 Dopamine 上运行 Rainbow 网络 // 50
TensorFlow 强化学习快速入门指南
—使用 Python 动手搭建自学习的智能体
X
使用 Dopamine 运行 Rainbow // 52
总结 // 53
思考题 // 53
扩展阅读 // 53
第 5 章 深度确定性策略梯度 // 55
5.1 技术需求 // 55
5.2 Actor-Critic 算法和策略梯度 // 56
策略梯度 // 56
5.3 深度确定性策略梯度 // 56
5.3.1 编写 ddpg.py // 57
5.3.2 编写 AandC.py // 59
5.3.3 编写 TrainOrTest.py // 64
5.3.4 编写 replay_buffer.py // 67
5.4 在 Pendulum-v0 中训练和测试 DDPG // 68
总结 // 69
思考题 // 70
扩展阅读 // 70
第 6 章 异步的方法——A3C 和 A2C // 71
6.1 技术需求 // 71
6.2 A3C 算法 // 71
6.2.1 损失函数 // 72
6.2.2 CartPole and LunarLander // 72
6.3 A3C 算法在 CartPole 中的应用 // 73
6.3.1 编写 cartpole.py // 73
6.3.2 编写 a3c.py // 75
6.3.3 Worker 类 // 77
6.3.4 编写 utils.py // 80
6.3.5 CartPole 训练 // 81
6.4 A3C 算法在 LunarLander 中的应用 // 82
6.4.1 编写 lunar.py // 82
6.4.2 在 LunarLander 上训练 // 82
6.5 A2C 算法 // 83
总结 // 83
思考题 // 84
扩展阅读 // 84
第 7 章 信任区域策略优化和近端策略优化 // 85
7.1 技术需求 // 85
7.2 学习 TRPO // 85
TRPO 方程 // 86
7.3 学习 PPO // 86
PPO 损失函数 // 86
7.4 使用 PPO 解决 Mountain Car 问题 // 87
7.4.1 编写 class_ppo.py // 87
7.4.2 编写 train_test.py // 91
7.5 评估性能 // 95
7.6 马力全开 // 95
7.7 随机发力 // 96
总结 // 97
思考题 // 97
扩展阅读 // 97
第 8 章 深度强化学习在自动驾驶中的应用 // 98
8.1 技术需求 // 98
8.2 汽车驾驶模拟器 // 99
8.3 学习使用 TORCS // 99
8.3.1 状态空间 // 100
8.3.2 支持文件 // 100
8.4 训练 DDPG agent 来学习驾驶 // 101
8.4.1 编写 ddpg.py // 101
8.4.2 编写 AandC.py // 101
8.4.3 编写 TrainOrTest.py // 102
TensorFlow 强化学习快速入门指南
—使用 Python 动手搭建自学习的智能体
8.5 训练 PPO agent // 104
总结 // 104
思考题 // 105
扩展阅读 // 105
附录 思考题答案 // 10