内容简介

强化学习是一种重要的机器学习方法,在智能体及分析预测等领域有许多应用。《Python强化学习实战:应用OpenAIGym和TensorFlow精通强化学习和深度强化学习》共13章,主要包括强化学习的各种要素,即智能体、环境、策略和模型以及相应平台和库;Anaconda、Docker、OpenAIGym、Universe和TensorFlow等安装配置;马尔可夫链和马尔可夫过程及其与强化学习问题建模之间的关系,动态规划的基本概念;蒙特卡罗方法以及不同类型的蒙特卡罗预测和控制方法;时间差分学习、预测、离线/在线策略控制等;多臂赌博机问题以及相关的各种探索策略方法;深度学习的各种基本概念和RNN、LSTM、CNN等神经网络;深度强化学习算法DQN,以及双DQN和对抗网络体系结构等改进架构;DRQN以及DARQN;A3C网络的基本工作原理及架构;策略梯度和优化问题;*后介绍了强化学习的*新进展以及未来发展。

作者简介

作者简介

SudharsanRavichandiran是一位数据科学家、研究员、人工智能爱好者以及YouTuber(搜索Sudharsanreinforcementlearning),获得了Anna大学信息技术学士学位。他的研究领域包括深度学习和强化学习的实现,其中包括自然语言处理和计算机视觉。他曾是一名自由职业的网页开发人员和设计师,所设计开发的网站屡获殊荣,同时也热衷于开源,擅长解答堆栈溢出问题。

原书审稿人简介

SujitPal是Elsevier实验室的技术研究总监,Elsevier实验室是Reed-Elservier集团公司下的一个先进技术团队,研究领域包括语义检索、自然语言处理、机器学习和深度学习。他在Elsevier实验室主要从事搜索质量检测与改进、图像分类和重复率检测、医学和科学语料库的标注与本体开发。他曾与AntonioGulli合作撰写了一本关于深度学习的著作,并在博客SlamonRun上撰写了一些科技文章。

SuriyadeepanRamamoorthy是一名来自印度Puducherry的AI研究人员和工程师,主要研究领域是自然语言理解和推理,同时积极撰写有关深度学习的博客文章。在SAAMA技术中,他将先进的深度学习技术应用于生物医学文本分析,同时也是一名积极推动FSFTN领域发展的免费软件宣传者,另外对社交网络、数据可视化和创造性编程也非常感兴趣。

目录

