On Evaluation of Embodied Navigation Agents 论文阅读
论文信息
题目:On Evaluation of Embodied Navigation Agents
作者:Peter Anderson,Angel Chang
来源:arXiv
时间:2018
Abstract
过去两年,导航方面的创造性工作激增。这种创造性的输出产生了大量有时不兼容的任务定义和评估协议。为了协调该领域正在进行和未来的研究,我们召集了一个工作组来研究导航研究的实证方法。本文件总结了该工作组的共识建议。我们讨论不同的问题陈述和泛化的作用,提出评估措施,并提供可用于基准测试的标准场景。
Introduction
通用任务定义和评估协议的融合促进了计算机视觉领域的巨大进步
Goal Specification and Sensory Input
导航任务可以从几个维度来区分。
一是目标的性质。我们确定三种类型的目标:
• PointGoal。代理必须导航到特定位置。例如,假设代理从原点开始,目标可能是导航到位置 (100, 300),其中单位为米。如果环境是空的,这个任务就很简单,但超出了现有系统在之前从未探索过的现实杂乱环境中的能力[28]。
• ObjectGoal。代理必须导航到特定类别的对象。该类别可以从预定义的集合中提取。例如,“冰箱”、“汽车”或“钥匙”。为了执行此任务,智能体必须利用有关世界的先验知识,例如“冰箱”的外观以及可以在哪里找到它。
• AreaGoal。代理必须导航到指定类别的区域。例如,“厨房”、“车库”或“门厅”。此任务还依赖于有关不同区域的外观和布局的先验知识。
不同类型的目标可以通过不同的方式来指定。
前面的描述中举例说明了基本规范:
PointGoal 的坐标、ObjectGoal 和 AreaGoal 的分类标签。
还有另外两种有趣且值得注意的规范类型:
图像(或其他感知输入)和语言。例如,ObjectGoal 任务可以通过相关对象的图像来指定 [32]。 PointGoal 任务可以通过自然语言的描述来指定[1]。其中一些规范模式还支持 ObjectGoal 和 AreaGoal 任务的实例特定形式:例如,找到此图像中显示的特定汽车(而不是任何汽车)。
该代理可能配备不同的传感模式,例如视觉(RGB 图像)、深度或触觉。另一种可能的输入是环境示意图,类似于人类在导航时使用的那种。
Generalization and Exploration
另一个主要区别是先前暴露于评估试剂的环境的程度。
最近的工作涉及广泛。一方面是在新环境中评估代理的协议,在测试之前不暴露于环境 [12, 28]。另一端是在代理测试的相同环境中进行广泛训练的协议,为代理提供数天或数周的测试场景训练[20]。
在整个范围内,有一些协议让代理在评估之前短暂暴露于测试环境(大约几分钟的主观体验);在此初步暴露期间,代理可以构建一个内部表示,然后用于支持导航[27]。
我们的基本原则是,应严格量化和报告代理在导航事件之前暴露于测试环境的程度。在导航试验之前需要在测试环境中获得丰富经验的方法可能是合理的,但必须明确量化和记录事先暴露于环境的情况。我们可以确定一些关于泛化的制度:
• No prior exploration。事先没有暴露于测试环境。特工被要求在前所未有的新环境中找到出路 [12, 28]。
• Pre-record prior exploration。代理会获得环境中探索轨迹的记录。探索由第三方(例如,人类或自动探索策略)执行,并为每个测试环境提供记录,作为基准测试设置的一部分。代理可以使用提供的记录来构建可以支持后续导航的环境的内部表示[27]。
• Time-limited exploration by the agent。代理获得勘探预算。在导航事件之前,智能体可以自由地穿越环境,直到其轨迹长度达到给定的预算。这种体验可用于构建环境的内部表示,以支持后续的导航事件。探索政策处于代理的控制之下,但暴露于测试环境的程度仍然是有限和量化的。
Evaluation Measures
我们解决的第一个问题是代理是否需要发出已完成任务的信号。在最近的一些工作中,一旦智能体足够接近目标,导航事件就会终止并被视为成功。我们建议不要这样做,因为这样的协议不会测试智能体是否理解它已经达到了目标。
我们认为这种理解至关重要:智能体不能只是偶然发现目标,它必须明白目标已经达到。为了表明这种理解,我们建议在代理的词汇表中添加专门的操作。该操作可以称为“完成”,表示代理已准备好进行评估。当代理产生这个特殊信号“完成”时,应该评估代理相对于目标的配置以及到达目标所采取的路径。如果没有这样的信号,即使智能体接近目标,导航事件也不应被视为成功
建议 1. 代理必须配备特殊操作,表明其已完成导航事件并准备好进行评估。代理相对于目标的配置必须在产生此动作时进行评估,而不是在情节期间某个有利的先前时间进行评估
建议 2:为了测量接近度(例如,智能体与目标的接近度),我们建议使用测地距离,即环境中的最短路径距离。
我们现在继续描述我们建议用于评估导航性能的具体措施。
为了定义这样的衡量标准,我们首先采用导航事件是否成功的二元标准。为了评估这个标准,我们考虑代理在输出操作“完成”时的配置。
(如果智能体没有产生这样的动作,则该情节自动被视为不成功。)如果此时智能体足够接近目标,则该情节成功。
对于 PointGoal 或 ObjectGoal,如果智能体与目标之间的距离低于阈值 τ,则该情节成功。我们建议默认使用 2× 代理身体宽度的阈值。
对于 AreaGoal,如果智能体的质心位于指定区域内,则该情节成功。
配备了情景成功的二元定义,我们进行了 N 个测试情景。在每一集中,代理的任务是实现目标。令 i 为第 i 集中智能体从起始位置到目标的最短路径距离,并令 pi 为智能体在本集中实际采取的路径长度。令 Si 为第 i 集成功的二元指标。我们定义了代理在测试集中的导航性能的汇总度量,如下所示:
我们将此度量称为 SPL,是“按(归一化逆)路径长度加权的成功”的缩写。让我们考虑一些例子。如果 50% 的测试片段成功,并且智能体在所有测试片段中都采取最佳路径实现目标,则其 SPL 为 0.5。如果所有测试集都成功,但智能体达到目标的时间是其最佳表现时的两倍,则 SPL 也为 0.5。如果 50% 的测试集成功,并且所有测试集的 pi = 2‘i,则 SPL 为 0.25。
请注意,SPL 是一项相当严格的衡量标准。当在以前从未见过的相当复杂的环境中进行评估时,我们预计 0.5 的 SPL 是良好的导航性能水平。通过测量人类受试者的声压级,可以在每个数据集上更可靠地校准这一点。
建议 3. 我们建议采用 SPL 作为导航性能的主要衡量标准。
虽然我们建议将 SPL 作为主要评估指标,但我们注意到还有其他指标可以提供有关代理绩效的补充信息。除了 SPL 之外,我们鼓励报告此类辅助措施。对于辅助措施的一些建议是:a) 成功率与智能体所经过的归一化反距离的函数关系,b) 事件结束时到目标的距离(绝对或通过“i”归一化),c) SPL 扫描在不同的阈值 τ 上,d) 归一化逆路径长度的分布 ('i/ max(pi, 'i)),e) 违规次数(例如,与障碍物接触),以及 f) 轨迹上消耗的驱动时间和能量执行。
Experimental Testbeds
最近提出了许多室内环境模拟平台[4,12,16,28,30,31]。
它们基于环境集合,例如 AI2-THOR [16]、SUNCG [29]、Matterport3D [7] 和 Gibson [31]。其他用于研究导航的模拟器包括 ViZDoom 和 DeepMind Lab [15, 2](相对整洁的走廊布局)和 CARLA [10](室外城市环境)。我们不会推荐特定的模拟器而不是其他模拟器。相反,我们提出了两项技术建议,可以为未来模拟平台的设计提供信息。
建议4.我们建议使用连续状态空间,这样智能体可以在连续空间中自由移动。离散环境可以很方便,并且可以支持有趣的实验和结果 [1,3,19,22],但连续空间可以更好地反映代理在物理世界中部署的条件。
建议 5。为了可解释性和互操作性,我们建议在模拟器中采用 SI 单位。模拟器中的距离 1 应对应于 1 米
建议 6:我们建议模拟器由开源软件支持,使经过模拟训练的代理能够使用标准组件部署到物理机器人上
Standard Scenarios
SUNCG。我们使用 500 个不同复杂程度的单层 SUNCG 房屋(每个房屋有 1 到 10 个房间),分为 300/100/100 个训练/验证/测试环境。这些房屋共有 2,737 个房间、41,158 件物品,总建筑面积约 110,000 平方米。平均每户有5.5个房间,每间平均建筑面积为42平方米。这些环境代表了各种室内装饰,包括家庭住宅、办公室和餐厅等公共空间。代理的身体宽度为 0.2 m,我们将成功导航到目标的距离阈值 τ 设置为身体宽度的两倍 (0.4 m)。场景规范文件位于 github.com/minosworld/scenarios
Matterport3D。我们采用原始数据集 [7] 指定的 61/11/18 训练/验证/测试室分割。这些房屋共有 190 层,共有 2,206 个房间区域。平均每户有24.5个房间,建筑面积560平方米。这些环境主要是私人住宅、酒店和公司办公空间。与 SUNCG 场景类似,代理身体宽度为 0.2 m,距离阈值 τ 为 0.4 m。场景规范文件可从 github.com/minosworld/scenarios 获取。
AI2-THOR。 AI2-THOR 1.0版本包含120个场景,涵盖四个场景类别:厨房、客厅、卧室和浴室。每个类别中的前 20 个场景应用于训练(例如,厨房的 FloorPlan1 到 FloorPlan20)。每个类别中接下来的五个场景应用于验证(例如,厨房的 FloorPlan21 到 FloorPlan25),最后五个场景用于测试。训练应该在所有训练场景(总共80个场景)上进行。我们考虑 AI2-THOR 的两种目标规范:PointGoal 和 ObjectGoal。当前版本的 AI2-THOR 不适合 AreaGoal,因为每个场景仅包含一个房间。下面我们描述每个目标设置的规范。
PointGoal:对于每个测试场景,我们随机选择 5 个点作为目标,并将目标坐标提供给代理。我们还考虑了代理的 5 种不同起点和 5 种不同的场景配置(通过将对象移动到不同位置或更改其状态)。总共,每个测试场景有 5 × 5 × 5 = 125 个场景。如果智能体与目标点之间的距离低于智能体宽度的 2 倍,则该回合被认为是成功的。
此设置的操作集为:向前移动、向后移动、向右旋转、向左旋转和终止
ObjectGoal:我们提供对象类别标签来指定目标。如果对象对代理“可见”,则导航成功。在 AI2-THOR 中,如果某个物体距离摄像机 1 m 以内且位于智能体的视野范围内,则该物体被标记为“可见”。与 PointGoal 类似,我们为每个测试场景考虑 5 个不同的随机起点。选择目标有两种情况:
-
Navigation-only:在此设置中,以只能通过导航操作到达的方式选择目标。例如,仅通过导航操作无法到达柜子内的杯子,因为代理需要打开柜子才能看到杯子。为此设置设置的操作为:向前移动、向后移动、向右旋转、向左旋转、向上查找、向下查找和终止。
-
Interaction-based:在这种情况下,找到一些目标需要交互。此设置的操作集为:向前移动、向后移动、向右旋转、向左旋转、向上查找、向下查找、打开 X、关闭 X 和终止
Gibson。 Gibson 数据集包括 572 座建筑物,共 1,447 层,总面积为 211,000 平方米。这些空间是使用 3D 扫描仪扫描的真实建筑物。每栋建筑都具有一定的杂乱程度 (SSA) 和导航复杂性。空间及其元数据的可视化可在 http://gibson.vision/database/ 上获得。考虑到数据集的大小,我们指定了一些不同大小的标准分区以方便实验,例如小型(35 座建筑物)、中型(140 座建筑物)和完整(572 座建筑物)。每个分区的训练/验证/测试划分为:微小 (25/5/5)、中等 (100/20/20)、完整 (402/85/85),全部大约为 70%/15%/15%。
Agent Architectures
建议 7:体现代理设计的一个中心问题是代理在其环境中导航时构建和维护的内部表示的结构。我们鼓励对这个问题进行全面和开放的研究,我们认为这是人工智能发展的基础。
相关文章:

