MiniHack:为强化学习研究提供丰富而复杂的环境

 人工智能咨询培训老师叶梓 转载标明出处

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。

1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其最大潜力。

CSDN教学平台录播地址:https://edu.csdn.net/course/detail/39987

现有的基准测试环境大多并非专门为评估特定的强化学习方法而设计,难以满足研究人员对特定问题的深入研究需求。例如,一些环境虽然能够测试强化学习中的特定问题(如探索、迁移学习、无监督环境设计等),但很难扩展到更复杂、更丰富的环境中。为了解决这一问题,Facebook AI Research、伦敦大学学院和牛津大学的研究人员联合提出了一种名为MiniHack的框架,旨在为强化学习研究提供一个易于扩展且功能强大的实验平台。

MiniHack框架的核心在于其利用NetHack游戏的丰富资源和复杂环境动态,通过描述文件(des-file)格式和领域特定语言(DSL)快速设计多样化的强化学习测试环境。这种设计方式使得研究人员能够通过人类可读的描述语言或简单的Python接口来创建环境,极大地提高了环境设计的灵活性和效率。图1展示了使用des文件格式程序生成的环境示例,包括MAZEWALK命令生成的迷宫、RANDOM_CORRIDOR命令生成的走廊以及通过代码片段生成的环境实例。

描述文件(des-file)格式是NetHack中用于定义游戏关卡的领域特定语言,支持变量、循环、条件语句和概率分布,能够生成多样化的网格布局和环境特征。例如,图2展示了一个des-file代码片段,通过简单的命令生成了一个10x10网格的多样化环境实例。其中,$river变量用于随机选择地形特征(如水、岩浆或冰),LOOP块用于生成随机怪物和地形,REPLACE_TERRAIN命令则将部分地板替换为树木。这种描述方式使得环境设计既灵活又高效。

图3展示了一个固定布局的NetHack关卡描述文件,其中., +, 和S字符分别表示地板、关闭的门和秘密门,而|-表示墙壁。通过循环块和条件语句,可以轻松添加随机元素,如随机放置的物品、陷阱和怪物。

MiniHack支持多种观察形式,包括符号、像素级和文本描述。例如,图4展示了不同形式的中心化观察,包括符号、像素和文本描述。这种多模态观察方式为强化学习算法提供了丰富的输入信息,使得算法能够更好地理解和适应环境。

此外,MiniHack还提供了灵活的动作空间。NetHack的动作空间较大且结构复杂,研究人员可以根据任务需求限制或扩展动作空间,以促进特定技能的发现。例如,在导航任务中,动作空间主要集中在移动命令上,而在技能获取任务中,则需要更复杂的动作,如管理物品、施法等。

MiniHack提供了一个方便的奖励管理器,允许研究人员轻松定义多个事件的奖励,并控制哪些事件组合足以终止一集(episode)。例如,在图5的代码片段中,通过RewardManager定义了任务目标,如吃苹果或使用特定物品。这种灵活的奖励机制使得环境设计更加多样化,能够满足不同研究需求。

为了验证MiniHack框架的有效性和挑战性,研究人员在一系列导航任务、技能获取任务以及移植自MiniGrid和Boxoban的任务上进行了实验。实验结果表明,尽管基线方法能够在简单任务上取得较好的表现,但随着环境复杂性的增加,基线方法的性能逐渐下降,甚至无法取得任何奖励。

例如,在图7中展示了MiniHack导航任务的实验结果。简单任务(如Room-5x5)能够被基线方法快速解决,但随着任务复杂性的增加(如Room-Ultimate-15x15和River-MonsterLava),基线方法逐渐失效。这表明MiniHack能够有效地评估强化学习算法在复杂环境中的表现,并为未来的研究提供了具有挑战性的测试平台。

在技能获取任务中,图8展示了不同任务的实验结果。简单任务(如Eat和Pray)能够被基线方法解决,但更复杂的任务(如WoD-Medium和LavaCross)则需要更深入的探索和更复杂的策略。这进一步证明了MiniHack在测试强化学习算法的泛化能力和探索能力方面的强大功能。

MiniHack还支持无监督环境设计(UED)研究,通过动态调整任务的MDP配置来训练适应性强的代理。例如,图10展示了PAIRED算法的实验结果,通过训练环境对手来生成具有挑战性的任务,从而提高代理的泛化能力。结果显示,通过UED训练的代理在未见过的复杂环境中表现出了更好的零样本迁移能力。

MiniHack框架的代码和相关资源已经开源,感兴趣的读者可以通过以下链接访问项目页面:

​​​​​​​https://github.com/facebookresearch/minihack

论文链接:

https://arxiv.org/pdf/2109.13202

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8562.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SET alter system reload

目录标题 alter system 只是 写 auto 文件SET & alter system1. **会话级别参数(Session-level parameters)**2. **系统级别参数(System-level parameters)**3. **某些特定的超级用户参数**4. **修改时生效的参数**总结&#…

苏州东菱振动试验仪器有限公司:振动试验设备行业的领军企业与发展历程

本文地址:http://www.aiqimao.com/zhidao/detail?id37943 苏州东菱振动试验仪器有限公司在振动试验仪器行业享有较高的知名度。公司致力于向众多行业供应优质振动试验设备,并提供专业服务。经过多年努力,该公司在市场上取得了显著成绩。以下…

使用EVE-NG-锐捷实现OSPF

