A Comprehensive Survey of Continual Learning: Theory, Method and Application
OCAtari:以对象为中心的 Atari 2600 强化学习环境
摘要
认知科学和心理学表明,以对象为中心的复杂场景表示是实现从低级感知特征中进行高效抽象推理的有希望的一步。然而,大多数深度强化学习方法依赖于仅基于像素的表示,这些表示无法捕捉自然场景的组合性属性。因此,我们需要能够让我们研究和评估以对象为中心的方法的环境和数据集。我们提出了 OCAtari,这是一组提供 Atari 游戏的以对象为中心的状态表示的环境,Atari 游戏是深度强化学习方法最常用的评估框架。OCAtari 还允许对游戏的 RAM 状态进行操作,以改变和创建特定的甚至全新的情境。本工作的代码可在 https://github.com/k4ntz/OC_Atari 获取。
1 引言
为了完成复杂任务,人类首先提取以对象为中心的场景表示,从而在推理过程中排除干扰因素(Grill-Spector 和 Kanwisher,2005;Tenenbaum 等,2011)。尽管深度强化学习(RL)代理可能在推理之前隐式地执行对象提取,但它们无法提供任何以对象为中心的中间表示。提供这样的表示将使科学家能够检查次优学习行为是由于误检测、错误的对象识别还是推理失败,同时也有助于在人类与学习代理之间,或不同任务之间更轻松地进行知识转移,从而减少所需的样本数量(Dubey 等,2018)。使用以对象为中心的方法还具有许多优势,例如能够使用逻辑来编码策略,从而产生更具可解释性且泛化能力更强的代理(Delfosse 等,2023)。因此,强化学习中一个不断增长的趋势是使用以对象为中心的方法(见图 1),将对象提取和识别与策略搜索分开。评估这些方法的以对象为中心的能力不仅有助于提升整体性能(即得分),还能理解每个部分的不足之处。
自 Bellemare 等(2013)引入街机学习环境(ALE)以来,Atari 2600 游戏已成为测试和评估强化学习算法的最常用环境,如图 1 所示。由于强化学习方法的评估、比较和复现难度较大,尤其是由于相关成本和方法的非确定性,基准测试需要涵盖各种不同的任务和挑战,以平衡不同方法的优缺点(Henderson 等,2018)。不幸的是,目前还没有针对以对象为中心方法的基准测试。Atari 2600 游戏构成了一个多样化的环境集合;这个框架的以对象为中心的版本是将新兴的以对象为中心的算法与现有的深度算法进行比较的合适基准。Badia 等(2020a)表明,当前在 Atari 2600 游戏中玩耍的强化学习代理远非最优,并建议使用增强的表示。
对于这些 Atari 游戏,关于移动对象的信息存在于 RAM 中。这导致科学家们直接使用 RAM 作为原始的、未经结构化的信息,作为强化学习算法的输入(Sygnowski 和 Michalewski,2016)。然而,RAM 中存在许多与策略无关的信息(例如,时间计数器、HUD 元素信息等),并且没有提供任何结构。许多游戏例如使用位图或将许多信息量(如对象方向、相对于锚点的偏移量以及对象类别)编码到一个字节中。这使得强化学习算法对信息的处理变得困难,并且剥夺了这些算法的可解释性。为了解决这些问题,Anand 等(2019)提出了 AtariARI,这是一个围绕一些 Atari Gym 环境的包装器,它在每一步返回的信息字典中增加了某些信息的 RAM 位置。然而,RAM 中的信息是由游戏处理的,因此最多只是与屏幕上出现的信息相关联。例如,在《袋鼠》游戏中,袋鼠的位置与不同的 RAM 值成比例,其高度被映射到不同的可能离散值。因此,仅仅提供一些原始的 RAM 位置,通常不足以完全描述强化学习的状态。
在本文中,我们提出了 OCAtari,这是 ALE 的一个以对象为中心的版本。我们的框架在 RAM 中维护一个当前存在的对象列表,以提供游戏状态中所有对象的列表(见图 2)。OCAtari 维护并更新环境中每个对象的列表,这使得追踪移动实例成为可能,而这种方法已被证明对强化学习非常有用,例如使用轨迹片段的方法(Agnew 和 Domingos,2020;Liu 等,2021)。对于以对象为中心的强化学习算法,OCAtari 不仅允许用户实时检测对象,使其成为对象发现方法的快速替代品(例如,Lin 等 [2020a] 和 Delfosse 等 [2022] 在 Atari 游戏中显著使用了这种方法),还允许对这些对象发现方法进行评估。我们的贡献可以总结如下:
我们引入了 OCAtari,这是一个处理来自 24 款 Atari 2600 游戏 RAM 信息的框架,使我们能够训练和评估以对象为中心的强化学习方法。
我们使用图像处理方法提取对象的“真实”列表,并用它来测试我们框架中每款游戏的不同指标。
为了便于比较对象发现方法,我们引入了 ODA(Object-Centric Dataset,以对象为中心的数据集),其中使用随机代理和 DQN 代理从 Atari 游戏中收集了帧。
我们展示了 OCAtari 如何轻松为当前的 Atari 代理生成新的挑战,例如在游戏中改变对象行为信息。
我们首先介绍以对象为中心的 Atari 框架。然后,我们通过实验评估其检测和速度性能。在总结之前,我们还会涉及相关工作。
2 以对象为中心的 Atari 环境
街机学习环境(Arcade Learning Environment,ALE)是由 Bellemare 等(2013)设计的一个强化学习框架,专门用于在 Atari 2600 游戏上训练学习代理。它支持 57 款不同的游戏,是测试深度强化学习方法的主要框架。为了便于使用,ALE 被集成到了 OpenAI Gymnasium 包中。
2.1 OCAtari 环境
我们还提供了一个易于使用的 ocatari 文档化包,它允许轻松实例化环境。我们的包提供了 OCAtari 类,该类是围绕环境的一个包装器。为了方便在 ALE 和 OCAtari 环境之间切换,ALE 框架中的每个有用方法(例如 step、render、seed 等)都已为 OCAtari 重新实现。此外,还实现了其他方法,如 get_ram 和 set_ram,方便对 RAM 进行操作。在 ALE 框架的实例中,这些功能很难找到。OCAtari 环境还提供了一个缓冲区,其中包含游戏中最近的 4 帧转换后的图像(即灰度化、84×84 大小),这已成为一种标准的状态表示方式,尤其被例如 DQN(Mnih 等,2015)、DDQN(van Hasselt 等,2016)和 Rainbow(Hessel 等,2018)算法所使用。
OCAtari 环境维护一个对象列表,其中包含状态中出现的每个对象。所有对象都通过其类别(例如“Pacman”)、位置(x 和 y)、大小(w 和 h)以及其 RGB 值来定义。必要时,对象还可以包含其他属性,例如在《Skiing》(滑雪)中的玩家的方向(见图 3),或者值(例如氧气条或分数)。我们将对游戏玩法至关重要的对象与属于 HUD(例如分数、剩余生命)的对象区分开来,后者通常用于提供有关玩游戏代理表现的额外信息。虽然在学习策略时忽略这些元素应该并不困难,但我们的环境提供了一个 hud 布尔参数,当设置为 False 时,可以过滤掉 HUD 元素。
与 Anand 等(2019)不同,他们为了构建 AtariARI 框架,参考了不同 Atari 游戏的注释反汇编代码或源代码,而我们采用了其他分析技术来理解并找到信息在 RAM 中的存储位置。为此,我们创建了一种图像处理检测方法,该方法对 RGB 渲染帧进行处理以提取对象列表。由于大多数对象具有唯一或少数几种可能的 RGB 值,我们为每个对象类别对图像应用了颜色过滤器。
因此,我们从图像中获得了一个位图,从中提取出边界框。然后,我们利用游戏中的位置或大小知识,将每个边界框分配给其对应的对象。例如在《Pong》(乒乓球)游戏中,分数总是位于图像的顶部,而球拍总是放置在白色粗线的下方(见图 3)。这种对象提取程序可以用于训练以对象为中心的强化学习代理,但它需要较慢的图像处理技术。它也可以作为一个基线,用于评估 OCAtari 的 RAM 提取系统。通过这种视觉处理方法提取的对象列表可以被定义为“真实”列表。使用这种程序,我们可以在随机代理或 DQN 代理玩游戏时跟踪对象,并尝试找到它们的有趣属性(例如它们的位置)与 Atari RAM 的 128 个字节之间的相关性。这使我们能够找到适合对象属性的候选对象,这些属性随后将被测试。我们还创建了脚本,修改每个 RAM 值,并查看渲染帧的潜在变化。然而,这种技术并不总是成功的,因为有些信息在被游戏程序计算后存储在 RAM 中,但并未被重新用于计算下一个状态。所有上述描述的脚本都已随本文一起发布并进行了文档化。
如表 1 所示,我们的图像处理方法(视觉)涵盖了 n 款游戏,而 RAM 处理方法仅涵盖了 m 款游戏。尽管这些已经构成了一个多样化的环境集合,但我们将继续在 RAM 和视觉版本中添加新支持的游戏,并完成我们已经开始的工作。此外,我们还使 OCAtari 在 MIT 许可下公开可用。
2.2 ODA,一个面向 Atari 的以对象为中心的数据集
正如引言中所述,OCAtari 不仅可以用于评估以对象为中心的强化学习算法,还可以用于评估对象发现方法。我们提供了一组预选的帧,以便在共同的数据集上比较这些方法。从 OCAtari 中获取一个以对象为中心的 Atari 帧数据集非常容易:只需要运行一个代理通过游戏,并收集观察到的帧和对象列表即可。然而,如果每位科学家都使用自己的代理进行探索,不同能力的训练代理可能会揭示环境的不同部分,尤其是在逐步游戏中,Delfosse 等(2021)将逐步游戏定义为代理需要达到一定掌握水平才能揭示环境新部分的环境。因此,我们引入了面向 Atari 的以对象为中心的数据集(ODA),一个我们将游戏状态与其各自对象列表相关联的数据集。该数据集展示了顺序状态,对于每个状态,都存储了 210×160 的 RGB 帧以及通过视觉和 RAM 程序找到的对象列表。HUD 元素与游戏对象分开,因为它们是静态的,因此可以被对象发现方法视为背景的一部分。从 RAM 中包含的每个额外的对象信息也保存在这些对象中。在此需要说明的是,视觉模式是比较的更好选择,因为它只跟踪画面内的对象,因此是一种与其他对象检测算法更具可比性的方法,而 RAM 版本则更可能与对象跟踪进行比较。我们设定 ODA 包含每款支持的游戏的 10,000 帧,见表 1。这些帧是使用基于 DQN 的模型以及随机模型提取的,以涵盖每款游戏中的大量可能状态。我们选择用随机代理生成数据集的 30% 的游戏,以及基于 DQN 代理生成数据集的 70% 的游戏。为了避免侵犯 Atari 游戏的知识产权,我们只提供了一个脚本以及生成此类数据集所需的所有参数。该脚本以 Atari 游戏名称作为参数,并为该环境生成数据集。生成 ODA 所需的所有信息以及用于生成 ODA 的模型都包含在 OCAtari 代码库中。
2.3 通过 RAM 改变创建新挑战
对于依赖环境归纳偏差的深度强化学习代理来说,游戏玩法中的微小变化可能会对其性能产生灾难性影响。这些代理还可能面临捷径学习(或错位)问题,从而导致策略不稳定。为了开发稳健的强化学习代理,需要具有不同任务的环境。我们在 OCAtari 中提供了一种在游戏进行时轻松操纵 RAM 值的方法。由于我们的代码展示了游戏如何处理特定位置的信息,科学家可以轻松地在现有的 Atari 游戏中创建新任务和情境。因此,OCAtari 提供了一种为现有算法创建新挑战的便捷方式,我们将在下一节中进行说明。
3 评估 OCAtari
在本节中,我们提供了 OCAtari 方法的检测和速度性能。对于检测,我们从 2 或 3 个不同代理的轨迹中收集帧。我们使用了一个随机代理(对应于任何未经训练的强化学习代理),以及一个 DQN 和(如果可用)一个 C51 代理(Bellemare 等,2017),这些代理均来自 Gogianu 等(2022。
在测试 OCAtari 提取方法的速度时,我们仅使用随机代理,以避免由于深度代理的采样而导致的速度瓶颈。
检测性能
我们首先通过从这些代理中采样帧并检查两种提取方法是否检测到每个对象,对 OCAtari 在每款游戏上进行定性评估。然后,我们进行定量评估。对于每款游戏,我们让每个代理运行,直到收集到 500 帧,大约每 80 帧采样一次。
为了评估检测性能,常用的指标是交并比(Intersection over Union, IOU)(Rezatofighi 等,2019)。然而,对于小对象(例如《Pong》、《Tennis》中的球,或《Atlantis》、《Space Invaders》中的导弹),这一指标并不适用,因为这些对象的尺寸小于 4 个像素。因此,我们还计算了每个游戏的每个对象类别的精确率(precision)、召回率(recall)和 F1 分数。对于这些指标,如果一个对象的中心位置在两种检测方法中相差不超过 5 个像素,则认为该对象被正确检测到。
在表 2 中,我们报告了这些指标,按对象类别平均计算。这些结果表明,OCAtari 覆盖的大多数游戏都具有较高的检测性能。详细的按对象类别划分的结果在附录 D 中提供。需要注意的是,闪烁的对象会导致精确率降低,正如 MsPacman 的结果所示(见图 3 中的幽灵)。《Pong》和《Tennis》中较低的 IOU 是由于球的位置和尺寸有时会略微变化,但这并不会影响游戏玩法。尽管这会影响我们框架的精确率,但 RAM 提取方法仍然可以跟踪这些对象,这对于使用轨迹片段(Agnew 和 Domingos,2020)或卡尔曼滤波器(Welch 等,1995)的方法是有帮助的。
我们还在图中提供了对象遮挡(被其他对象或背景遮挡)的例子。这也在图 2 中展示,其中一枚导弹被水果遮挡。此外,在许多游戏中,当玩家死亡或得分(例如在《Pong》或《Tennis》中)后,环境会冻结(游戏不考虑任何操作)。在这些情况下,有些对象在几帧内不会被渲染,但我们的 RAM 提取方法仍然将它们保留在对象列表中。虽然这会降低检测精度,但不会影响任何强化学习代理,因为这些帧中的环境是不可交互的。
使用 OCAtari 训练以对象为中心的强化学习代理
为了进一步验证 OCAtari 可以用于训练以对象为中心的强化学习代理,我们使用 RAM 提取方法进行了测试,并使用了 3 个种子化的近端策略优化(Proximal Policy Optimization, PPO)代理(Schulman 等,2017)。我们仅向这些代理提供对象的位置信息。具体来说,这些信息对应于最后两帧中检测到的每个对象的(x, y)位置。我们训练的模型已提供在代码库中。
如图 4(左)所示,仅使用位置信息且未进行微调的简单 PPO 代理能够进行学习(即提高分数)。因此,我们相信 OCAtari 环境可以用于训练以对象为中心的强化学习代理。
RAM 提取的优势
如前所述,在某些游戏中,对象可能会闪烁、被其他对象遮挡,或者变得不可见(即与背景颜色相同)。使用 RAM 方法可以让我们训练跟踪对象(类似于轨迹片段和卡尔曼滤波器)并学习一致的策略。这些信息仍然可以获取(例如,通过检查对象是否重叠),但我们选择不使用它。此外,在我们的一些游戏中,我们仍然需要处理 RAM 中的信息,这些信息会影响对象的外观,但不会改变游戏玩法。这在《Skiing》(滑雪)游戏中得到了体现,滑雪者可以向一个方向倾斜,这对应于一个略微变窄的角色形象。尽管可以从 OCAtari 提供的方向属性中恢复这些信息,但尚未明确设置。
RAM 提取方法最显著的优势在于节省时间,这使得以对象为中心的代理能够快速训练并节省能源。从 RAM 中提取的对象列表位置比视觉对象检测快达 50 倍(见图 4,右侧)。需要注意的是,我们没有找到一种方法来禁用 gymnasium 中 ALE 环境的渲染。为此,我们需要理解 ALE 的 C++ 代码,我们打算去做这件事。这将进一步提高 RAM 提取过程的速度,因为我们认为渲染是当前的速度瓶颈。
通过操纵 RAM 创建新环境
正如第 2.3 节中已经解释的那样,使用 OCAtari,不仅可以读取当前游戏状态的 RAM 状态,还可以对其进行修改。可以覆盖单个对象的属性,例如对象的位置。这可以用于训练对抗性策略,例如在《Pong》或《Tennis》中。另一个令人兴奋的机会是引入新游戏机制的可能性。我们在这里展示了一些改变游戏玩法的可能性。我们证明了我们可以为以对象为中心或基于像素的方法创造新的有趣挑战。让我们以广为人知的《Pong》为例,游戏中两名玩家试图将球击过对方的球拍。玩家只能上下移动球拍,游戏中没有其他动作,因此游戏相对容易学习。使用 OCAtari,我们以几种方式定制了《Pong》,创造了新的游戏机制。让我们首先介绍《Pong》的“强力击球”变体,如图 5(左)所示,玩家现在可以通过在合适的时机(即击球时)按下发射按钮来增加球的速度。对手也可以以一定的概率进行强力击球。这种修改也适用于其他游戏(例如《Tennis》)。游戏的另一种可能改编是“Flappy Pong”。在这种情况下,两名玩家的球拍会因重力而缓慢下落,玩家需要通过按下发射按钮(唯一可用的动作)将球拍向上移动。这与著名的《Flappy Bird》游戏具有类似的动态。通过操纵 RAM,也可以移除已知元素。在《Space Invaders》游戏中,我们制作了一个没有防护屏障的版本,如图 5(右)所示。这使得游戏更加难以掌握。这三个例子说明了在现有游戏中创造新挑战的许多可能性,这些挑战可以用来评估,例如,方法对新情况的反应能力(持续强化学习)。我们相信,以对象为中心的强化学习算法可以利用其分离的对象检测和策略搜索,比深度学习算法更快地适应新情况。我们相信,OCAtari 构建这些挑战的能力将有助于创造更稳健和通用的方法。
实验设置细节
为了测试我们的 OCAtari 环境,我们使用了 Gogianu 等(2022)预先训练的模型,这些模型包含在我们的 GitHub 代码库中。在我们的案例中,所有关于对象提取和数据集生成的实验都在一台配备 AMD Ryzen 7 处理器、64GB 内存且没有专用 GPU 的机器上运行。数据集生成脚本处理一款游戏大约需要 3 分钟。该框架使用 Python 编写,是 gymnasium 环境的包装。对于需要更多资源的强化学习实验,我们为每个环境使用了种子(0, 8, 16),并在 DGX A100(40GB)服务器上使用了 stable-baselines3(Raffin 等,2021)中的 PPO 实现。对于每个种子运行,每个种子使用 1 个评论家和 8 个演员,总共运行 20M 帧。同时训练所有种子的过程大约需要 40 分钟。超参数设置取自原始 PPO 论。由于这些实验不需要视觉表示学习,我们使用了 2×64 的 MLP 架构,激活函数为 tanh。这是 stable-baselines3 中 PPO 的默认 MLP 策略架构。没有进行进一步的微调或特定于环境的超参数搜索。更多细节在附录 A 中提供。: gymnasium 是一个强化学习环境库,用于开发和比较强化学习算法: PPO(近端策略优化)是一种常用的强化学习算法,用于训练智能体以最大化累积奖励。
4 相关工作
使用 Atari 游戏作为深度强化学习的测试平台有着悠久的历史。其中最为人熟知的是 Mnih 等(2015)的工作,他们引入了 DQN 并在 7 款不同的 Atari 2600 游戏上进行了测试。2017 年,Hessel 等(2018)引入了 Rainbow DQN 或 Rainbow,在 DQN 网络的基础上进行了多项改进并扩展了其性能。除了基于 DQN 的方法外,许多其他类型的代理也被应用于 Atari 框架。其中两个基于模型的替代方案是 Dreamer和 MuZero,它们已经在 Atari 游戏上成功进行了测试。
这些方法面临的共同挑战之一是探索问题,或者在某些特定游戏(如《Pitfall》或《Montezuma's Revenge》)中实现特定的智能探索方法。另一种解决方法是奖励塑形,例如 Badia 等(2020b)引入的 Never Give Up(NGU),该方法后来被改进为他们的代理 Agent57。Agent57 是第一个在 ALE 的 57 款游戏中均超过人类水平的代理。然而,它在所有游戏中并未达到与其他专门针对单一问题优化的代理相比的最佳性能,并且在被所有游戏的基准超越之前,Agent57 需要大量的数据(780 亿帧或相当于 52.7 年的游戏时间),这使得它在数据效率方面非常低效。尽管如此,在这项工作的当时,Agent57 在 paperswithcode 上的比较得分仍然是最高的。Ecoffet 等(2021)和 Badia 等(2020a)的代理都未能平衡探索和利用,导致巨大的成本和低效率。无模型方法也以稀疏奖励问题而闻名,而基于模型的方法(如 Hafner 等,2020;Schrittwieser 等,2020)可以缓解这些问题。我们相信,基于模型的以对象为中心的方法是未来强化学习算法发展的一个令人兴奋的方向。
许多前面提到的方法,特别是 Mnih 等(2015)和 Hessel 等(2018),都使用单向量状态表示,将整个输入图像编码为其深度神经网络的输入。处理样本效率低下或缺乏泛化能力等实际问题的一种方法是改用以对象为中心的状态表示。关于无监督以对象为中心的表示(OCR)的最新工作,如 Eslami 等(2016)、Kosiorek 等(2018)、Jiang 和 Luo(2019)、Greff 等(2019)、Engelcke 等(2020)、Lin 等(2020b)、Locatello 等(2020)、Kipf 等(2022)、Elsayed 等(2022)和 Singh 等(2022a,b),都显示出有希望的结果。然而,到目前为止,只有少数关于 OCR 的方法,如 Anand 等(2019)(他们还引入了 AtariARI)、Li 等(2017)和 Lin 等(2020b),已经在 Atari 游戏上进行了测试。
5 讨论
我们强调,本工作的主要目标是创建一个用于以对象为中心的学习的环境。因此,我们将实验评估的重点放在 OCAtari 对象检测能力的准确性上,并仅略微探索了可能的应用(即训练一个简单的以对象为中心的强化学习代理以及创建提供新挑战的修改后环境)。第 3 节的结果表明,使用 RAM 状态来提取信息是一种有效的方法,可以为现有的(例如深度)代理设计新的挑战。OCAtari 还可以用于训练对象跟踪方法,并可用于训练新的以对象为中心的强化学习方法。此外,我们在代码库中提供了许多脚本,这些脚本可以帮助在 RAM 表示中定位信息,或通过寻找类似的关联来分析这些信息。我们没有提供每款游戏的 RAM 表示中包含的信息的完整列表,而是以对象列表的形式提供了一个信息瓶颈。
尽管使用 ALE 进行性能评估是强化学习领域中最被认可的基准之一,但这些评估并非没有缺陷,正如 Agarwal 等(2021)所解释的那样。分数并不能线性反映代理的学习能力,并且通常具有高方差的噪声。这些游戏是为人类玩家设计的,因此提供了许多捷径学习的可能性。正如 Stooke 等(2021)所提议的那样,直接评估表示而不通过端到端性能来评估它们,可能有助于理解并衡量所学到的内部表示的质量,并最小化训练中的其他影响。OCAtari 提供的以对象为中心的特性还允许向算法提供额外信息,例如在《Pong》中基于球与玩家球拍之间的距离提供额外的奖励信号,或者增加其他性能指标(例如在《Kangaroo》中玩家达到的高度)。这可能是使用 OCAtari 来塑造奖励的一个有趣的想法。
社会和环境影响
通过这项工作,我们提供了一组强化学习环境。我们意识到 OCAtari 可能被用于训练对象跟踪算法,如果被误用,可能会产生潜在的负面影响。然而,我们相信 OCAtari 最大的影响是帮助开发以对象为中心的强化学习方法,这些方法更加透明,从而有助于理解强化学习代理决策背后的推理过程。这可以帮助科学家发现我们学习算法中已经存在的潜在歧视,这些歧视可能会对社会产生负面影响。我们的框架中没有包含任何个人或冒犯性内容,也没有发现此类内容。
限制
在我们的工作中,我们强调了以对象为中心的一些优势,并创建了 OCAtari 框架,成功地从多种 Atari 游戏中提取了对象。然而,我们能够提取的信息量是有限的。在大多数游戏中,存在硬编码的静态元素。例如,《Pong》中球拍的 x 位置或《MsPacman》中的迷宫,这些信息通常不会出现在 RAM 表示中,因为它们被硬编码在游戏程序中。因此,我们无法提取这些信息,或者只能部分提取。然而,由于这些信息是静态的,它们可以被学习,但《MsPacman》中显示的迷宫有助于理解 Pacman 不能穿过它。这里一个有趣的考虑是,是否可以结合我们的两种模式——以对象为中心和视觉——来提取不仅对象,还有背景中的重要信息。
6 结论
以对象及其关系来表示场景是人类的一项关键能力,它允许人们在推理时专注于本质。尽管以对象为中心的强化学习和无监督检测算法越来越成功,但我们缺乏用于评估和比较这些方法的基准和数据集。OCAtari 填补了这一空白,提供了一个易于使用的多样化环境集合,用于在许多 Atari 游戏上测试以对象为中心的学习。总体而言,我们希望我们的工作能够激发其他研究人员研究以对象为中心的方法,以便未来人类能够与更具可解释性的算法进行交互。OCAtari 还将允许科学家在现有的 Atari 游戏中创造新的挑战,这些挑战适用于以对象为中心的、深度的或混合的方法。
A 实验细节
我们在此介绍了用于掌握这些游戏的 PPO(近端策略优化)代理(Schulman 等,2017)所使用的超参数。针对 Atari 环境的超参数值来源于原始的 PPO 论文。系数 c1 和 c2 的定义也是如此。所使用的 PPO 实现以及相应的 MLP(多层感知机)超参数基于 stable-baselines3(Raffin 等,2021)。在 gymnasium 中使用的 Atari 环境版本是 v5。该版本定义了每执行一次动作时确定性地跳过 5 帧,并将重复上一次动作的概率设置为 0.25。这与 Machado 等(2018)推荐的最佳实践一致。表 3 提供了所有其他使用的超参数列表。学习率 α 在训练过程中线性从 0 递增到 1。
B 重现我们的结果
为了重现我们的结果,我们提供了以确定性方式运行实验的选项。为此,可以在相应的脚本中指定一个种子(seed)。在我们的实验中,我们使用了种子 0 和 42。所有支持的游戏可以在表 1 中找到。由于我们不断扩展环境,您也可以在我们的代码库的 README 文件中找到所有支持的游戏。要测试某个游戏是否支持,您可以使用脚本 “test_game” 或 “test_game_both”,具体取决于您是想测试 OCAtari 的一种模式还是两种模式。表 2 和第 D 节中的所有表格都是通过脚本 “get_metrics” 生成的。为了重现并测量评估所需的时间(见图 4),使用了脚本 “test_speed”。对于更多信息,我们建议查看 OCAtari 的文档:https://oc-atari.readthedocs.io/en/latest/。
C 生成数据集
使用 OCAtari,可以为所有支持的游戏创建以对象为中心的数据集。数据集主要由一个 CSV 文件组成。除了基于游戏编号和状态编号的顺序索引外,该文件还包含相应的图像作为像素列表,称为 OBS。图像还以 PNG 文件的形式单独存储。此外,CSV 文件包含从 RAM 中提取的所有 HUD 元素的列表,称为 HUD,以及从 RAM 中读取的所有对象的列表,称为 RAM。最后,我们提供了一个列表,包含使用视觉模式生成的所有元素,称为 VIS。表 4 提供了一个示例。
通过设置种子,数据集的生成也可以实现可重现性。在我们的测试中,我们使用了种子 0 和 42。更多信息请访问:https://github.com/k4ntz/OC_Atari/tree/master/dataset_generation。
D 每款游戏按对象类别的详细结果
在本节中,我们提供了每款被覆盖的游戏的描述(来源于 https://gymnasium.farama.org/environments/atari/),并附有示例帧。如需更详细的文档,请参阅相应游戏在 AtariAge 上的手册页面。我们还分享了 OCAtari 在每款游戏中检测到的每个对象类别的对象检测能力的详细统计数据。
D.1袭击细节
你控制的是一辆能够横向移动的车辆。一艘大型母舰在头顶盘旋,并持续部署更小的无人机。你必须摧毁这些敌人并躲避它们的攻击。
D.2 《Asterix》游戏细节
你扮演的是 Asterix,可以水平(连续)和垂直(离散)移动。物体在屏幕上水平移动,包括竖琴和其他(更有用的)物体。你的目标是引导 Asterix 规避竖琴并尽可能多地收集其他物体。通过收集物体来得分,而每收集到一个竖琴就会失去一条生命。游戏开始时,你有三条生命。如果你得分足够高,你将获得额外的奖励分数。
D.3 《Atlantis》游戏细节
你的任务是保卫沉没的城市亚特兰蒂斯。你的敌人会缓慢地向城市靠近,你必须在它们到达攻击距离之前摧毁它们。为此,你控制三个防御炮台。如果你的敌人成功摧毁了亚特兰蒂斯的所有七个设施,你就会失败。在击退一波敌人并获得足够分数后,你可以重建这些设施。
D.4 《Berzerk》游戏细节
你被困在一个迷宫中,里面充满了邪恶的机器人。你必须摧毁它们,并避免触碰迷宫的墙壁,因为这会让你丧命。根据游戏模式,如果你获得了足够多的分数,你可能会获得额外的生命。你可能还会被一个无法战胜的敌人——邪恶的 Otto 追赶,你必须躲避它。在默认模式下,邪恶的 Otto 不会出现。
D.5 《Bowling》游戏细节
你的目标是在保龄球游戏中尽可能多地得分。一局游戏由 10 个回合组成,每个回合你有两次机会。如果在第一次投球中击倒所有球瓶,称为“全中”(Strike)。如果在第二次投球中击倒所有球瓶,称为“补中”(Spare)。除此之外的情况,称为“开放局”(Open Frame)。
D.6 《Boxing》游戏细节
你在拳击擂台上与一个对手进行比赛。通过击中对手来得分。如果你获得 100 分,你的对手将被击倒。
D.7 《Breakout》游戏细节
这是另一款著名的 Atari 游戏。游戏的动态与《Pong》类似:你控制一个球拍,将球击向屏幕顶部的砖墙。你的目标是摧毁砖墙。你可以尝试击穿墙壁,让球在另一侧自由地造成破坏!你有五条生命。
D.8 《Carnival》游戏细节
这是一款“射击类”游戏。目标在屏幕上水平移动,你需要射击它们。你控制的是一把可以水平移动的枪。弹药是有限的,如果不能及时击中,鸡可能会偷走一些子弹。
D.9 《Centipede》游戏细节
你扮演的是一位精灵,必须使用你的魔法魔杖来抵御蜘蛛、跳蚤和蜈蚣。你的目标是在一片魔法森林中保护蘑菇。如果你被蜘蛛、跳蚤或蜈蚣咬到,你会暂时瘫痪,并且会失去一根魔法魔杖。一旦你失去了所有的魔杖,游戏就会结束。如果你获得了足够多的分数,你可能会获得额外的魔杖。
D.10 《Fishing Derby》游戏细节
你的目标是比对手捕获更多的太阳鱼。
D.11 《Freeway》游戏细节
你的目标是引导你的鸡穿过繁忙的高峰时段交通,穿过一条又一条车道。每只成功穿过所有车道并到达屏幕顶部的鸡,你将获得一分。
在《Frostbite》(冰河时代)中,玩家控制的角色是“Frostbite Bailey”,它在一条北极河流上来回跳跃,将冰块的颜色从白色变为蓝色。每次他这样做的时候,他的冰屋就会增加一个冰块。
D.13 《Kangaroo》游戏细节
游戏的目标是在控制母袋鼠拯救她珍贵的宝宝的过程中尽可能多地得分。游戏开始时,你有三条生命。在这次救援任务中,母袋鼠会遇到许多障碍。你需要帮助她爬梯子,捡取奖励水果,并向猴子出拳。
D.14 《Montezuma's Revenge》游戏细节
你的目标是通过穿越皇帝堡垒内的迷宫般的房间来获取蒙特祖马的宝藏。你需要避开致命的生物,同时收集有价值的物品和工具,这些工具可以帮助你带着宝藏逃脱。
D.15 《Ms. Pac-Man》游戏细节
你的目标是在避开幽灵的同时,收集屏幕上所有的豆子。
D.16 《Pong》游戏细节
你控制右侧的球拍,与电脑控制的左侧球拍进行对抗。你们各自都试图将球从自己的球门挡开,并将其打入对手的球门。
D.17 《Q*bert》游戏细节
你是 Q*bert。你的目标是将金字塔上所有方块的颜色变为金字塔的“目标”颜色。为此,你需要逐个跳上金字塔上的每个方块,同时避开潜伏在那里的讨厌生物。
D.18 《River Raid》游戏细节
你控制一架在河流上空飞行的喷气式飞机:你可以横向移动它,并发射导弹摧毁敌方物体。每次摧毁一个敌方物体,你都会获得分数(即奖励)。当你燃油耗尽时,你会失去一架飞机:当你开始燃油不足时,飞越一个燃料库。即使飞机与河岸或敌方物体(燃料库除外)相撞,你也会失去一架飞机。游戏开始时,备用机库中有三架喷气式飞机,每获得 10,000 分,你就会额外获得一架飞机(最多 9 架)。
D.19 《Seaquest》游戏细节
你控制一艘能够在各个方向移动并发射鱼雷的潜水艇。目标是尽可能多地救回潜水员,同时躲避和击毁敌方潜水艇和致命的鲨鱼;相应地会给予分数奖励。游戏开始时,你有一艘潜水艇,还有三艘在地平线上待命。每当你增加 10,000 分时,就会有一艘额外的潜水艇被送到你的基地。你一次最多只能在屏幕上拥有六艘备用潜水艇。如果你的潜水艇与除了你自己的潜水员以外的任何东西相撞,它就会爆炸。潜水艇的氧气是有限的,在游戏中以恒定速率减少。当氧气罐快要用完时,你需要浮出水面,如果你不及时浮出水面,你的潜水艇会爆炸,你就会失去一名潜水员。每次你被迫浮出水面时,如果你的潜水员少于六名,你也会失去一名潜水员。
D.20 《Skiing》游戏细节
你控制一名可以横向移动的滑雪者。目标是以最快的速度通过所有旗门(在旗杆之间)。每错过一个旗门,你会被罚五秒。如果你撞到旗门或树,你的滑雪者会跳起来并继续前进。
D.21 《Space Invaders》游戏细节
你的目标是在外星入侵者到达地球之前,用你的激光炮摧毁它们。当你的所有生命值因敌人的攻击而耗尽,或者外星入侵者到达地球时,游戏结束。
D.22 《Tennis》游戏细节
你控制橙色玩家,与电脑控制的蓝色玩家进行比赛。游戏遵循网球的规则。首先赢得至少 6 局且领先至少 2 局的玩家赢得比赛。如果比分为 6-6 平,那么首先领先 2 局的玩家赢得比赛。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.