近日看了CVPR 2018的一篇论文,IQA:Visual question answering in interactive envionments,主要描述的是用一个代理与视频内容进行交互,回答基于视频的问题。之前未看过这方面的论文,并且网上也没有关于这篇论文的解说,所以在此记录一些个人心得体会,如有错误,还望各位老师给予批评指正!
人工智能社区的一个长期目标是创建能够在现实世界中执行手工任务并能通过自然语言与人类交流的代理人。例如,一个家用机器人可能会提出以下问题:我们需要买更多的牛奶吗?这将需要它导航到厨房,打开冰箱,看看牛奶罐里的牛奶,或者我们有多少盒饼干?这将需要代理导航到橱柜,打开其中的几个,并计算cookie盒的数量。为了实现这一目标,VQA这个有关视觉内容的问题受到了计算机视觉和自然语言处理的高度重视。虽然现如今VQA方面已经有了很大的进展,但研究主要集中在被动回答关于视觉的问题上,没有能力与生成内容的环境进行交互,一个只能被动回答问题的代理人在帮助人类完成任务的能力上是有限的。
一.文章概况
摘要:
作者在文章中介绍了IQA(交互式回答问题),这是一项回答问题的任务,与以往我所见到的论文不同的是,它需要一个自主的代理人与动态的视觉环境进行交互。给一个场景和一个问题,代理在场景中导航,去获得对场景元素的视觉理解,与场景中的物体进行交互,为问题计划一系列行动情况,以备更好地回答问题。而由于所给的场景是非常巨大,其中的位置空间多种多样,所以当前流行的强化学习方法和单一的控制器使IQA表现不佳。作者在本文中提出了一种分层交互记忆网络(HLMN),它由一组分解的控制器组成,允许在多个时间抽象级别上工作。本文的模型实现是由一个基于一种新的数据集IQUAD V1的具有交互对象的可变形室内场景的模拟照片真实感环境。其中数据集IQUAD V1中有75000个问题,每一个问题都有一个独特的场景组合。本文中提出的模型优于IQUAD V1的流行单控制器。
这里作者给出了模型过程视频,我截取并放在了这里以供大家观看:
论文
二.Introduction
鉴于IQA的实际情况,它有以下几点挑战:首先,代理必须能够在环境中导航;第二,代理人必须了解环境中的对象;第三,代理人必须能够与环境中的物体互动(如打开微波炉、拿起书籍等);第四,代理人必须能够在环境中规划和执行一系列行动。为了应对这些挑战,作者在本文中提出了HIMN(层次交互内存网络),详细描述如下:
与以往的关于分层强化学习的工作相似,‘HIMN被分解为一个层次结构控制网络,允许系统在多个时间尺度上操作、学习和推理。同时降低每个单个子任务的复杂性。高级控制器选择要执行的任务(如导航/操作/回答等等),并为所选任务生成命令。低级控制器(导航器、操作器、检测器、扫描器和应答器)将控制返回给规划器。这些子任务是相对独立的,故我们可以独立地对每个控制器进行预训练。
有几种问题类型要求代理记住它在哪里以及它看到了什么。例如,这间房子里有几个枕头?需要一个代理在房间里面导航,记录它遇到的枕头的数量。对于足够复杂的空间,代理就需要将这些信息保存在内存中很长时间,这就促使一个代理填充的显示外部内存表示。这个记忆必须是空间和语义的,这样它就可以代表一个地方。
从运营成本、规模以及研究重现性的角度来看,在现实世界中去模拟模型中的交互是不可行的,所以,一个可行的选择就是在真实的模拟环境中训练的评估这些代理。为此,作者在本文中使用了A12-THOR[35]——一个基于IQUAD V1数据集的可定制室内场景仿真环境。IQUAD V1中的75000道选择题中的每一道题都有一个独特的场景配置。
本文的贡献总共包括三个部分:a.提出交互式问题回答,回答要求代理人与动态环境交互的问题的任务;b.提出层次交互记忆网络,一个问题回答模型分解成一个高层次规划器、一组低层次控制器和一个丰富的语义空间记忆;c.提出了一种新的递归层来表示这个内存;d.使用了一个新的数据集IQUAD V1来完成。
相关工作
数据集
本文中用到的数据集与之前的不相同——一个基于IQUAD V1数据集的可定制室内场景仿真环境。IQUAD V1中的75000道选择题中的每一道题都有一个独特的场景配置。
强化学习RL
RL算法被广泛应用于各种问题中,包括运动[33]、障碍物检测[44]和自主飞行。与我们的方法特别相关的是分层强化学习(HRL)领域,它由一个高层控制器和一个或多个低级控制器组成。高级控制器选择要执行的子任务并调用其中一个低级控制器。HRL的优点是它允许模型在多个时间抽象级别上运行。
视觉导航
大多数视觉导航技术分为三类:离线地图、在线地图和无地图方法。
视觉规划
要回答诸如我需要买牛奶吗?代理需要计划一系列的行动来探索和与环境交互。一大批关于规划的研究 组织结构[12,14,26,62,63]使用高级正式语言。这些技术旨在处理低维状态空间,但不能很好地扩展到高维状态空间,如自然状态空间。
模拟视觉学习
越来越多地使用模拟环境和游戏平台来训练计算机视觉系统来执行任务,例如学习世界的动态、文献、语义分割、行人检测、姿态估计、城市驾驶。
三.详细解读
1.模拟环境
从运营成本、规模、时间和研究重要性的角度来看,在现实世界中培训和评估交互式代理是禁止的,更可行的替代方法是使用模拟环境。然而,该框架应该在视觉上是真实的,允许与对象的交互,并有一个详细的场景物理模型,这样代理和动作和对象的交互才能得到适当的表示。因此,我们采用A12-THOR环境作为我们的模型场景。A12-THOR是一个室内设置120个房间的照片真实感模拟环境,与物理引擎紧密集成。每一个场景由各种物体组成,从家具如沙发、电器如微波炉和较小的物体如陶器、餐具、书籍、水果等。这些物体中有许多是行动的,例如冰箱可以打开,杯子可以拿起来放下,炉子可以打开和关闭。
2.交互式问题回答数据集
IQUAD V1数据集是一个基于A12-THOR的问题回答数据集。它由三种不同题型的75000多个选择题组成。分别是“实在问题”(厨房里有苹果吗?);记数问题(现场有多少叉子?);和空间关系问题(冰箱里有生菜吗?)。我们将30个厨房房间分成25个培训和5个测试,每个培训(房间、问题类型)有1024个独特的(问题、场景配置)对,测试有128个独特的(问题、场景配置)对。下表给出了该数据集在各种问题类型、对象和场景配置中的统计数据:
3.代理和对象
我们环境中的代理有一个固定高度的RGB摄像机。一个代理可以执行五种导航操作之一(向前移动25厘米、向左或向右旋转90度、向上或向下30度)。我们假设一个网格平面图,它确保代理总是沿着网格的边缘移动,并在网格中的一个节点上停止。代理可以执行两个交互操作(打开和关闭)来操作对象。
4.模型
文中提出了HIMN(分层交互记忆网络)。它由层次控制器组成。控制器在多个时间抽象层次上工作,并且具有丰富的语义记忆,有助于导航信息、互动和问题回答。下图概述了HIMN:
4.1空间记忆
有一些问题类型要求代理跟踪它在过去看到的对象以及其位置。对于具有多个位置和可交互对象的复杂场景,代理需要将这些信息长时间保存在内存中。这就激发了对于显式外部内存的需求,这种表示由动态的代理填充,可以在任何时候访问。为了解决这个问题,HIMN使用了丰富的语义空间记忆。对场景中每个位置的语义表示进行编码。此内存中的每个位置由编码对象检测概率的特征向量、自由空间概率(2D占用网格)、覆盖范围(代理人以前检查过此位置吗? 和导航意图(代理人以前尝试访问此位置)。我们提出了一种新的递归层公式:Egocentration Spatial GRU(es GRU)来表示这个内存,如图所示。 上图中es GRU保持以3D张量表示的外部全局空间存储器。在每个时间步骤中,es GRU将以本地为中心的内存副本转换为GRU的隐藏状态。 使用当前输入进行ms计算,然后在预定位置将产生的隐藏状态交换到全局内存中。这样可以加快计算速度,防止损坏内存 在远离代理当前观点的地方。在导航和回答问题时,代理可以访问全部内存,从而能够长期回忆以前看到的数百种状态。只有低级别控制器对此内存具有读写访问权限。由于规划师只做出高层决策,而不是在较低的层次上与环境互动,所以它只有读取访问记忆的权限。
4.2.Planner规划师
输入图片、当前的操作指南以及问题。图片由CNN编码,问题由LSTM编码,该GRU在每个时间步骤中接受当前观点(由CNN编码)和先前的操作。
代理对于空间的语义记忆经过CNN编码,如上图中的蓝色表示,GRU混合的结果由红色表示,问题由LSTM编码后由绿色表示。三者经过FC(全连接层),产生一个由每个交流的概率πi组成的策略π来实现这一点 以及当前状态的值v。
高级规划师调用低级控制器来探索环境,收集回答给定问题所需的知识,并回答问题。我们认为这是一种强化学习问题,其中代理必须发出尽可能少的命令,以获得正确的答案。代理人必须学会根据所学知识探索场景的相关领域(例如 .苹果经常在冰箱里,橱柜是可以打开的,等等。当前内存状态(例如。冰箱在左边),当前的观察(例如。冰箱是关着的)和问题。在每个时间步骤中,规划者选择调用在代理前面的5x5网格中提供相对位置的导航器,调用具有向上或向左等方向的扫描器,调用 在附近对象上具有打开/关闭命令的操作器,或调用应答器共32个离散操作。它通过产生一个由每个交流的概率πi组成的策略π来实现这一点 以及当前状态的值v。用A3C算法学习π和v[46]。上图显示了规划师的示意图。它由GRU组成,该GRU在每个时间步骤中接受当前视点(由CNN编码)和先前的操作。规划师只读到 语义记忆以代理的当前位置为中心。该GRU的输出与问题嵌入和附近语义空间内存的嵌入相结合,以预测π和 代理人根据正确/不正确的回答获得固定的报酬/惩罚。它还提供了一个持续的时间惩罚,以鼓励环境的有效探索和快速回答,以及试图执行无效的行为的惩罚。代理还会因为增加了环境的“覆盖率”而获得中级奖励,从而有效地训练网络尽可能快地最大化它所探索的房间的数量。最后,在每一个时间步骤,规划师也预测哪些高水平的行动是可行的,因为目前的世界状态。在场景中的许多位置,某些导航目的地是无法到达的。 或者没有对象可以交互。在每个时间步骤中预测可能/不可能的动作,允许梯度通过所有动作传播,而不仅仅是选择的动作。这就是线索 为了更高的准确性和更快的收敛性(详见5.2节)。
4.3. Low level controllers低级控制器——里面包含很多:
Navigator 导航器由规划器调用,该规划器还为其提供目标位置的相对坐标。给定规划师指定的目的地和 房间的占用网格,导航器运行A*搜索以找到通往目标的最短路径。当导航器在环境中移动时,它使用es GRU生成本地(5x5)占用GRI 鉴于目前的视觉观察。这将更新全球占用估计,并提示进行新的最短路径计算。这是一个完全监督的问题,可以用标准的s- s交叉熵进行训练。导航器还调用扫描器以获得环境的广角视图。考虑到被请求的目的地可能在房间的界限之外或在其他方面不可能(例如,在墙壁或其他障碍物处),导航器的网络也可以预测终止信号,并将控制权交还给当预测超过一定的阈值时。
Scanner 扫描仪是一种简单的控制器,它通过向上、向下、左或右旋转摄像机来捕获图像,同时保持代理的当前位置。扫描仪一直在呼叫探测器 你的新形象。
Detector 检测器对象检测是HIMN的一个关键组件,因为IQ UADV1中的所有问题都涉及房间中的一个或多个对象。我们使用YOLOv3[56]微调的AI2-THOR训练场景a 这是一个物体探测器。我们使用FRCN深度估计网络[38]估计物体的深度,并将检测到的物体的概率投影到地面上。这两个网络 它以实时速度工作,这是必要的,因为它们是在每个新图像上调用的。使用移动平均更新规则将检测概率合并到空间内存中。We 还进行了实验,我们用甲骨文检测代替了训练好的探测器和深度估计器。由环境提供的检测仍然需要网络来学习负担。F 例如,网络必须了解微波可以打开,苹果可以在冰箱等。
Manipulator 操作者被规划师调用来操纵一个对象的当前状态。例如,打开和关闭微波炉。这导致了场景视觉外观的变化。如果对象太远或不在视图之外,则操作将失败。
Answerer 回答者由规划师引导回答问题。它使用当前图像、整个空间内存和问题嵌入向量来预测问题的每个可能答案的答案概率ai。问题向量被平铺成一个与空间记忆具有相同宽度和高度的张量。这些是深度连接空间内存,并通过4个卷积和最大池层,然后在空间层上求和。这个输出向量是通过两个完全连接的层和一个软最大可能的答案选择。当应答者被激活后,不管应答是否正确,这一次就结束了。
4.4 Training
全系统共同培训..然而,由于控制器的单个任务大多是独立的,我们可以单独对它们进行预训练。我们的初步分析表明 比从头开始训练端到端更快的收敛性和更好的准确性。我们在下面概述我们的培训程序。
规划师:为了预先训练规划师,我们假设一个完美的导航器和探测器,使用地面真相最短路径的导航器和地面真相对象信息的探测器。
导航者:我们通过提供随机起点和目标位置对导航员进行预训练。
回答者:回答者是通过使用包含足够的信息来正确回答当前问题的地面真相部分语义映射来预先训练的。
探测器:探测器是通过在AI2-THOR训练场景上微调YOLOv3[56]来预先训练的..它被训练来识别可能在多个场景(苹果、叉子、e)中重复的小对象实例 tc.)以及每个场景特有的大型对象实例(例如。每个冰箱模型只存在于一个场景中)。
五.实验
下面这张表格比较了不同模型和三种问题类型的问题回答的测试精度和插曲长度:
本文中对于网络结构和输入进行了四个实验。首先,使用真实目标探测和深度代替YOLO和FRCN深度,这将大大