一、OSPF基础知识 Open shortest Path First(OSPF)开放式最短路径优先协议 1.OSPF的关系状态 (1)邻居关系(TWO-WAY) 只发送hello包不发送LSA包(链路状态通告包) (2)邻接关系(FULL) OSPF设备与设备之间相互建立OSPF关系,初始为邻居关系(TWO-WAY)状态&#xff0…

C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…

戴尔电脑设置u盘启动_戴尔电脑设置u盘启动多种方法

最近有很多网友问,戴尔台式机怎么设置u盘启动,特别是近两年的戴尔台式机比较复杂,有些网友不知道怎么设置,其实设置u盘启动有两种方法,下面小编教大家戴尔电脑设置u盘启动方法。 戴尔电脑设置u盘启动方法一、戴尔进入b…

【搜索回溯算法】:BFS的魔力--如何使用广度优先搜索找到最短路径

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:搜索回溯算法篇–CSDN博客 文章目录 一.广度优先搜索(BFS)解决最短路…

Dest1ny漏洞库:用友 U8-CRM 系统 ajaxgetborrowdata.php 存在 SQL 注入漏洞

用友U8-CRM系统ajaxgetborrowdata.php存在SQL注入漏洞,文件多个方法存在SQL注入漏洞,未经身份验证的攻击者通过漏洞执行任意SQL语句,调用xp_cmdshell写入后门文件,执行任意代码,从而获取到服务器权限。 hunter app.n…

C# 添加、替换、提取、或删除Excel中的图片

在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观。此外,对于已有图片,你有事可能需要更新图片以确保信息的准确性,或者将Excel 中的图片单独保存,用于资料归档、备…

接口 V2 完善:分布式环境下的 WebSocket 实现与 Token 校验

🎯 本文档详细介绍了如何使用WebSocket协议优化客户端与服务端之间的通信,特别是在处理异步订单创建通知的场景中。通过引入WebSocket代替传统的HTTP请求-响应模式,实现了服务器主动向客户端推送数据的功能,极大地提高了实时性和效…

【ProtoBuf 安装】ProtoBuf在window/Linux下的安装 创建/删除swap分区

文章目录 1.ProtoBuf在window下的安装2.ProtoBuf在Linux下的安装创建swap分区命令解析关闭swap分区删除swap分区的影响 1.ProtoBuf在window下的安装 1、下载ProtoBuf编译器 下载地址:https://github.com/protocolbuffers/protobuf/releases 如果要在 C 下使用 Pro…

day7手机拍照装备

对焦对不上:1、光太暗;2、离太近;3、颜色太单一没有区分点 滤镜可以后期P 渐变灰滤镜:均衡色彩,暗的地方亮一些,亮的地方暗一些 中灰滤镜:减少光差 手机支架:最基本70cm即可 手…

vue事件总线(原理、优缺点)

目录 一、原理二、使用方法三、优缺点优点缺点 四、使用注意事项具体代码参考: 一、原理 在Vue中,事件总线(Event Bus)是一种可实现任意组件间通信的通信方式。 要实现这个功能必须满足两点要求: (1&#…

分享|instructionfine-tuning 指令微调是提高LLM性能和泛化能力的通用方法

《生成式AI导论》课程中,李宏毅老师提到一篇关于“ instruction fine-tuning” 指令微调的论文: 《Scaling Instruction-Finetuned Language Models》 摘要分享: 事实证明, 在一组以指令形式表达的数据集上微调语言模型可以提…

拟合损失函数

文章目录 拟合损失函数一、线性拟合1.1 介绍1.2 代码可视化1.2.1 生成示例数据1.2.2 损失函数1.2.3 绘制三维图像1.2.4 绘制等高线1.2.5 损失函数关于斜率的函数 二、 多变量拟合2.1 介绍2.2 代码可视化2.2.1 生成示例数据2.2.2 损失函数2.2.3 绘制等高线 三、 多项式拟合3.1 介…

unity商店插件A* Pathfinding Project如何判断一个点是否在导航网格上?

需要使用NavGraph.IsPointOnNavmesh(Vector3 point) 如果点位于导航网的可步行部分,则为真。 如果一个点在可步行导航网表面之上或之下,在任何距离,如果它不在更近的不可步行节点之上 / 之下,则认为它在导航网上。 使用方法 Ast…

2025美国大学生数学建模竞赛美赛E题成品参考论文(48页)(含模型,可运行代码,求解结果)

2025美国大学生数学建模竞赛E题成品参考论文 目录 一、问题重述 二、问题分析 三、模型假设 四、模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1代码(仅供参考) 4.1.4问题1求解结果(仅供参考&…

开源音乐管理软件Melody

本文软件由网友 heqiusheng 推荐。不过好像已经是一年前了 😂 简介 什么是 Melody ? Melody 是你的音乐精灵,旨在帮助你更好地管理音乐。目前的主要能力是帮助你将喜欢的歌曲或者音频上传到音乐平台的云盘。 主要功能包括: 歌曲…

PCIE模式配置

对于VU系列FPGA,当DMA/Bridge Subsystem for PCI Express IP配置为Bridge模式时,等同于K7系列中的AXI Memory Mapped To PCI Express IP。

maven的打包插件如何使用

默认的情况下,当直接执行maven项目的编译命令时,对于结果来说是不打第三方包的,只有一个单独的代码jar,想要打一个包含其他资源的完整包就需要用到maven编译插件,使用时分以下几种情况 第一种:当只是想单纯…

反向代理模块

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当…