打开网易新闻 查看更多图片

新智元报道

来源:Facebook

编辑:LRS

【新智元导读】你是不是经常感觉目前的强化学习游戏都太过简单,没有挑战性?Facebook最近发布了一个超好用的强化学习沙盒MiniHack,不仅高度可定制化,还内置了一个超难的游戏NetHack,快来挑战吧!

强化学习(Reinforcement learning, RL)能够帮助人类进行有效地决策,研究成果也遍布游戏、机器人等各个领域。

强化学习的研究进展通常是由模拟基准推动的,研究人员通过在各种各样的模拟器基准上训练模型,并且一些基准已经被完全刷榜,例如Arcade Learning Environment和MuJoCo已经到了很难再优化的程度。

一些新的基准测试环境,如ProcGen、Minecraft和NetHack能够帮助RL研究人员构建更强大的新算法,但这些新环境过于复杂和丰富的功能导致在算法开发过程中,很难弄清算法究竟测试了哪些问题。

这些测试平台一般由一个完整的游戏组成,并没有明确设计用于强化学习的特定功能,例如RL 算法中常用的探索(exploration)、记忆(memory)和分数(credit assignment)都没有提供接口。

为了解决这个问题,Faccebook提出了一个环境构建框架MiniHack,使用此工具,开发人员可以轻松针对RL中的特定问题创建高级强化学习的任务。

目前MiniHack是开源的,并且论文已经发表在NeurIPS 2021。

框架中还附带了一套基于NetHack的任务,NetHack是世界上最难的游戏之一。它是发布于1987年一款Rougelike游戏,继承自Hack(1985年)及更早的Rogue(1980年),玩家需要选择自己所扮演的角色并指定性别、种族、职业和阵营,或者选择让系统随机产生一个角色。游戏者可以扮演经典奇幻角色,比如骑士,野蛮人,巫师,游侠,神官, 僧侣和武士,也可以选择一些比较少见的角色,诸如考古学家、游客和洞穴人。玩家的角色和阵营决定了其在游戏中需要侍奉的神灵。

打开网易新闻 查看更多图片

通关流程中玩家需要在地下城的最底层取得Yendor的项链并将其供奉给自己的神灵。如果完成整个游戏,玩家将会获得不朽作为礼物,并成为半神。此外,一系列的支线任务也必须完成,其中包括各职业所特有的任务。游戏开始的时候,玩家通常会有一只宠物伴随,一般是小猫或者小狗,但是骑士会有一只马驹以及一副马鞍。游戏中大部分的怪物都可以用魔法、喂食、许愿、下蛋、陷阱等方式转化为宠物。

MiniHack使用NetHack学习环境(NLE)为开发人员提供接口,可以轻松利用游戏的丰富性来完成复杂的强化学习任务。这个新的沙盒MiniHack附带了大量游戏中已有的资源,有多达500多个怪物和450件物品,包括武器、魔杖、工具和咒语书,所有这些都具有独特的特征和复杂的动态环境。

这个框架允许RL 开发者不仅在简单的网格世界风格中进行路线规划,还需要在有限的行动空间内完成更复杂的技能获取问题。

为了方便开发,MiniHack利用了NetHack中地下城的描述文件。描述文件使用人类可读的概率编程(如领域特定语言DSL)编写,只需几行代码开发人员就可以生成各种各样的环境,并控制每一处细节,从怪物的位置、类型到关卡、物体和地形,同时引入随机性来增强RL agent的泛化能力。

DSL可以对环境的某些部分进行细化,并使用随机生成函数,这也意味着每次重置环境并且agent开始新的事件时,agent 的等级可能会有明显差别。这种程序性内容生成允许MiniHack评估RL对以前未看到的情况的泛化能力,从而能够训练本质上更健壮和通用的代理。对于没有时间学习描述文件细节的研究人员,MiniHack 还提供了一个方便的接口,用Python来描述整个环境。

MiniHack环境使用Gym接口,并且一切都是高度可定制的。用户可以轻松地选择agent接收的观测类型,例如基于像素的、符号的或文本的,以及它可以执行的操作。此外,MiniHack还提供了一个方便的接口来指定所需的自定义奖励功能,以指导agent 的学习。

Facebook 还使用MiniHack构建了一套RL任务,用于测试RL agent的核心功能,并将其作为MiniHack的一部分共同发布。这套任务可以像任何其他RL基准一样使用。此外,这些任务还可以作为开发新任务的基础代码。

打开网易新闻 查看更多图片

MiniHack还支持移植现有的基于网格的基准测试,开源代码中展示了如何将之前的测试平台(如MiniGrid和Boxoban)移植到MiniHack上。由于MiniHack的灵活性和丰富性,可以通过添加额外的实体、环境功能和随机性来增加挑战性。

创造丰富复杂的环境来研究深度RL中的特定研究问题从来都不是一件容易的事。

MiniHack的目标是在分离中测试AI代理的特定功能,包括探索、记忆和语言辅助RL。该框架可用于FAIR 和NeurIPS 2021 联合举办的 NetHack挑战赛。

为了更快上手MiniHack,开发者提供了使用TorchBeast和RLlib等框架的各种baseline代码。

MiniHack还支持无监督环境设计(UED)研究,通过动态调整任务MDP的自由参数,在训练期间学习自适应任务分配。MiniHack允许覆盖环境的描述文件,从而可以根据UED的要求轻松调整MDP配置。

为了测试MiniHack中的UED,开发者实现了最近提出的PAIRED 算法,该算法通过最大化regret 来训练环境对抗,从而生成环境,以便最终能训练一个鲁棒性更强的主角代理。

研究人员还使用不同的神经结构进行额外的实验来比较IMPALA 基线模型的性能,并展示了在选定的MiniHack 任务上使用三种不同体量模型架构(小型、中型和大型)的结果,这三种架构在卷积层的数量、隐藏MLP层的大小以及embedding维度上有所不同。

中、大型agent 模型的性能在所有五个任务上都是相差不大。有趣的是,小型模型在Room-Ultimate-15和CorridorBattle环境中的性能较差,但实际上在Corridor-3任务中的性能却优于大型模型。

由于环境的复杂性,小型模型的在深度和宽度方面的性能可能都优于大型模型,如果用老的框架则无法很好地进行分析。MiniHack提供了一个更可控的环境来研究这一现象,并且它提供了丰富的环境定制能力。

参考资料:

https://ai.facebook.com/blog/minihack-a-new-sandbox-for-open-ended-reinforcement-learning/

打开网易新闻 查看更多图片