译者序
原书前言
第1章强化学习简介//1
1.1 什么是强化学习//1
1.2 强化学习算法//2
1.3 强化学习与其他机器学习范式的不同//3
1.4 强化学习的要素//3
1.4.1 智能体//3
1.4.2 策略函数//3
1.4.3 值函数//4
1.4.4 模型//4
1.5 智能体环境接口//4
1.6 强化学习的环境类型//5
1.6.1 确定性环境//5
1.6.2 随机性环境//5
1.6.3 完全可观测环境//5
1.6.4 部分可观测环境//5
1.6.5 离散环境//5
1.6.6 连续环境//5
1.6.7 情景和非情景环境//5
1.6.8 单智能体和多智能体环境//6
1.7 强化学习平台//6
1.7.1 OpenAIGym和Universe//6
1.7.2 DeepMindLab//6
1.7.3 RLGlue//6
1.7.4 ProjectMalmo//6
1.7.5 VizDoom//6
1.8 强化学习的应用//7
1.8.1 教育//7
1.8.2 医疗和健康//7
1.8.3 制造业//7
1.8.4 库存管理//7
1.8.5 金融//7
1.8.6 自然语言处理和计算机视觉//7
1.9 小结//8
1.10 问题//8
1.11 扩展阅读//8
第2章从OpenAI和TensorFlow入门//9
2.1 计算机设置//9
2.1.1 安装Anaconda//9
2.1.2 安装Docker//10
2.1.3 安装OpenAIGym和Universe//11
2.2 OpenAIGym//13
2.2.1 基本模拟//13
2.2.2 训练机器人行走//14
2.3 OpenAIUniverse//16
2.3.1 构建一个视频游戏机器人//16
2.4 TensorFlow//20
2.4.1 变量、常量和占位符//20
2.4.2 计算图//21
2.4.3 会话//21
2.4.4 TensorBoard//22
2.5 小结//25
2.6 问题//25
2.7 扩展阅读//25
第3章马尔可夫决策过程和动态规划//26
3.1 马尔可夫链和马尔可夫过程//26
3.2 MDP//27
3.2.1 奖励和回报//28
3.2.2 情景和连续任务//28
3.2.3 折扣因数//28
3.2.4 策略函数//29
3.2.5 状态值函数//29
3.2.6 状态—行为值函数(Q函数)//30
3.3 Bellman方程和最优性//30
3.3.1 推导值函数和Q函数的Bellman方程//31
3.4 求解Bellman方程//32
3.4.1 动态规划//32
3.5 求解冰冻湖问题//38
3.5.1 值迭代//39
3.5.2 策略迭代//43
3.6 小结//45
3.7 问题//45
3.8 扩展阅读//46
第4章基于蒙特卡罗方法的博弈游戏//47
4.1 蒙特卡罗方法//47
4.1.1 利用蒙特卡罗方法估计π值//47
4.2 蒙特卡罗预测//50
4.2.1 首次访问蒙特卡罗//51
4.2.2 每次访问蒙特卡罗//52
4.2.3 利用蒙特卡罗方法玩二十一点游戏//52
4.3 蒙特卡罗控制//58
4.3.1 蒙特卡罗探索开始//58
4.3.2 在线策略的蒙特卡罗控制//59
4.3.3 离线策略的蒙特卡罗控制//61
4.4 小结//62
4.5 问题//62
4.6 扩展阅读//63
第5章时间差分学习//64
5.1 时间差分学习//64
5.2 时间差分预测//64
5.3 时间差分控制//66
5.3.1 Q学习//66
5.3.2 SARSA//72
5.4 Q学习和SARSA之间的区别//77
5.5 小结//77
5.6 问题//78
5.7 扩展阅读//78
第6章MAB问题//79
6.1 MAB问题//79
6.1.1 ε贪婪策略//80
6.1.2 Softmax探索算法//82
6.1.3 UCB算法//83
6.1.4 Thompson采样算法//85
6.2 MAB的应用//86
6.3 利用MAB识别正确的广告标识//87
6.4 上下文赌博机//89
6.5 小结//89
6.6 问题//89
6.7 扩展阅读//89
第7章深度学习基础//90
7.1 人工神经元//90
7.2 ANN//91
7.2.1 输入层//92
7.2.2 隐层//92
7.2.3 输出层//92
7.2.4 激活函数//92
7.3 深入分析ANN//93
7.3.1 梯度下降//95
7.4 TensorFlow中的神经网络//99
7.5 RNN//101
7.5.1 基于时间的反向传播//103
7.6 LSTMRNN//104
7.6.1 利用LSTMRNN生成歌词//105
7.7 CNN//108
7.7.1 卷积层//109
7.7.2 池化层//111
7.7.3 全连接层//112
7.7.4 CNN架构//112
7.8 利用CNN对时尚产品进行分类 //113
7.9 小结//117
7.10 问题//117
7.11 扩展阅读//118
第8章基于DQN的Atari游戏 //119
8.1 什么是DQN//119
8.2 DQN的架构//120
8.2.1 卷积网络//120
8.2.2 经验回放//121
8.2.3 目标网络//121
8.2.4 奖励裁剪//122
8.2.5 算法理解//122
8.3 构建一个智能体来玩Atari游戏//122
8.4 双DQN//129
8.5 优先经验回放//130
8.6 对抗网络体系结构//130
8.7 小结//131
8.8 问题//132
8.9 扩展阅读//132
第9章基于DRQN玩Doom游戏 //133
9.1 DRQN//133
9.1.1 DRQN架构//134
9.2 训练一个玩Doom游戏的智能体//135
9.2.1 基本的Doom游戏//135
9.2.2 基于DRQN的Doom游戏//136
9.3 DARQN//145
9.3.1 DARQN架构//145
9.4 小结//145
9.5 问题//146
9.6 扩展阅读//146
第10章A3C网络//147
10.1 A3C//147
10.1.1 异步优势行为者//147
10.1.2 A3C架构//148

前言/序言

强化学习是一种自我进化型的机器学习,可以更接近于实现真正的人工智能。《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》通过Python语言编写的丰富示例进行了详细解释。

Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》读者
Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》主要针对对人工智能感兴趣,并想要零基础学习强化学习的从事机器学习开发人员和热衷于深度学习的爱好者。通过阅读《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》,并通过在工作或项目中实现实际案例,将会使读者成为强化学习方面的专家。对线性代数、微积分和Python编程语言有一定基础将有助于理解《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》的内容。

Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》主要内容
第1章强化学习简介,有助于理解什么是强化学习及其是如何工作的。在此将学习强化学习的各种要素,如智能体、环境、策略和模型,同时将会分析用于强化学习的不同类型的环境、平台和库。在本章结束处,还将介绍强化学习的一些应用。

