five

Sliding Puzzles Gym (SPGym)

收藏
arXiv2024-10-18 更新2024-10-22 收录
下载链接:
https://github.com/bryanoliveira/sliding-puzzles-gym
下载链接
链接失效反馈
官方服务:
资源简介:
Sliding Puzzles Gym (SPGym) 是一个用于视觉强化学习中状态表示学习的可扩展基准数据集。该数据集扩展了经典的15-tile拼图,支持可变网格大小和观察空间,包括大型真实世界图像数据集。SPGym通过保持潜在环境动态和算法问题固定,同时增加表示学习的复杂性,提供了一个针对性的评估平台。数据集的创建过程包括生成随机初始状态和应用随机有效移动来生成初始状态。SPGym主要应用于评估强化学习代理在复杂和多样化视觉输入下的表示学习能力,旨在解决在开放世界环境中代理如何从原始感官输入中提取有意义信息的问题。

Sliding Puzzles Gym (SPGym) is a scalable benchmark dataset for state representation learning in visual reinforcement learning. This dataset extends the classic 15-tile puzzle, supports variable grid sizes and observation spaces, and includes large-scale real-world image datasets. SPGym provides a targeted evaluation platform by fixing the underlying environment dynamics and algorithmic problems while increasing the complexity of representation learning. The dataset creation process involves generating random initial states and applying random valid moves to produce state sequences for the dataset. SPGym is primarily used to evaluate the representation learning capabilities of reinforcement learning agents under complex and diverse visual inputs, aiming to solve the problem of how agents extract meaningful information from raw sensory inputs in open-world environments.
提供机构:
联邦大学戈亚斯分校
创建时间:
2024-10-18
原始信息汇总

Sliding Puzzles Gym Environment

简介

Sliding Puzzles Gym (SPGym) 是一个可定制的 Gymnasium 兼容环境,用于训练和评估强化学习算法在滑动拼图任务上的表现。该环境支持多种拼图尺寸、基于图像的拼图和不同的渲染模式,允许对算法在不同复杂度和输入模式下的性能进行全面分析。

主要功能

  1. 比较不同强化学习算法在学习有用状态表示方面的有效性。
  2. 分析代理在拼图观察空间中的泛化能力。
  3. 研究不同环境参数和算法变化对表示学习性能的影响。

安装

通过以下命令安装 SPGym: bash pip install sliding-puzzles

或者克隆仓库并安装为可编辑包: bash git clone https://github.com/bryanoliveira/sliding-puzzles-gym cd sliding-puzzles-gym pip install -e .

使用

在项目中使用 SPGym 的步骤如下:

  1. 导入环境: python import sliding_puzzles

基于图像的拼图

env = sliding_puzzles.make(w=3, variation="image", image_folder="imagenet-1k", image_pool_size=2, render_mode="human")

基于数字的拼图

env = sliding_puzzles.make(w=3, variation="onehot", render_mode="state")

或者使用 Gymnasium 创建环境

import gymnasium import sliding_puzzles env = gymnasium.make("SlidingPuzzles-v0", w=3, variation="image", image_folder="imagenet-1k", image_pool_size=2, render_mode="human")

  1. 与环境交互: python obs = env.reset() done = False

while not done: action = env.action_space.sample() # 替换为代理的动作 obs, reward, terminated, truncated, info = env.step(action) env.render()

env.close()

环境详情

  • 观察空间:包括原始(2D 状态数组)、onehot(1D 状态数组)和图像(拼图上的图像叠加)。
  • 动作空间:离散,有四个可能的动作:0(上)、1(下)、2(左)、3(右)。其他整数被视为无操作。
  • 奖励函数:默认奖励是所有拼图块到目标位置的负归一化距离(浮点数,介于 -1 和 0 之间)。默认情况下,解决拼图的奖励为 +10。
  • 回合终止:当拼图解决(终止)或达到最大步数(截断)时,回合结束。

环境参数

Sliding Puzzle 环境可以通过以下参数进行自定义:

参数 类型 默认值 描述
w Optional[int] None 拼图网格的宽度。如果未指定,则设置为与 h 相同的值。
h Optional[int] None 拼图网格的高度。如果未指定,则设置为与 w 相同的值。
render_mode str "state" 确定环境的渲染方式。选项:"state", "human", "rgb_array"。
render_size tuple (32, 32) 渲染图像的大小(宽度 x 高度)。
sparse_rewards bool False 如果为 True,提供稀疏奖励;否则,提供密集奖励。
win_reward float 10 拼图解决时的奖励。
move_reward float -0.1 每次移动的奖励(应为非正值)。
invalid_move_reward Optional[float] -1 无效移动的奖励。如果为 None,则无效移动不受到惩罚。
circular_actions bool False 如果为 True,允许在网格边缘环绕。
blank_value int -1 用于表示空白拼图块的值(必须为非正值)。
reward_mode str "distances" 确定奖励的计算方式。选项:"distances", "percent_solved"。
shuffle_mode str "fast" 用于打乱拼图的方法。选项:"fast", "serial"。
shuffle_steps int 100 打乱拼图时使用的步数(仅适用于 "serial" 打乱模式)。
shuffle_target_reward Optional[float] None 打乱期间达到的目标奖励(如果指定,必须为负值)。
shuffle_render bool False 如果为 True,在打乱期间渲染环境。
max_episode_steps Optional[int] 1000 每个回合的最大步数。如果为 None,则没有限制。
seed Optional[int] None 随机数生成器的种子。如果为 None,则生成随机种子。

