Abstract
许多研究发现,今天的视觉问题回答(VQA)模型主要受训练数据中表面相关性的驱动,缺乏足够的图像基础。为了鼓励开发面向后者的模型,我们为VQA提出了一个新的环境,在这个环境中,对于每种类型的问题,训练集和测试集都有不同的答案先验分布。具体来说,我们提出了VQA v1和VQA v2数据集的新分割,我们称之为改变先验下的视觉问题回答(分别为VQA- CP v1和VQA-CP v2)。首先,我们在这种新的设置下评估了几个现有的VQA模型,并表明它们的性能与原始的VQA设置相比显著下降。第二,我们提出了一个新的基于视觉的问答模型(GVQA),该模型在体系结构中包含归纳偏差和限制,该体系结构专门设计来防止该模型主要依靠训练数据中的先验信息进行“欺骗”。具体来说,GVQA明确地将图像中出现的视觉概念的识别与给定问题的似是而非的答案空间的识别分开,使得该模型能够更稳健地在不同的答案分布上进行概括。全球价值链分析是建立在现有的VQA模型——叠加注意力网络(SAN)之上的。我们的实验表明,在VQA-CP v1和VQA-CP v2数据集上,GVQA明显优于SAN。有趣的是,在一些情况下,它也优于更强大的VQA模型,如多模态紧凑双线性池(MCB)。当在原始VQA v1和VQA v2数据集上进行培训和评估时,GVQA提供了补充存储区域网络的优势。最后,GVQA比现有的VQA模型更加透明和可解释。
Introduction
自动回答关于视觉内容的问题被认为是人工智能的最高目标之一。视觉问答(VQA)提出了一系列跨越不同领域的挑战,如计算机视觉、自然语言处理、知识表示和推理。在过去的几年里,VQA受到了很多关注——[5,12-14,22,26,30,40,42]收集了许多VQA数据集,[3-5,9,11,15,17,20,21,25,27,31,32,35-39,41]开发了各种深度学习模型。
然而,许多研究发现,尽管最近有所进展,但今天的VQA模型在很大程度上是由训练数据中的表面相关性驱动的,缺乏足够的视觉基础[1,14,18,40]。看起来,当面临一个困难的学习问题时,模型通常会依赖于训练数据中的语言先验,以至于忽略图像——例如,压倒性地回答“多少个X?”有“2”(不考虑X)的问题,“什么颜色。。。?带 “白色。”是否。。。“?写着“是”。
这种突然出现的不满意行为的一个原因是,在强先验存在的情况下,IID训练集和测试集的分割本质上是有问题的。因此,在训练数据中固有记忆偏差的模型在测试集上表现出可接受的性能。这对于VQA的标杆管理进展来说是有问题的,因为如果模型已经学会在图像中建立概念,或者它们是由记忆训练数据中的先验驱动的,那么改进的来源就变得很清楚了。
为了有助于理清这些因素,我们对VQA v1 [5]和VQA v2 [14]数据集进行了新的分割,称为改变优先顺序下的视觉问题回答(分别为VQA-CP v1和VQA-CP v2)。这些新的分割是通过重新组织各个VQA数据集的训练和值分割来创建的,其方式是每个问题类型的答案分布(“多少”、“什么颜色”等)。)与列车分割(第3节)相比,在设计上有所不同。需要注意的一点是:我们不会改变训练和测试之间潜在的感知信号——图像——的分布。图像的不同领域的综合(例如,COCO图像与网络摄像机图像)是一个活跃的研究领域,而不是本工作的重点。我们在训练和测试之间改变每个问题类型的答案分布。我们的假设是,尽管“白色”是训练集中“什么是颜色”最流行的答案,但我们有理由期望回答“正确原因”(图像背景)问题的模型在测试时识别“黑色”。。。“?
为了证明我们的VQA-CP数据集的困难,我们报告了几个现有的VQA模型[3,11,24,39]在这些分裂上的表现。我们的主要发现是,与原始分割相比,当在新分割上进行训练和评估时,所有测试的现有模型的性能显著下降(第4节)。这一发现为文献中关于VQA模型[1,14,18,40的行为的越来越多的证据提供了进一步的证实和新的见解。
我们还提出了一个新颖的基于视觉的问题回答(GVQA)模型,该模型在专门设计的架构中包含归纳偏差和限制,通过主要依赖训练数据中的先验来防止它“作弊”(第5节)。GVQA的动机是直觉,即VQA的问题提供了两个关键信息:
(1)应该识别什么?或者图像中的哪些视觉概念需要推理来回答这个问题(例如,“盘子是什么颜色的?”需要看图片中的盘子,
(2)应该说什么?或者,可排列答案的空间是什么(例如,“什么颜色”。。。“?问题需要用颜色名称来回答)。
我们的假设是,没有明确区分这两种角色的模型——这是文献中大多数现有模型的情况——往往会混淆这两种信号。他们最终从问答对中了解到,一个盘子看似合理的颜色是白色,并且在测试时,比问题所涉及的特定盘子更依赖于这种相关性。GVQA明确地将视觉概念识别从答案空间预测中分离出来。
GVQA是建立在现有的VQA模型基础上的——堆叠注意力网络(SAN) [39]。我们的实验表明,在VQA-CP v1和VQA-CP v2数据集上,GVQA都明显优于SAN(第6.1节)。有趣的是,在一些情况下(第6.1节),它也优于更强大的VQA模型,如多模态紧凑双线性池(MCB) [11]。我们还表明,当在原始的VQA v1和VQA v2数据集上进行训练和评估时,GVQA提供了补充SAN的优势(第6.3节)。最后,GVQA比现有的VQA模型更透明,因为它产生了可解释的中间输出,不像大多数现有的VQA模型(第6.4节)。
2. Related Work
对抗VQA的先验:为了对抗VQA v1数据集中的语言先验,[14]通过为每个问题收集互补图像来平衡每个问题。因此,对于所提出的VQA v2数据集中的每个问题,都有两个相似的图像,对该问题有不同的答案。通过构建,VQA v2数据集中的语言先验明显较弱。然而,训练和测试分布仍然是相似的。因此,在测试时,利用来自训练集的先验仍然对模型有益。[40]以类似的方式平衡来自VQA v1数据集的抽象场景的是/否问题。最近,[19]提出了两个新的评估指标,用于补偿问题类型的偏斜分布和测试集中每个问题类型内答案的偏斜分布。作为对使用“捷径”来解决多选VQA问题的机器的补救措施,[7]描述了自动构建好的诱饵的几个原则(不正确的候选答案)。[8]研究跨数据集适应VQA。他们提出了一种算法,用于将在一个数据集上训练的VQA模型应用于具有不同统计分布的另一个数据集。所有这些工作都表明,越来越多的人对关注那些较少受培训经历驱动、更注重视觉基础的模型感兴趣。
组合性 与跨不同答案分布进行归纳的能力相关的是将训练中所学的已知概念归纳为新的组合的能力。在视觉社区中,已经以各种形式研究了组合性。使用属性的零镜头对象识别是基于组合属性来检测新对象类别的思想([16,23)。[6]通过关注结构化表示(主体-关系-客体三元组),研究了图像字幕领域的构图。[18]用合成图像和问题研究VQA领域的合成性,对象和属性的词汇有限。最近,[2]提出了VQA v1数据集的成分分割,称为C-VQA,由真实图像和问题(由人类提出)组成,以测试现有的VQA模型能够回答成分新颖的问题的程度。然而,即使在C-VQA分裂中,每种问题类型的答案分布也不会因训练和测试而有太大变化。因此,依赖先验的模型仍然可以推广到测试集。
[3,4]已经为VQA开发了神经模块网络,它由不同的模块组成,每个模块专门用于特定的任务。这些模块可以根据问题结构组合在一起,为给定的问题创建一个模型架构。我们在我们的VQA-CP数据集上报告了该模型[3]的性能,并发现其性能从最初的VQA设置显著降低到建议的CP设置(第4节)。
零射VQA也在[被探索过。他们研究了VQA的一个环境,在这个环境中,试题(问题串本身或多个选项)至少包含一个看不见的单词。[29]建议回答关于未知物体的问题(例如,“狗是黑白的吗?”在训练问答中从未见过“狗”)。这些都是与我们的工作正交的努力,因为我们的重点不是研究在测试过程中是否能识别出看不见的单词/概念。相反,我们感兴趣的是通过评估模型对每种问题类型的不同答案分布的概括能力来研究模型在视觉上的基础程度。在我们的拆分中,我们确保在测试时看到的概念尽可能在训练中出现。
3. VQA-CP : Dataset Creation and Analysis
创建VQA-CP v1和VQA-CP v2分割,使得每个问题类型的答案分布(“多少”、“什么颜色”等)。)与训练数据相比,测试数据不同。这些分割是通过使用以下过程分别重新组织VQA v1 [5]和VQA v2 [14]数据集1的训练和验证分割而创建的:
问题分组:具有相同问题类型的问题(问题的前几个词——“颜色是什么”、“房间是什么”等)。)和相同的基本事实答案组合在一起。例如,{“这只狗是什么颜色的?”、“白色”和{“盘子是什么颜色的?”、“白色”组合在一起,而{“狗是什么颜色的?”“黑色”被放在不同的组中。这种分组是在合并来自VQA训练集和验证集之后完成的。我们使用VQA数据集提供的问题类型。
贪婪地重新分割:贪婪的方法用于将数据点(图像、问题、答案)重新分配给VQA-CP训练和测试分割,以便在VQA-CP训练分割中最大化VQA-CP测试概念的覆盖范围,同时确保在测试和训练分割之间不重复具有相同问题类型和相同基本真实答案的问题。在这个过程中,我们循环遍历上面创建的所有组,并且在每个迭代中,我们将当前组添加到VQA-CP测试分割集中,除非该组已经被分配到VQA-CP训练分割集中。我们始终保留一组属于VQA-CP测试分组的概念,这些概念尚未被VQA-CP训练分组所涵盖。然后,我们从尚未被分配到分割的组中选择涵盖集合中大多数概念的组,并将该组添加到VQA-CP训练分割中。当测试分割有大约1/3的数据集时,我们停止,并将剩余的组(尚未分配给任何一个分割)添加到训练分割中。
上述方法导致测试问题概念的98.04%的覆盖率(在去除停止词——“是”、“是”、“该”等之后的问题中的所有唯一词的集合)。)在VQA-CP v1的训练分割中(VQA-CP v2为99.01%),在VQA-CP v1的列车分割前1000个答案中,测试答案的覆盖率为95.07%(VQA-CP v2为95.72%)。VQA- CP v1训练集由118K图像、245K问题和2.5M答案组成(VQA-CP v2列车由121K图像、438K问题和4.4M答案组成)。VQA-CP v1测验集由87K幅图像、125K个问题和13M个答案组成(VQA-CP v2测验的98K幅图像、220K个问题和22M个答案)。
图6示出了诸如“什么颜色”、“什么运动”、“多少”等几个问题类型的答案分布。对于VQA-CP v1数据集的训练(左)和测试(右)分割(VQA-CP v2数据集的分析见附录一)。我们可以看到给定问题类型的答案分布有很大的不同。例如,“网球”是VQA-CP v1测试中“什么运动”这一问题类型的最常见答案,而“滑雪”是VQA-CP v1测试中同一问题类型的最常见答案。然而,对于VQA v1数据集,给定问题类型的分布在训练和val分割[5中是相似的(例如,“网球”是训练和val分割的最常见答案)。在VQA-CP v1分割中,对于其他问题类型也可以看到类似的差异——“是”、“哪个”。
4. Benchmarking VQA Models on VQA-CP
为了证明我们的VQA-CP分割的难度,我们报告了以下基线和现有VQA模型在VQA-CP v1和VQA-CP v2训练分割上的性能,并对相应的测试分割进行了评估。我们将此与他们在VQA v1和VQA v2训练分割上的表现进行比较,并对相应的val分割进行评估。结果如表1所示。
根据问题类型优先[5]:预测相应问题类型的最受欢迎的训练答案(例如,“网球”代表“什么运动”。。。“?问题)
更深层次的LSTM问题(d-LSTM问)[5):只用问题来预测答案(“盲目”模型)。
更深的LSTM问题+标准化图像(d-LSTM Q +标准I) [5):基线VQA模型。神经的
神经模块网络(NMN) [3):该模型被设计成本质上是合成的。
堆积注意力网络(SAN)[39:VQA广泛使用的模型之一。
多模式紧凑双线性池(MCB) [11]:2016年VQA挑战(真实图像)的获胜者。
从表1中,我们可以看到,与原始的VQA设置相比,所有测试的现有VQA模型在VQA- CP设置中的性能显著下降。请注意,尽管NMN体系结构是按设计合成的,但它们在VQA-CP数据集上的性能会下降。我们假设这可能是因为他们使用问题的附加LSTM编码来编码数据集中的先验。还要注意,与其他VQA模型相比,d-LSTM Q +范数I模型的整体性能下降幅度最大,这可能是因为其他模型具有更强大的视觉处理能力(例如,图像注意力)。表1中的另一个有趣的观察结果是,从VQA到VQA-CP,基于整体性能的模型排名发生了变化。在VQA,存储区域网络的表现优于NMN,而在VQA-CP,NMN的表现优于存储区域网络。关于不同问题类型趋势的简要讨论,请参见附录二。
5. GVQA model
我们现在介绍我们的基础视觉问答模型。虽然先前的VQA方法直接将图像-问题元组(I,Q)映射到答案(A),但GVQA将VQA的任务分解为两个步骤:查找-定位回答问题所需的对象/图像块,并识别块中的视觉概念,以及回答-从问题中识别似是而非的答案的空间,并通过考虑哪些概念是似是而非的,从已识别的视觉概念集中返回适当的视觉概念。例如,当问GVQA“狗是什么颜色的?”它识别答案应该是颜色名称,在图像中定位对应于狗的补丁,识别各种视觉概念,例如“黑色”、“狗”、“毛茸茸的”,并最终输出概念“黑色”,因为它是对应于颜色的被识别的概念。GVQA的另一个新颖之处在于,它将回答是/否问题视为视觉验证任务,即它验证问题中提到的概念的视觉存在/不存在。例如,当GVQA被问及“那个人穿着短裤吗?”,它识别视觉存在需要验证的概念是“短裤”,并根据它是否在图像中识别短裤(具体地说,在对应于“人”的补丁上)来回答“是”或“否”。
图3描述了GVQA。给定一个问题和一个图像,问题首先通过问题分类器,并被分类为是/否或非是/否。对于非是/否问题,被激活的GVQA组件是–1)视觉概念分类器(VCC),其将从CNN中提取的视觉特征和由问题提取器给出的Qmain特征作为输入,2)答案聚类预测器(ACP),其输入是整个问题。VCC和ACP的输出被馈送到产生答案的答案预测器(AP)。对于是/否问题,被激活的GVQA组件是–1)VCC(类似于非是/否),2)概念提取器(CE),其输入是整个问题。VCC和CE的输出被馈送到视觉验证器,该视觉验证器预测“是”或“否”。我们在下面展示了每个组件的细节。
视觉概念分类器(VCC)负责定位回答问题所需的图像块,以及产生与定位的块相关的一组视觉概念。例如,假设“汽车旁边的公共汽车是什么颜色的?”,VCC负责在公共汽车区域进行处理,然后输出一组概念,如“公共汽车”和属性,如颜色、计数等。它由一个基于堆叠注意网络([39)的2跳注意模块和一堆二进制概念分类器组成。图像以激活VGG网[33的最后一个汇集层的形式被馈送到注意模块。为了防止记忆每个问题类型的答案优先级,问题首先通过语言提取器,这是一个简单的规则,在删除问题类型子字符串(例如“什么类型”)后输出字符串(称为Qmain)。Qmain使用LSTM嵌入,然后输入注意力模块。多跳注意力产生来自VGG网的图像区域特征的加权线性组合,权重对应于该区域的注意力程度。接下来是一组完全连接(FC)层和一堆2000个二进制概念分类器,覆盖了训练中看到的95%的概念。VCC被训练成每个概念都有二元逻辑损失。
通过从训练质量保证对中提取与答案相关的对象和属性,并保留最频繁的对象和属性,来构建VCC概念集。然后将对象概念分组为单个组,其中使用手套嵌入空间[28]中的K-均值聚类将属性概念聚类为多个小组,总共为C个聚类。为了生成训练概念分类器所需的负样本,需要概念聚类(对于概念分类器,正样本是那些在问题或答案中包含该概念的样本)。由于问题不指示图像中不存在的对象和属性,使用以下假设生成否定数据:(1)回答问题所需的关注图像补丁中最多有一个主导对象(2)每个对象最多有一个来自每个属性类别的主导属性(例如,如果公共汽车的颜色是红色,则它可以用作所有其他颜色的否定示例)。给定这些假设,当一个概念
在一个集群中,所有其他的概念都被视为否定。请注意,在训练过程中,每个问题只有所有概念聚类的一个子集被激活,并且只有这些被激活的聚类造成了损失。
问题分类器使用Glove嵌入层、LSTM层和全连接层将输入问题Q分为两类:是-否类型和非是-否类型。是否问题—输入至模块CE,其余的问题输入至ACP。
答案聚类预测器(ACP)识别预期答案的类型(例如,对象名称、颜色、数字等)。)。它仅针对非是/否问题激活。它由一个Glove嵌入层和一个LSTM层组成,后面是将问题分类到一个C类的FC层。通过在Glove空间中嵌入每个答案,对(1000)个答案类进行K-均值聚类,来创建ACP的聚类。
概念提取器(CE)使用基于位置标签的提取系统,从视觉存在需要在图像中验证的是/否问题中提取问题概念。例如,“圆锥体是绿色的吗?”,我们提取‘绿色’。提取的概念被嵌入到Glove空间中,然后是功能层,以将该嵌入转换到与VCC概念相同的空间中,从而它们可以被VV组合。请参见下面对VV的描述。
答案预测器(AP):给定VCC预测的一组视觉概念以及ACP预测的概念类别,AP的作用是预测答案。 ACP类别对应于VCC概念集群(请参见图3中的ACP和VCC的输出类别。颜色表示对应关系)。 有了这种对齐方式,只需将ACP尺寸复制到与各个VCC群集尺寸有关的位置即可轻松地将ACP的输出映射到具有与VCC输出相同尺寸的矢量。 将生成的ACP嵌入逐元素添加到VCC嵌入,然后添加FC层和softmax激活,从而产生998个VQA答案类别的分布(前1000个训练答案减去“是”和“否”)。
模型训练和测试:我们首先使用簇标签(针对ACP)和视觉概念标签(针对VCC)7在火车分割中训练VCC和ACP7。 Answer Predictor(和Visual Verifier)的输入是来自VCC和ACP(对于是/否问题为CE)对训练数据的预测。 在训练过程中,我们对问题分类器使用基本事实标签表示是/否和非是/否问题。 在测试过程中,我们首先运行问题分类器将问题分类为是/否和非是/否。 并将问题输入各自的模块以获取对测试集的预测。