强化学习是一种自我进化型的机器学习,可以更接近于实现真正的人工智能。本书通过Python语言编写的丰富示例进行了详细解释。
本书读者
《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》主要针对对人工智能感兴趣,并想要零基础学习强化学习的从事机器学习开发人员和热衷于深度学习的爱好者。通过阅读本书,并通过在工作或项目中实现实际案例,将会使读者成为强化学习方面的专家。对线性代数、微积分和 Python 编程语言有一定基础将 有助于理解本书的内容。
本书主要内容
第 1 章 强化学习简介,有助于理解什么是强化学习及其是如何工作的。在此将学习强化学习的各种要素,如智能体、环境、策略和模型,同时将会分析用于强化学习的不同类型的环境、平台和库。在本章结束处,还将介绍强化学习的一些应用。
第 2 章 从 OpenAI 和 TensorFlow 入门,主要是针对各种强化学习任务配置所用计算机。在此将学习如何通过安装 Anaconda、 Docker、 OpenAI Gym、 Universe 和 TensorFlow 来配
置计算机。然后,将学习如何在 OpenAI Gym 中模拟智能体,还将学习如何构建一个视频游戏机器人。另外,还将学习 TensorFlow 的基本原理,并了解如何使用 TensorBoard 进行可视化。
第 3 章 马尔可夫决策过程和动态规划,首先解释了什么是马尔可夫链和马尔可夫过程,然后将学习如何将强化学习问题建模为马尔可夫决策过程(MDP)。另外,还将了解几个基本概念,如值函数、 Q 函数和 Bellman 方程。接下来,分析什么是动态规划,以及如何使用值函数和策略迭代来解决冰冻湖问题。
第 4 章 基于蒙特卡罗方法的博弈游戏,介绍了蒙特卡罗方法以及不同类型的蒙特卡罗预测方法,如首次访问蒙特卡罗和每次访问蒙特卡罗。另外,还将学习如何利用蒙特卡罗方法玩二十一点游戏。然后,探讨了不同的在线策略和离线策略的蒙特卡罗控制方法。
第 5 章 时间差分学习,其中包括时间差分(TD)学习、时间差分预测、时间差分离线策略和在线策略控制方法,如 Q 学习和 SARSA。另外,还将学习如何利用 Q 学习和SARSA 解决出租车问题。
第 6 章 MAB 问题,其中涉及强化学习的一个经典问题:多臂赌博机(MAB)或 k 臂赌博机问题。在此将学习如何利用各种探索策略来解决该问题,如贪婪、 Softmax 探索、UCB 和 Thompson 采样。在本章结束处,还将分析如何通过 MAB 向用户显示正确的广告标识。
第 7 章 深度学习基础,其中涵盖了深度学习的各种基本概念。首先,将学习什么是神经网络,然后是不同类型的神经网络,如 RNN、 LSTM 和 CNN。在此将通过构建一些诸如生成歌词和分类时尚产品等任务的应用程序来进行学习。
第 8 章 基于 DQN 的 Atari 游戏,其中介绍了一种应用最广泛的深度强化学习算法,称为深度 Q 网络(DQN)。将通过分析其各个组成部分来学习了解 DQN,然后讨论如何构建一个智能体利用 DQN 来玩 Atari 游戏。接下来,将研究一些改进的 DQN 架构,如双 DQN和对抗网络体系结构。
第 9 章 基于 DRQN 玩 Doom 游戏,解释了深度递归 Q 网络(DRQN)及其与 DQN 的不同。在此将讨论如何构建一个智能体利用 DRQN 来玩 Doom 游戏。在本章结束处,还将学习深度注意力递归 Q 网络(DARQN),这是将注意力机制添加到 DRQN 架构中。
第 10 章 A3C 网络,解释了异步优势行为者评论家(A3C)网络的工作原理。详细探讨了 A3C 架构,并将学习如何利用 A3C 构建一个爬山的智能体。
第 11 章 策略梯度和优化,涵盖了策略梯度是如何有助于在无需 Q 函数情况下找到正确策略,还将探讨深度确定性策略梯度(DPPG)法。在本章结束处,还将学习最先进的策略优化方法,如信赖域策略优化(TRPO)和近端策略优化(PPO)。
第 12 章 Capstone 项目—基于 DQN 的赛车游戏,提供了构建一个利用对抗性DQN赢得赛车比赛的智能体的详细方法。
第 13 章 最新进展和未来发展,提供了有关强化学习的各种相关进展信息,如想象力增强智能体(I2A)、基于人类偏好的学习、基于演示的深度 Q 学习(DQfd)和事后经验回放(HER),然后将讨论不同类型的强化学习方法,如分层强化学习(HRL)和逆向强化学习。
更好地利用本书
阅读本书需要以下软件:
Anaconda。
Python。
任何 Web 浏览器。
Docker。
下载示例代码文件
可以在 www.packtpub.com 上根据账户下载本书的示例代码文件。如果是从其他途径购买本书,可以访问 www.packtpub.com/support 并注册,从而可直接将文件邮件发送。
可以通过以下步骤下载代码文件:
1)在 www.packtpub.com 登录或注册。
2)选择 SUPPORT 标签页。
3)点击 Code Downloads & Errata。
4)在 Search box 中输入书名,并按照提示进行操作。
下载完成后,请确保采用以下最新版本进行文件夹解压缩:
Windows 系统下的 WinRAR/7-Zip。
Mac 系统下的 Zipeg/iZip/UnRarX。
Linux 系统下的 7-Zip/PeaZip。
本书的代码包还在Github上托管,具体地址为https://github.com//PacktPublishing/Hands- On- Reinforcement- Learning- with- Python。
如果代码有更新,同时也会在现有的 Github 代码库中更新。
另外,还可以从 https://github.com/PacktPublishing/ 丰富的图书和视频目录中获得其他代码包。敬请关注!
彩页下载
本书还提供了包含书中截屏 / 图表的所有彩色图像的 PDF 文件。可以从 http://www.packtpub.com/sites/default/fles/downloads/HandsOnReinforcementLearningwithPython_ColorImages.pdf 下载。
约定惯例
本书中使用了一些文本约定。
CodeInText :表示文本中的代码关键字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“Mount the
downloaded WebStorm–10*.dmg diskimage file as another disk in your system”。
代码块的设置如下:
任何命令行输入 / 输出表示如下:
粗体: 表示一个新词、一个重要的词或在屏幕上看到的单词。例如,在菜单或对话框
中以文本形式显示的单词。
警告或重要提示在此显示。
提示和技巧在此显示。
译者序
强化学习是人工智能相关的前沿领域。本书主要针对零基础学习强化学习的相关人员。通过一些实际案例,深入浅出地介绍了强化学习相关的理论知识与实现。
全书分为 13 章:
首先介绍了强化学习的各种要素,其中包括智能体、环境、策略和模型以及相应平台和库;
第 2 章学习了 Anaconda、 Docker、 OpenAI Gym、 Universe 和TensorFlow 等安装配置;
第 3 章介绍了什么是马尔可夫链和马尔可夫过程、强化学习问题建模与马尔可夫决策过程之间的关系、动态规划的基本概念等;
第 4 章主要介绍了蒙特卡罗方法以及不同类型的蒙特卡罗预测和控制方法;
第 5 章介绍了时间差分学习、预测、离线 / 在线策略控制等相关知识;
第 6 章介绍了强化学习领域的一个经典问题,即多臂赌博机问题,其中主要涉及各种探索策略方法;
第 7 章主要介绍了深度学习的各种基本概念、神经网络及其不同类型,如 RNN、 LSTM 和 CNN ;
第 8 章介绍了一种应用广泛的深度强化学习算法 DQN,以及双 DQN 和对抗网络体系结构等改进架构;
第 9 章阐述了 DRQN 并引入 DARQN ;
第 10 章探讨了 A3C 网络的基本工作原理及架构;
第 11 章主要是关于策略梯度和优化问题,其中包括信赖域策略优化和近端策略优化等先进的优化方法;
第 12 章详细介绍了利用对抗性 DQN 构建赛车智能体的具体实现过程;
第 13 章介绍了强化学习的最新进展以及未来发展。
全书内容丰富,结构合理,并通过实际项目的实现来阐述相关的理论知识,易于读者理解和掌握。作者在强化学习方面具有丰富的实践经验,同时通过各种博客科技文章的撰写积累了理论与实践结合的表述能力。
水平有限,难免存在不当与错误之处,恳请广大读者批评指正!
译者