图像变化参数

图像变化的 Sliding Puzzle 环境接受以下附加参数:

参数 类型 默认值 描述
image_folder str "single" 包含用于拼图的图像的文件夹。
image_pool_size Optional[int] None 从文件夹中使用的图像数量。如果为 None,则使用文件夹中的所有图像。
image_pool_seed Optional[int] None 从池中随机选择图像的种子。如果为 None,则使用随机种子。
image_size tuple (84, 84) 渲染图像的大小(宽度 x 高度)。
background_color_rgb tuple (0, 0, 0) 背景的 RGB 颜色(默认黑色)。
搜集汇总
数据集介绍
main_image_url
构建方式
Sliding Puzzles Gym (SPGym) 数据集的构建基于经典的15-tile拼图,通过引入可变的网格尺寸和观察空间,包括大型真实世界图像数据集,扩展了其复杂性。SPGym保持了潜在环境动态和算法问题的固定,通过逐步增加视觉观察的复杂性来评估代理的表示学习能力。数据集的内部表示是一个2D数组,表示当前的网格状态,并提供了将这些状态转换为代理友好观察的包装器,如one-hot编码或图像叠加。此外,SPGym还提供了两种生成拼图初始状态的方法,确保拼图的可解性。
特点
SPGym数据集的主要特点在于其可扩展性和灵活性。它通过保持网格尺寸固定而扩展图像池的大小,或者通过调整网格尺寸来增加表示学习的复杂性,从而保持了环境动态和任务结构的恒定。这种设计使得SPGym能够有效地评估代理在处理日益复杂的视觉输入时的表示学习能力。此外,SPGym支持多种观察模态,包括图像、文本等,增强了其在不同应用场景中的适用性。
使用方法
使用SPGym数据集时,研究者可以评估模型自由和模型基础强化学习代理在不同复杂度下的表现。通过调整图像池的大小或网格尺寸,可以逐步增加表示学习的挑战。实验中,研究者可以选择从ImageNet-1k数据集的验证部分中选择图像,以模拟开放世界条件。此外,SPGym提供了灵活的包装器,可以将内部状态转换为不同的模态,如one-hot编码或图像叠加,便于研究者探索强化学习代理如何处理多样化的观察空间。
背景与挑战
背景概述
滑动拼图健身房(Sliding Puzzles Gym, SPGym)是由联邦大学戈亚斯分校(Federal University of Goiás)和牛津大学(University of Oxford)的研究团队于2024年推出的一个可扩展的强化学习基准。该数据集的核心研究问题是如何在视觉强化学习中有效分离状态表示学习与策略优化,从而评估代理在复杂开放环境中形成可组合和可泛化状态表示的能力。SPGym通过扩展经典的15拼图,引入可变网格大小和观察空间,包括大型真实世界图像数据集,保持潜在环境动态和算法问题固定,从而提供了对代理状态表示学习能力的针对性评估。该数据集的推出对强化学习领域具有重要影响,特别是对于视觉表示学习和决策研究。
当前挑战
SPGym数据集面临的挑战主要集中在两个方面:一是解决领域问题的挑战,即如何有效分离状态表示学习与策略优化,这在大多数强化学习基准中是一个难题;二是构建过程中的挑战,包括如何设计一个可扩展的基准,使其能够在不改变任务结构的情况下逐步增加表示复杂性。此外,SPGym还需要应对高维视觉数据的处理和特征提取,以及在复杂和多样化的观察空间中实现泛化能力的提升。这些挑战不仅考验现有算法的性能,也为未来研究提供了重要的方向和机会。
常用场景
经典使用场景
在视觉强化学习领域,Sliding Puzzles Gym (SPGym) 数据集被广泛用于评估和提升代理在处理高维视觉输入时的状态表示能力。通过扩展经典的15-tile拼图,SPGym引入了可变网格大小和多样化的观察空间,包括大型真实世界图像数据集。这使得研究者能够在保持潜在环境动态和算法问题不变的情况下,逐步增加表示学习的复杂性,从而有效评估代理形成组合性和可泛化状态表示的能力。
解决学术问题
SPGym数据集解决了在强化学习基准中难以将表示学习与其他学习任务(如策略优化或动态建模)分离的关键问题。通过提供一个控制环境,其中难度仅来自于视觉观察的复杂性,而非任务动态或目标的变化,SPGym使得研究者能够专注于评估代理的视觉表示学习能力。这不仅有助于揭示当前强化学习方法在处理复杂和多样化视觉输入时的局限性,还为推动表示学习在决策研究中的进步提供了重要工具。
衍生相关工作
基于SPGym数据集,研究者们开发了一系列相关工作,进一步推动了视觉强化学习领域的发展。例如,一些研究通过在SPGym中引入预训练编码器来提升代理的表示学习能力,而另一些研究则探索了不同数据模态(如文本)对代理处理多样化输入的影响。此外,SPGym还激发了对课程学习和分布外泛化的研究,这些研究旨在通过逐步增加任务难度来提升代理的学习和泛化能力。这些衍生工作不仅丰富了SPGym的应用场景,也为未来的研究提供了新的方向。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作