深度强化学习实践(原书第2版) ([俄] 马克西姆·拉潘 (Maxim Lapan)) (Z-Library)

Author: (俄罗斯)马克西姆·拉潘(Maxim Lapan)

商业

No Description

📄 File Format: PDF
💾 File Size: 16.1 MB
20
Views
0
Downloads
0.00
Total Donations

📄 Text Preview (First 20 pages)

ℹ️

Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

📄 Page 1
(This page has no text content)
📄 Page 2
随时、随地、随心阅读
📄 Page 3
当当云阅读
📄 Page 4
版权信息 COPYRIGHT INFORMATION 书名:深度强化学习实践(原书第2版) 作者:(俄罗斯)马克西姆·拉潘(Maxim Lapan) 出版社:机械工业出版社 出版时间:2021-07-01 ISBN:9787111687382 本书由北京华章图文信息有限公司授权北京当当科文电子商务有限公司制作与发 行。 — · 版权所有 侵权必究 · —
📄 Page 5
译者序 我最早于2018年接触强化学习这一令人兴奋的技术,在深入了解 后,感觉打开了一扇新世界的大门。使用强化学习,我不仅可以享受 编程的乐趣,也可以享受玩游戏的乐趣。同时,强化学习也在一定程 度上给了我一些生活上的启示,从前的我是容易陷入“局部最优性” 的人:我之前只要在食堂遇到一种喜欢吃的食物,就会天天吃,直到 吃腻为止;回家的路,只会走那条最熟悉的(即使可能有近路,但是 害怕走错还是不会选择那条可能的近路)。强化学习对于探索的需求 是很强烈的,对于未见过的观察,智能体必须要有强烈的探索欲望, 经历过各种场景,最终得到的策略才会更优。在探索强化学习的同 时,我自身也更接纳“探索”了:多尝试以前没有吃过的菜,多探索 几条新的回家的路。这种不需要后续步骤、可以立即得到确定性状态 价值的探索非常高效,必须要好好利用。 在接触本书后,我发现,如果在啃Sutton的《强化学习(第2 版)》前,能先好好学习一下本书,那该多么幸福!本书从理论和实 践两个角度对强化学习进行了解释和演示,如果想快速上手强化学习 并开始实践,那么本书就是目前的不二之选了。 由于译者水平有限,书中出现错误与不妥之处在所难免,恳请读 者批评指正。如果有强化学习相关的问题想和译者进行探讨,可发邮 件至boydfd@gmail.com。 最后,感谢本书的策划编辑王春华的耐心和悉心指导。当然,还 要感谢我的女朋友王薇,在她的支持和协助下,这本书才得以翻译完 成,并呈现在大家面前。感谢每一位读者,你的潜心研习与融会贯通 将会令本书更有价值。
📄 Page 6
林然 2021年1月
📄 Page 7
前言 本书的主题是强化学习(Reinforcement Learning,RL),它是机器 学习(Machine Learning,ML)的一个分支,强调如何解决在复杂环境 中选择最优动作时产生的通用且极具挑战的问题。学习过程仅由奖励 值和从环境中获得的观察驱动。该模型非常通用,能应用于多个真实 场景,从玩游戏到优化复杂制造过程都能涵盖。 由于它的灵活性和通用性,RL领域在快速发展的同时,吸引了很 多人的关注。其中,既包括试图改进现有方法或创造新方法的研究人 员,也包括专注于用最有效的方式解决问题的从业人员。 写本书的目的 写本书的目的是填补RL理论系统和实际应用之间的巨大空白。目 前全世界有很多研究活动,基本上每天都有新的相关论文发表,并且 有很多深度学习的会议,例如神经信息处理系统(Neural Information Processing Systems,NeurIPS)大会和国际学习表征会议(International Conference on Learning Representations,ICLR)。同时,有好几个大型 研究组织致力于将RL应用于机器人、医学、多智能体系统等领域。 最新的相关研究资料虽然很容易获得,却都过于专业和抽象,难 以理解。RL的实践落地则显得更为困难,因为将论文中由数学公式堆 砌的大量抽象理论转换成解决实际问题的实现方式并不总是显而易见 的。 这使得一些对该领域感兴趣的人很难理解隐含在论文或学术会议 背后的方法与思想。虽然针对RL的各个方面有很多非常棒的博客用生 动的例子来解释,但博客的形式限制让作者们只能阐述一两种方法,
📄 Page 8
而不是构建一个完整的全景图来将不同的方法联系起来。本书就是为 了解决这个问题而写的。 教学方法 本书的另一个关注点是实际应用。每个方法针对非常简单到非常 复杂的情况都进行了实现。我试图让例子简洁易懂,PyTorch的易读与 强大使之成为可能。另外,例子的复杂度是针对RL业余爱好者而设计 的,不需要大量的计算资源,比如图形处理器(GPU)集群或很强大 的工作站。我相信,这将使充满乐趣和令人兴奋的RL领域不仅限于研 究小组或大型人工智能公司,还可以让更广泛的受众涉足。但毕竟本 书有关内容还是“深度”RL,因此强烈建议大家使用GPU。 除了Atari游戏或连续控制问题等RL中一些经典的中等规模例子 外,本书还有好几章(第10、14、15、16和18章)介绍大型项目,说明 RL方法能应用到更复杂的环境和任务中。这些例子不是现实场景中的 完整项目,但也足以说明,除了精心设计的基准测试外,RL能在更大 的范围内应用。 本书从结构上看分为四个部分,其中第1~4章为第一部分,第5~ 10章为第二部分,第11~16为第三部分,第17~25章为第四部分。关于 本书前三个部分的例子,值得注意的另一件事是我试图使它们成为独 立的,会完整地显示所有代码。有时这会导致代码片段的重复(例 如,大多数方法中的训练迭代都很相似),但是我认为,让大家学到 想学的函数比刻意避免一些重复更重要,你可以自行跳转到需要的代 码。本书中的所有例子都能在GitHub上找到,网址为 https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands- On-Second-Edition。欢迎你来获取、实验并贡献代码。 读者对象 本书面向已经有机器学习基础而想对RL领域进行实践的读者。阅 读本书前,读者应该熟悉Python并且有一定的深度学习和机器学习基
📄 Page 9
础。具有统计学和概率论知识会大有帮助,但对于理解本书的大部分 内容都不是必要的。 本书内容 第1章介绍了RL的思想和模型。 第2章使用开源库Gym介绍了RL实践。 第3章概述了PyTorch库。 第4章用最简单的RL方法对RL的方法和问题进行了初步介绍。 第5章介绍了基于价值的RL方法。 第6章描述了深度Q-network(DQN),是对基础的基于价值的方 法的扩展,能解决复杂环境下的问题。 第7章描述了PTAN库,它可以简化RL方法的实现。 第8章详细介绍了DQN的最新扩展方法,以提升在复杂环境下的稳 定性和收敛性。 第9章概述了使RL代码加速执行的办法。 第10章给出了第一个练习项目,重点是将DQN方法应用于股票交 易。 第11章介绍了另一类RL方法,即基于策略学习的方法。 第12章描述了RL中使用非常广泛的方法之一。 第13章用并行环境交互的方式扩展了actor-critic方法,从而提高了 稳定性和收敛性。
📄 Page 10
第14章给出了第二个项目,展示了如何将RL方法应用于自然语言 处理问题。 第15章介绍了RL方法在文字冒险游戏中的应用。 第16章给出了另一个大项目,使用MiniWoB任务集将RL应用于Web 导航。 第17章介绍了连续动作空间的环境特性以及各种方法。 第18章介绍了RL方法在机器人问题中的应用,描述了如何用RL方 法来构建和训练小型机器人。 第19章仍是有关连续动作空间的章节,描述了一组置信域方法在 其中的应用。 第20章展示了另一组不显式使用梯度的方法。 第21章介绍了能更好地进行环境探索的方法。 第22章介绍了RL的基于模型的方法,并使用了将想象力应用于RL 的最新研究结果。 第23章描述了AlphaGo Zero方法并将其应用于四子连横棋游戏中。 第24章使用魔方作为环境,描述了RL方法在离散优化领域的应 用。 第25章介绍了一个相对较新的RL方法应用方向,即在多智能体情 境下的应用。 阅读指导 本书的所有章节都采用同样的结构来描述RL方法:首先讨论方法 的动机、理论基础以及背后的思想;然后,给出几个不同环境下的带
📄 Page 11
完整源代码的例子。 你可以通过不同的方式来阅读本书: 1. 若要快速熟悉某些方法,可以只阅读相关章节的简介部分。 2. 若要深入理解某个方法是如何实现的,可以阅读代码和相关注 释。 3. 若要深度熟悉某个方法(我认为是最好的学习方式),可以尝 试借助提供的代码重新实现该方法并使之有效。 无论如何,我希望这本书对你有帮助! 下载示例代码及彩色图片 本书的示例代码及所有截图和样图,可以从 http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网 http://www.hzbook.com,通过注册并登录个人账号下载。 本书的代码也托管在GitHub上 (https://github.com/PacktPublishing/Deep-Reinforcement-Learning- Hands-On-Second-Edition)。如果代码有更新,GitHub上的代码会同步 更新。本书所有彩色版屏幕截图/图表的PDF文件也可以从 https://static.packt-cdn.com/downloads/9781838826994_ColorImages.pdf下 载。 排版约定 文中的代码体:表示出现在文中的代码、数据库表名、目录名、 文件名、文件扩展名、路径、用户输入、Twitter句柄。 代码块示例:
📄 Page 12
命令行输入或输出示例: 黑体:表示新的术语、重要的词或会在屏幕中显示的词(例如, 菜单或对话框中的内容)。 表示警告或重要的提示。 表示提示和技巧。
📄 Page 13
作者简介 马克西姆·拉潘(Maxim Lapan)是一位深度学习爱好者和独立研 究者。作为一名软件开发人员和系统架构师,他拥有15年的工作经 验,涉及从底层Linux内核驱动程序开发到性能优化以及在数千台服务 器上工作的分布式应用程序设计的方方面面。他在大数据、机器学习 以及大型并行分布式HPC和非HPC系统方面也拥有丰富的经验,能够 用简单的词汇和生动的示例来解释复杂的事物。他目前感兴趣的领域 涉及深度学习的实际应用,例如深度自然语言处理和深度强化学习。 马克西姆与家人一起住在俄罗斯莫斯科。 感谢我的妻子Olga和我的孩子们(Ksenia、Julia和Fedor),感谢 他们的耐心和支持。写这本书是一个充满挑战的过程,没有他们不可 能实现。Julia和Fedor在收集MiniWoB样本(第16章)以及测试四子连 横棋智能体游戏(第23章)方面帮了我很多忙。
📄 Page 14
审校者简介 Mikhail Yurushkin拥有博士学位,是俄罗斯顿河畔罗斯托夫的俄罗 斯南联邦大学的高级讲师,教授有关计算机视觉和NLP的高级深度学 习课程。他的研究领域是高性能计算和编译器优化开发,在跨平台原 生C++开发、机器学习和深度学习方面有8年以上的经验。他是一名企 业家,是包括BroutonLab在内的多家技术初创公司的创始人。 BroutonLab是一家数据科学公司,专门研究基于AI的软件产品的开 发。 Per-Arne Andersen是挪威阿哥德大学的深度强化学习专业博士 生。他撰写了多篇与游戏有关的强化学习技术论文,并因对基于模型 的强化学习的研究而获得了英国计算机学会的最佳学生奖。Per-Arne 还是网络安全方面的专家,自2012年以来一直从事该领域的工作。他 目前的研究兴趣包括机器学习、深度学习、网络安全以及强化学习。 Sergey Kolesnikov是一位工业工程师,也是一位学术研究工程师, 在机器学习、深度学习和强化学习方面拥有超过5年的经验。他还是 Catalyst的创建者,这是一个用于加速深度学习和强化学习研究与开发 的高级PyTorch生态系统。他目前正在致力于处理CV、NLP和 RecSys(推荐系统)的工业应用,同时还参与强化学习的学术研究。 他也对顺序决策和心理学很感兴趣。Sergey是NeurIPS竞赛的获胜者, 也是一位开源传道者。
📄 Page 15
第1章 什么是强化学习 强化学习(Reinforcement Learning,RL)是机器学习(Machine Learning,ML)的一个分支,它能随着时间的推移,自动学习最优决 策。这是许多科学和工程领域普遍研究的一个问题。 在瞬息万变的世界中,如果考虑时间的因素,即使是静态的输入 输出问题也会变成动态问题。例如,想象一下你想要解决一个宠物图 片分类(一共有两个目标类:狗和猫)的简单监督学习问题。你收集 了训练数据集并使用深度学习(Deep Learning,DL)工具作为分类 器。一段时间后,收敛的模型表现得很出色。这很棒!于是你将其部 署并运行了一段时间。但是,当你从某个海滨度假胜地回来后,发现 狗狗间流行的装扮方式发生了改变,因此大部分的查询都返回了错误 的分类结果,你也因此需要更新你的训练图片,并重复之前的过程。 这就不美妙了! 前面的示例旨在说明即使是简单的ML问题也有隐藏的时间维度。 这常被忽视,那么它在生产系统中就可能会成为一个问题。RL很自然 地将额外的维度(通常是时间,但并非必须是时间)并入学习方程 式。这让RL更接近于人们所理解的人工智能(Artificial Intelligence,AI)。 在本章中,我们会详细讨论RL,你将会熟悉以下内容: RL和其他ML方法(监督学习(supervised learning)和非监督学 习(unsupervised learning))的关联和区别。 RL有哪些主要形式,它们之间的关系是什么样的。 RL的理论基础——马尔可夫决策过程。
📄 Page 16
1.1 机器学习分类 1.1.1 监督学习 你可能已经熟悉了监督学习的概念,监督学习是被研究得最多且 最著名的机器学习方法。它的基本问题是,当给定一系列带标签的数 据时,如何自动构建一个函数来将某些输入映射成另外一些输出。虽 然这听起来很简单,但仍存在一些棘手的问题,计算机领域也是在最 近才成功解决了部分问题。监督学习的例子有很多,包含: 文本分类:电子邮件是否是垃圾邮件? 图像分类和目标检测:图片包含了猫还是狗还是其他东西? 回归问题:根据气象传感器的信息判断明天的天气。 情感分析:某份评价反应的客户满意度是多少? 这些问题貌似不同,但思想一致——我们有很多输入输出对,并 想通过学习它的规律来让未来的、当前不可见的输入能产生准确的输 出。根据“标准答案”数据源给出的已知答案来学习,这就是监督一 词的由来。 1.1.2 非监督学习 另外一个极端就是所谓的非监督学习,它假设我们的数据没有已 知的标签。它的主要目标是从当前的数据集中学习一些隐藏的结构。 这种学习方法的常见例子就是对数据进行聚类。该算法用于将数据分 类成不同组,以揭示数据间的关系。例如,想要找到相似的图片或者 有类似行为的客户。
📄 Page 17
另一类正变得越来越流行的非监督学习方法是生成对抗网络 (Generative Adversarial Network,GAN)。当有两个相互竞争的网 络时,一个网络试着生成假数据来愚弄第二个网络,而第二个网络则 努力将伪造的数据和真实的采样数据区分开。随着时间的流逝,两个 网络都通过捕获数据中一些细微的特定模式变得越来越强大。 1.1.3 强化学习 RL则处于第三阵营,介于完全监督和完全没有预定义标签之间。 它会用到很多已经比较完善的监督学习方法来学习数据的表示,比如 用深度神经网络(deep neural network)来进行函数逼近、随机梯度 下降和反向传播。但它会用不同的方式来使用这些方法。 本章接下来的两节将介绍RL方法的一些具体细节,包括用严格的 数学形式来建立假设和抽象。而本节会用比较不正式但很容易理解的 方式来比较RL和监督学习以及非监督学习之间的区别。 想象在某环境下有个需要选择动作的智能体。(本章后面会给出 “智能体”和“环境”的详细定义。)迷宫中的机器老鼠就是一个很 好的例子,当然你也可以想象一个无人操作的直升机在盘旋,或一个 国际象棋程序要学着如何击败一名大师级棋手。为了简单起见,我们 以机器老鼠为例(见图1.1)。
📄 Page 18
图1.1 机器老鼠的迷宫世界 在本例中,环境就是迷宫,迷宫里会有一些地方有食物,还有些 地方有电流。机器老鼠能够选择动作,比如左转、右转以及前进。每 一时刻,它都能观察到迷宫的整体状态并据此决定选择什么动作。机 器老鼠的目的是找到尽可能多的食物,同时尽可能避免被电击。这些 食物和电信号代表智能体(机器老鼠)收到的奖励,是环境针对智能 体选择的动作所提供的额外反馈。奖励在RL中是非常重要的概念,本 章后面就会谈到它。现在,你只要知道智能体最终的目标是获取尽可 能多的奖励就够了。在这个例子中,机器老鼠需要寻找大量食物并承
📄 Page 19
受少量电击——对于机器老鼠而言,这比站着不动且一无所获要好得 多。 我们不想将与环境有关的知识和每个特定环境下采取的最佳动作 硬编码给机器老鼠——这样太消耗精力了,而且只要环境稍微发生变 化,这样的硬编码就失效了。我们想要的是一套神奇的方法,让机器 老鼠学着自己避开电流并收集尽可能多的食物。RL就是这样一个与监 督学习和非监督学习都不一样的神奇工具,它不像监督学习那样需要 预定义好标签。没有人将机器老鼠看到的所有图片标记为好或坏,也 没有人给出它需要转向的最佳方向。 但是,它也不像非监督学习那样完全不需要其他信息,因为我们 有奖励系统。奖励可以是得到食物后的正向反馈、遭到电击后的负向 反馈,什么都没发生时则无反馈。通过观察奖励并将其与选择的动作 关联起来,智能体将学习如何更好地选择动作,也就是获取更多食 物、受到更少的电击。当然,RL的通用性和灵活性也是有代价的。与 监督学习和非监督学习相比,RL被认为是更具挑战的领域。我们来快 速讨论一下RL有哪些棘手的地方。
📄 Page 20
1.2 强化学习的复杂性 首先要注意的是,RL中的观察结果取决于智能体选择的动作,某 种程度上可以说是动作导致的结果。如果智能体选择了无用的动作, 观察结果不会告诉你做错了什么或如何选择动作才能改善结果(智能 体只会得到负面的反馈)。如果智能体很固执并且不断犯错,那么这 些观察结果会给出一个错误的印象,即没法获取更大的奖励了,但这 种印象很可能是完全错误的。 用ML的术语来说,就是有非i.i.d.(independent and identically distributed,独立同分布)数据,而i.i.d.是大多数监 督学习方法的前提。 第二个复杂的地方是智能体不仅需要利用它学到的知识,还要积 极地探索环境,因为选择不同的动作很可能会明显地改善结果。但问 题是太多的探索会严重地降低奖励(更不用说智能体实际上会忘记它 之前学的知识了),所以需要找到这两种行为之间的平衡点。这种探 索与利用的两难问题是RL中公开的基本问题之一。人们一直在面对这 种选择——应该去一个知名餐厅就餐,还是去新开的新奇餐厅就餐? 应该多久换一次工作?应该接触一下新领域还是继续留在现在的领 域?这些问题尚无统一的答案。 第三个复杂的地方在于,选择动作后奖励可能会严重延迟。例 如,在国际象棋中,游戏中途的一次强力落子就可以改变平衡。在学 习过程中,我们需要发现这种因果关系,而在时间的流逝和不断选择 的动作中辨别这种因果关系是很困难的。 然而,尽管存在这么多障碍和复杂性,RL在近年来已经取得了巨 大的进步,并且在学术研究和实际应用领域中变得越来越活跃。 有兴趣了解更多吗?我们来深入研究某些细节,看看RL的形式和 游戏规则。
The above is a preview of the first 20 pages. Register to read the complete e-book.

💝 Support Author

0.00
Total Amount (¥)
0
Donation Count

Login to support the author

Login Now
Back to List