On Evaluation of Embodied Navigation Agents 论文阅读
论文信息 题目:On Evaluation of Embodied Navigation Agents 作者:Peter Anderson,Angel Chang 来源:arXiv 时间:2018 Abstract 过去两年,导航方面的创造性工作激增。这种创造性的输出产生了大量有时不…...
【CSS 布局】水平垂直方向居中
【CSS 布局】水平垂直方向居中 单行元素 <div class"container"><div class"item"></div> </div>方式一:relative 和 absolute .container {position: relative;height: 400px;border: 1px solid #ccc;.item {posit…...

Java实现轻量型Web服务器接收http协议提交的RFID读卡信息
示例使用的读卡器:RFID网络WIFI无线TCP/UDP/HTTP可编程二次开发读卡器POE供电语音-淘宝网 (taobao.com) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSock…...

模拟实现消息队列项目(完结) -- 基于MQ的生产者消费者模型
目录 前言 1. 生产者 2. 消费者 3. 启动消息队列服务器 4. 运行效果 结语 前言 在上一章节,我们完成了消息队列的客户端部分,至此我们整个消息队列项目就构建完成了,那我们做的这个消息队列到底有什么效果,以及如何去使用我们自己的消息队列呢?那么本文,就将我们的MQ进行实战操…...

专业商城财务一体化-线上商城+进销存管理软件,批发零售全行业免费更新
订货流程繁琐?订单处理效率低?小程序商城与进销存系统不打通?数据需要手动输入同步?财务与的结算对账需要大量手工处理?零售批发从业者,如何你也有以上烦恼,可以看看进销存小程序订货商城&#…...
深度思考mysql面经
推荐 1 索引下推 Mysql性能优化:什么是索引下推? 1.1 定义 索引下推(Index Condition Pushdown,简称 ICP)是一种数据库优化技术。在传统的数据库查询中,数据库首先使用索引检索来找到符合索引条件的行&…...
2023-08-09力扣每日一题
链接: 1281. 整数的各位积和之差 题意: 十进制每一位的积减去每一位的和 解: 十进制位处理 实际代码: #include<iostream> using namespace std; int subtractProductAndSum(int n) {int t11,t20;while(n){t1*n%10;t…...

[23] Instruct 3D-to-3D: Text Instruction Guided 3D-to-3D conversion
本文提出一种3D-to-3D转换方法:Instruct 3D-to-3D;借助预训练的Image-to-Image扩散模型,本文方法可以使各个视角图片的似然最大;本文方法显式地将source 3D场景作为condition,可以有效提升3D连续性和可控性。同时&…...

设计模式行为型——访问者模式
目录 访问者模式的定义 访问者模式的实现 访问者模式角色 访问者模式类图 访问者模式举例 访问者模式代码实现 访问者模式的特点 优点 缺点 使用场景 注意事项 实际应用 访问者模式的定义 访问者模式(Visitor Pattern)属于行为型设计模式&am…...

vue3官网文档学习、复习笔记(快速上手)
目录 2.Attribute 绑定(v-bind) 3.事件监听(v-on) 4.表单绑定(v-model) 5.条件渲染(v-if) 6.列表渲染(v-for) all.value all.value.filter(…...

0基础学习VR全景平台篇 第81篇:全景相机-临云镜如何直播推流
临云镜全景相机是阿里巴巴定制全景设备,实现空间三维信息的快速采集,与阿里云三维空间重建平台搭配,帮助品牌商与平台以较低的成本完成空间的快速采集,并支持对室内/室外空间的三维全景展示及空间漫游,同时支持VR浏览、…...
分数线划定
题目描述 查看题目信息 世博会志愿者的选拔工作正在A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。 面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿…...
考研C语言进阶题库——更新26-30题
目录 26.一个正整数,如果等于组成它的各个数字的阶数之和,该整数称为阶乘合数,例如1451阶加四阶加五阶,则145是一个三位阶乘合数,输入一个数,问共有多少个阶乘合数?(十万之内) 27.与2相关的数…...

用C语言实现定积分计算(包括无穷积分/可自定义精度)
关于严谨性的声明: 在用C语言进行定积分的计算之前,我需要声明以下几点: 一、我们所进行定积分计算的函数都是应当是黎曼可积的,这保证了我们即使均匀地分割区间也保证了积分的收敛性。 二、我们同时还应该认识到,鉴…...

使用Presto、Trino数据库时提示“The datetime zone id ‘GMT+08:00‘ is not recognised”
出现这个问题的原因是:Presto、Trino的驱动使用了joda这个库来处理时区的问题。但这个库的编写人似乎对java zone的格式没有太多经验。先看一下出错的代码: com.facebook.presto.jdbc.internal.joda.time.DateTimeZone#forID 根据String类型的zoneId转成…...
C# BeginInvoke 加 EndInvoke实现异步操作
1、定义一个委托 delegate long MyDel(int first, int second); 2、 需异步操作的函数 static int sum(int x,int y) {Console.WriteLine("InSide Sum1");Thread.Sleep(1000);Console.WriteLine("InSide Sum2");return x y;} 3、回调方法…...
“华为杯”研究生数学建模竞赛2015年-【华为杯】B题:数据的多流形结构分析(续)
目录 4.2.2 算法复杂度分析 4.2.3 参数影响 4.2.4 问题 3(a)求解 4.3 问题 3(b) 4.3.1 加权稀疏子空间聚类</...

R语言APSIM模型高级应用及批量模拟
随着数字农业和智慧农业的发展,基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…...

【硬件设计】模拟电子基础三--集成运算放大电路
模拟电子基础三--集成运算放大电路 一、集成运算放大器1.1 定义、组成与性能1.2 电流源电路1.3 差动放大电路1.4 理想运算放大器 二、集成运算放大器的应用2.1 反向比例运算电路2.2 同向比例运算电路2.3 反向加法运算电路2.4 反向减法运算电路2.5 积分运算电路2.6 微分运算电路…...

JavaWeb(11)——前端综合案例5(小黑记事本)
一、实例需求 ⌛ 功能需求: ① 列表渲染 ② 删除功能 ③ 添加功能 ④ 底部统计 和 清空任务 二、代码实现 ☕ <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <meta http-equiv"X-UA-Compa…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...