第2章从OpenAI和TensorFlow入门,主要是针对各种强化学习任务配置所用计算机。在此将学习如何通过安装Anaconda、Docker、OpenAIGym、Universe和TensorFlow来配

置计算机。然后,将学习如何在OpenAIGym中模拟智能体,还将学习如何构建一个视频游戏机器人。另外,还将学习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)和逆向强化学习。

更好地利用《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习
阅读《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》需要以下软件:

?Anaconda。
?Python。
?任何Web浏览器。
?Docker。

下载示例代码文件
可以在www.packtpub.com上根据账户下载《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》的示例代码文件。如果是从其他途径购买《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》,可以访问www.packtpub.com/support并注册,从而可直接将文件邮件发送。

可以通过以下步骤下载代码文件:
1)在www.packtpub.com登录或注册。
2)选择SUPPORT标签页。
3)点击CodeDownloads&Errata。
4)在Searchbox中输入书名,并按照提示进行操作。

下载完成后,请确保采用以下最新版本进行文件夹解压缩:
?Windows系统下的WinRAR/7Zip。
?Mac系统下的Zipeg/iZip/UnRarX。
?Linux系统下的7Zip/PeaZip。

Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》的代码包还在Github上托管,具体地址为https://github.com//PacktPublishing/Hands-On-Reinforcement-Learning-with-Python。

如果代码有更新,同时也会在现有的Github代码库中更新。

另外,还可以从https://github.com/PacktPublishing/丰富的图书和视频目录中获得其他代码包。敬请关注!

彩页下载

Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》还提供了包含书中截屏/图表的所有彩色图像的PDF文件。可以从http://www.packtpub.com/sites/default/fles/downloads/HandsOnReinforcementLearningwithPython_ColorImages.pdf下载。

约定惯例

Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》中使用了一些文本约定。

CodeInText:表示文本中的代码关键字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。下面是一个示例:“Mountthe

downloadedWebStorm–10*.dmgdiskimagefileasanotherdiskinyoursystem”。

代码块的设置如下:

任何命令行输入/输出表示如下:

粗体:表示一个新词、一个重要的词或在屏幕上看到的单词。例如,在菜单或对话框

中以文本形式显示的单词。

警告或重要提示在此显示。

提示和技巧在此显示。

译者序

强化学习是人工智能相关的前沿领域。《Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》主要针对零基础学习强化学习的相关人员。通过一些实际案例,深入浅出地介绍了强化学习相关的理论知识与实现。

Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》分为13章:

首先介绍了强化学习的各种要素,其中包括智能体、环境、策略和模型以及相应平台和库;

第2章学习了Anaconda、Docker、OpenAIGym、Universe和TensorFlow等安装配置;

第3章介绍了什么是马尔可夫链和马尔可夫过程、强化学习问题建模与马尔可夫决策过程之间的关系、动态规划的基本概念等;

第4章主要介绍了蒙特卡罗方法以及不同类型的蒙特卡罗预测和控制方法;

第5章介绍了时间差分学习、预测、离线/在线策略控制等相关知识;

第6章介绍了强化学习领域的一个经典问题,即多臂赌博机问题,其中主要涉及各种探索策略方法;

第7章主要介绍了深度学习的各种基本概念、神经网络及其不同类型,如RNN、LSTM和CNN;

第8章介绍了一种应用广泛的深度强化学习算法DQN,以及双DQN和对抗网络体系结构等改进架构;

第9章阐述了DRQN并引入DARQN;

第10章探讨了A3C网络的基本工作原理及架构;

第11章主要是关于策略梯度和优化问题,其中包括信赖域策略优化和近端策略优化等先进的优化方法;

第12章详细介绍了利用对抗性DQN构建赛车智能体的具体实现过程;

第13章介绍了强化学习的最新进展以及未来发展。

Python强化学习实战:应用OpenAI Gym和TensorFlow精通强化学习和深度强化学习》内容丰富,结构合理,并通过实际项目的实现来阐述相关的理论知识,易于读者理解和掌握。作者在强化学习方面具有丰富的实践经验,同时通过各种博客科技文章的撰写积累了理论与实践结合的表述能力。

水平有限,难免存在不当与错误之处,恳请广大读者批评指正!

译者


其他推荐