深度学习神经网络学习笔记-多模态方向-07-Don’t Just Assume; Look and Answer: Overcoming Priors for Visual Question Answ

摘要

大量研究发现,如今的视觉问答(VQA)模型在很大程度上是由训练数据中的表面相关性驱动的,并且缺乏足够的图像基础。为了鼓励面向后者的模型的发展,我们为VQA提出了一种新的设置,其中对于每种问题类型,训练和测试集都有不同的答案的先验分布。具体来说,本文提出了VQA v1和VQA v2数据集的新划分,称为先验变化下的视觉问题回答(分别为VQA-CP v1和VQA-CP v2)。首先,我们在这个新设置下评估了几个现有的VQA模型,并表明它们的性能与原始VQA设置相比显著下降。其次,本文提出了一种新的基于视觉的问答模型(GVQA),该模型在架构中包含归纳偏差和限制,专门设计来防止模型通过主要依赖训练数据中的先验来“作弊”。具体来说,GVQA明确地将对图像中存在的视觉概念的识别与对给定问题的合理答案空间的识别分离开来,使模型能够在不同的答案分布中更鲁棒地泛化。GVQA是在现有的VQA模型——堆叠注意力网络(SAN)的基础上构建的。我们的实验表明,GVQA在VQA-CP v1和VQA-CP v2数据集上的表现都明显优于SAN。有趣的是,它在一些情况下也优于更强大的VQA模型,如多模态紧凑双线性池化(MCB)。当在原始VQA v1和VQA v2数据集上进行训练和评估时,GVQA提供了与SAN互补的优势。最后,GVQA比现有的VQA模型更透明,可解释性更强。

介绍

自动回答关于视觉内容的问题被认为是人工智能的最高目标之一。视觉问答(VQA)提出了一个丰富的挑战集合,跨越不同的领域,如计算机视觉,自然语言处理,知识表示和推理。在过去的几年里,VQA受到了很多关注——已经策划了许多VQA数据集[5,12-14,22,26,30,40,42],并开发了各种深度学习模型[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数据集的train和val分割来创建的,这样每个问题类型(“多少”、“什么颜色”等)的答案分布在测试分割中的设计与训练分割(第3节)是不同的。需要注意的一件重要事情:我们没有改变训练和测试之间潜在感知信号(图像)的分布。跨不同领域的图像泛化(例如COCO图像vs. web cam图像)是一个活跃的研究领域,而不是这项工作的重点。我们改变了训练和测试之间每种问题类型的答案的分布。我们的假设是,期望以“正确的理由”(图像基础)回答问题的模型在测试时识别“黑色”颜色是合理的,即使“白色”是“什么颜色是……”的最受欢迎的答案。? '的问题在列车组图1。
为了证明我们的VQA- cp划分的难度,我们报告了几个现有的VQA模型[3,11,24,39]在这些划分上的性能。我们的关键发现是,与原始分割相比,所有经过测试的现有模型在新分割上进行训练和评估时的性能显著下降(第4节)。这一发现为文献中关于VQA模型行为的越来越多的证据提供了进一步的证实和新的见解[1,14,18,40]。
我们还提出了一种新的基于视觉的问答(GVQA)模型,该模型在架构中包含归纳偏差和限制,专门设计来防止它通过主要依赖训练数据中的先验来“作弊”(第5节)。GVQA的动机是基于VQA中的问题提供两个关键信息的直觉:
(1)应该识别什么?或者需要对图像中的哪些视觉概念进行推理才能回答问题(例如,“盘子是什么颜色?”,需要看图像中的盘子),
(2)应该说什么?或者合理答案的空间是多少(例如,“what color…?”,问题需要用颜色的名称来回答。
我们的假设是,没有明确区分这两种角色的模型——这是文献中大多数现有模型的情况——往往会混淆这两种信号。他们最终从问题-答案对中学习到,一个车牌的合理颜色是白色,并且在测试时,比问题所涉及的图像中的特定车牌更依赖于这种相关性。GVQA明确地将视觉概念识别从答案空间预测中分离出来。

GVQA是基于现有的VQA模型——堆叠注意力网络(SAN) [39] 构建的。我们的实验表明,GVQA在VQA-CP v1和VQA-CP v2数据集(第6.1节)上都显著优于SAN。有趣的是,它在一些情况下也优于更强大的VQA模型,如多模态紧凑双线性池化(MCB) 11 。我们还表明,当在原始VQA v1和VQA v2数据集上进行训练和评估时,GVQA提供了与SAN互补的优势(第6.3节)。最后,GVQA比现有的VQA模型更透明,因为它产生了可解释的中间输出,不同于大多数现有的VQA模型(第6.4节)。

相关工作

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开发了神经模块网络,这些模块由不同的模块组成,每个模块专门用于特定的任务。这些模块可以根据问题结构组合在一起,为给定的问题创建一个模型架构。我们报告了这个模型[3]在我们的VQA-CP数据集上的性能,发现它的性能从原始的VQA设置到提议的CP设置(第4节)有显著下降。
零样本VQA也在[34]中进行了探索。他们研究了VQA的设置,其中测试问题(问题字符串本身或多个选择)包含至少一个未见过的单词。[29]建议回答关于未知物体的问题(例如,“这只狗是黑白的吗?”在训练问题或答案中从未出现过“狗”。这些是我们工作的正交努力,因为我们的重点不是研究在测试中是否可以识别未见过的单词/概念。相反,我们感兴趣的是通过评估模型对每种问题类型的不同答案分布的泛化能力,来研究模型在视觉上的基础程度。在我们的划分中,我们确保在测试期间看到的概念在训练期间尽可能地存在。

VQA-CP:数据集创建和分析

VQA-CP v1和VQA-CP v2分割的创建使得每个问题类型(“有多少”,“什么颜色”等)的答案的分布在测试数据中与训练数据相比是不同的。这些分割是通过重新组织分别1对VQA v1[5]和VQA v2[14]数据集的训练和验证分割来创建的,使用以下程序:
问题分组:具有相同问题类型的问题(问题的前几个字-“什么颜色”,“什么房间是”等)和相同的ground truth答案被分组在一起。例如,{“狗是什么颜色?”,‘白色’}和{'盘子是什么颜色?, ‘白色’}被归为一类,而{'狗是什么颜色的?黑色`}被放在不同的组中。这个分组是在合并来自VQA训练和val分割的QA对之后完成的。我们使用VQA数据集中提供的问题类型。
贪婪地重新划分:使用贪婪方法将数据点(图像、问题、答案)重新分配到VQA-CP训练集和测试集划分中,以最大化VQA-CP测试概念在VQA-CP训练集划分中的覆盖率,同时确保具有相同问题类型和相同真值答案的问题在测试集和训练集划分之间不会重复。在这个过程中,我们循环遍历上面创建的所有组,并且在每次迭代中,我们添加

在这里插入图片描述
当前组到VQA-CP测试拆分除非该组已经分配到VQA-CP列车拆分。我们总是维护一组属于V2 QA-CP测试划分中的组的概念,这些概念还没有被VQA-CP训练划分中的组所覆盖。然后,我们从尚未被分配到任何一个分割的组中选择覆盖集合中大多数概念的组,并将该组添加到VQA-CP训练集分割中。当测试划分有大约1/3的数据集时,我们停止,并将剩余的组(尚未分配到任何一个划分)添加到训练集划分。
上述方法在列车分割VQA-CP v1 (VQA-CP v2为99.01%)的测试问题概念覆盖率为98.04%(删除停词后问题中所有唯一词的集合-“是”,“是”,“The”等),以及列车分割VQA-CP v1的前1000个答案的测试答案覆盖率为95.07% (VQA-CP v2为95.72%)。VQA-CP v1 train由∼118K图像、∼245K问题和∼250万个答案组成(∼121K图像、∼438K问题和∼4.4万个答案对于VQA-CP v2 train来说)。VQA-CP v1测试由~ 87K图像、~ 125K问题和~1.3万个答案组成(VQA-CP v2测试的~ 98K图像、~ 220K问题和~ 2.2万个答案)。
图6显示了VQA-CP v1数据集的train(左)和test(右)分割的“什么颜色”、“什么运动”、“多少”等几种问题类型的答案的分布(参见附录I对VQA-CP v2数据集的分析)。我们可以看到,对于给定的问题类型,答案的分布是显著不同的。例如,在VQA-CP v1 train split中,“网球”是“什么运动”问题类型中最常见的答案,而在中,“滑雪”是相同问题类型中最常见的答案

注释:2对于一个给定的组,概念是问题类型中出现的所有唯一单词的集合,以及属于该组的真实答案。

在这里插入图片描述
VQA-CP v1测试划分。然而,对于VQA v1数据集,给定问题类型的分布在train和val分割[5]上是相似的(例如,“网球”是train和val分割中最常见的答案)。在VQA-CP v1分割中,也可以看到其他问题类型的相似差异——“are”,“which”。

在VQA- cp上对VQA模型进行基准测试

为了证明VQA- cp划分的难度,报告了以下基线和现有VQA模型在VQA- cp v1和VQA- cp v2训练集划分时的性能,并在相应的测试划分上进行了评估。我们将其与在VQA v1和VQA v2训练集分割上训练时的性能进行了比较,并在相应的val分割上进行了评估。结果如表1所示。
per Q-type prior[5]:预测对应问题类型最受欢迎的训练答案(例如,“网球”对于“什么运动……?”的问题)3。
更深的LSTM问题(d-LSTM Q)[5]:仅使用问题预测答案(“盲”模型)。
更深的LSTM问题+归一化图像(d-LSTM Q + norm I)[5]:基线VQA模型。
神经模块网络(NMN)[3]:设计为具有组合性质的模型。
堆叠注意力网络(SAN)[39]: VQA中广泛使用的模型之一。
多模态紧凑双线性池化(MCB)[11]: 2016年VQA挑战赛(on real image)冠军。

3请注意,理想情况下,这个基线在VQA-CP测试集上的性能应该为零,因为给定的问题类型,答案在测试和训练中是不同的。但是,由于数据集中的一些人与人之间的分歧,性能略高(表1)。

所有这些模型的简要描述见附录II。
从表1中,我们可以看到,与原始的VQA设置相比,所有经过测试的现有VQA模型在VQA- CP设置下的性能明显下降。请注意,即使NMN架构是由设计组成的,它们的性能在VQA-CP数据集上也会下降。我们假设这可能是因为他们使用了问题的额外LSTM编码来编码数据集中的先验。还要注意,与其他VQA模型相比,d-LSTM Q + norm I模型的整体性能下降幅度最大,这可能是因为其他模型具有更强大的视觉处理(例如,对图像的注意力)。从表1中另一个有趣的观察是,基于整体性能的模型排名从VQA到VQA- cp发生了变化。对于VQA, SAN的表现优于NMN,而对于VQA- cp, NMN的表现优于SAN。关于不同问题类型的趋势的简要讨论,请参阅附录II。

GVQA模型

我们现在介绍我们的基础视觉问答模型(GVQA)。之前的VQA方法直接将图像-问题元组(I, Q)映射到答案(A),而GVQA将VQA的任务分解为两个步骤:Look定位回答问题所需的对象/图像块并识别出补丁中的视觉概念,answer从问题中识别出似是而非的答案空间,并通过考虑哪些概念是似是而非的,从已识别的视觉概念集合中返回适当的视觉概念。例如,当GVQA被问到“狗是什么颜色的?”,它识别出答案应该是一个颜色名称,在与狗对应的图像中定位patch,识别出‘黑’、‘狗’、‘毛茸茸’等各种视觉概念,最后输出‘黑’这个概念,因为它是与颜色对应的已识别概念。另一个
在这里插入图片描述
GVQA的新奇之处在于,它将回答是/否问题视为视觉验证任务,即验证问题中提到的概念的视觉存在/不存在。例如,当GVQA被问到“这个人穿短裤了吗?”,它识别出需要验证其视觉存在性的概念是“短裤”,并根据它是否识别出图像中的短裤(具体来说,在与“人”对应的patch上)来回答“是”或“否”。
GVQA如图3所示。给定一个问题和一张图像,问题首先经过问题分类器,并被分类为是/否或非是/否。对于非是/否的问题,被激活的GVQA组件是- 1)视觉概念分类器(VCC),它将从CNN提取的图像特征和main 问题提取器给出的q作为输入,2)答案聚类预测器(ACP),它的输入是整个问题。VCC和ACP的输出被输入到产生答案的答案预测器(AP)。对于是/否问题,被激活的GVQA组件是- 1)VCC(类似于非是/否),2)概念提取器(CE),其输入是整个问题。VCC和CE的输出被馈送到预测“是”或“否”的视觉验证器(VV)。我们在下面介绍每个组件的详细信息。
视觉概念分类器(VCC)负责定位回答问题所需的图像块,以及产生一组与所定位的块相关的视觉概念。例如,给定“汽车旁边的公交车是什么颜色的?”, VCC负责关注公交车区域,然后输出一组概念,如“公交车”和属性,如它的颜色、数量等。它由基于堆叠注意力网络([39])的2跳注意力模块组成,其次是一堆二进制概念分类器。图像以activa-的形式馈送到注意力模块

VGG-Net[33]的最后一个池化层的tions。为了防止每个问题类型的答案先验记忆,问题首先通过语言提取器(mainlanguageExtractor),这是一个简单的规则,在删除问题类型子字符串(例如。“什么样的”)。Qmain is使用LSTM嵌入,然后输入到注意力模块。多跳注意力产生来自VGG-Net的图像区域特征的加权线性组合,权重对应于该区域的注意力程度。接下来是一组全连接(FC)层和一堆~ 2000个二元概念分类器,覆盖了训练中看到的~95%的概念。VCC是用每个概念的二进制逻辑损失进行训练的。
VCC概念集是通过从训练QA对中提取与答案相关的对象和属性,并保留最频繁的对象和属性来构建的。对象概念然后被分组到一个单独的组,属性概念在手套嵌入空间[28]中使用K-means聚类聚成多个小组,总共有C个聚类。4 需要概念聚类的目的是生成训练概念分类器所需的负样本(对于概念分类器,正样本是那些在问题或答案中包含该概念的样本)。由于问题并不表示图像中缺失的对象和属性,因此使用以下假设来生成负数据:(1)回答问题所需的出席图像块中最多有一个主对象(2)每个对象最多有一个来自每个属性类别的主属性(例如,如果公交车的颜色是红色,它可以用作所有其他颜色的反例)。考虑到这些假设,当一个概念

注释:我们使用C = 50,因为它比其他值给出更好的聚类结果。此外,凝聚聚类的结果与K-means的性能相似。更多细节见附录III。

一个簇中的概念被视为正类,该簇中的所有其他概念都被视为负类。注意,在训练过程中,对于每个问题,只有所有概念簇的一个子集被激活,只有这些激活的簇对
的损失。
问题分类器使用手套嵌入层、LSTM和FC层将输入问题Q分为2类:是-否和非是-否。是-否问题反馈给CE,其余的反馈给ACP。
答案聚类预测器(ACP)识别预期答案的类型(例如对象名称、颜色、数字等)。它只对非是/否的问题被激活。它由一个Glove嵌入层和一个LSTM组成,其次是FC层,将问题分类到C类之一。ACP的簇是通过在Glove空间中嵌入每个答案,通过对(1000)个答案类进行K-means聚类创建的。
概念提取器(CE)使用基于POS标签的提取系统6从是/否问题中提取问题概念,这些问题的视觉存在需要在图像中验证。例如,“圆锥是绿色的吗?”,我们提取“绿色”。提取的概念嵌入到Glove空间中,然后是FC层,将此嵌入转换到与VCC概念相同的空间,以便它们可以通过VV进行组合。请看下面对VV的描述。
答案预测器(AP):给定VCC预测的一组视觉概念,以及ACP预测的一个概念类别,AP的作用是预测答案。ACP类别对应VCC概念簇(见图3中ACP和VCC的输出类别)。颜色表示对应关系)。给定这种对齐,通过简单地将ACP维度复制到与各自的VCC集群维度相关的位置,ACP的输出可以很容易地映射到与VCC输出相同维度的向量中。产生的ACP嵌入按元素添加到VCC嵌入中,然后是FC层和softmax激活,产生超过998个VQA答案类别的分布(前1000个训练答案减去“是”和“否”)。
视觉验证器(VV):给定一组VCC预测的视觉概念和需要验证其视觉存在性的概念的嵌入(由CE给出),VV的作用是验证VCC的预测中该概念的存在/缺失。具体来说,CE嵌入被逐个元素地添加到VCC嵌入中,然后是FC层和softmax激活,产生两个类别上的分布——“是”和“否”。
模型训练和测试:我们首先使用聚类标签(用于ACP)在列车分割上训练VCC和ACP。

注释:5我们首先使用答案类为ACP创建簇。然后,我们通过在Glove嵌入空间中使用欧几里得距离将每个VCC概念分配给这些ACP集群中的一个来创建VCC集群。
6我们使用NLTK POS标记器。Spacy词性标注器的结果类似。更多细节见附录III。

在这里插入图片描述
表2:GVQA(我们的模型)在VQA-CP数据集上与SAN的性能比较。GVQA的表现始终优于SAN。
以及视觉概念标签(用于VCC)7。回答预测器(和视觉验证器)的输入是来自VCC和ACP(是/否问题情况下的CE)对训练数据的预测。在训练过程中,我们为问题分类器使用是/否和非是/否问题的ground truth标签。在测试时,我们首先运行问题分类器,将问题分类为是/否和非是/否。并将问题输入到各自的模块中,以获得对测试集的预测。具体实施细节请参考附录三。

实验结果

在VQA- cp v1和VQA- cp v2模型准确率上的实验:表2显示了我们的GVQA模型在VQA- cp v1和VQA- cp v2数据集上使用VQA评估指标[5]与SAN(构建GVQA的模型)相比的性能。准确率分为是/否、数字和其他类别。从表2可以看出,在SAN上提出的架构改进(在GVQA中)显示了VQA-CP v1(12.35%)和VQA-CP v2(6.34%)数据集的整体性能的显著提升。值得注意的是,由于GVQA架构的模块化性质,人们可以很容易地将其他注意力模块交换到VCC中。有趣的是,在VQA-CP v1数据集上,GVQA在总体指标上(主要用于是/否问题)也优于MCB[11]和NMN3,尽管它是建立在来自SAN的相对简单的注意力模块之上,并且与MCB中使用的ResNet-152相比,使用的图像特征(VGG-16)相对不那么强大。在VQA-CP v2数据集上,GVQA在总体指标(以及数字问题)上优于NMN,在是/否和数字问题上优于MCB。
为了检查我们特定的VQA-CP分割是否在性能上造成了一些不规则性,我们创建了四组具有不同随机种子的VQA-CP v2分割。这也导致了数据集的很大一部分(84%)在测试划分中被覆盖。结果表明,GVQA在所有四次划分中始终优于SAN,平均改进为7.14%(标准误差:1.36)。请参阅附录IV了解每一次划分的性能。
模型组件问题分类器的性能:在VQA-CP v1测试集上,基于LSTM的问题分类-

注释:7注意,我们不需要额外的图像标签来训练VCC,我们的标签是从QA对中自动提取的。ACP也是一样。

Fier的准确率为99.84%。ACP: Top-1测试准确率为54.06%,答案在属性簇中的问题准确率为84.25%,答案在对象簇中的问题准确率为43.17%。Top-3测试准确率提升至65.33%。请注意,这些精度是使用自动创建的聚类计算的。VCC:所有分类器的加权平均测试F1分数为0.53。每个概念根据正样本的数量进行加权,反映了该概念在测试集中的覆盖率。关于VQA-CP v2数据集的准确度请参考附录V。

GVQA组件的作用

为了评估各种GVQA组件的作用,我们通过将GVQA中的每个组件(表示为“- < component - >”)替换为其传统对应组件,即传统VQA模型中使用的模块(表示为“+ <traditional counterpart - >”),报告实验结果(在VQA- cp v1上)。例如,GVQA - CE + LSTM表示一个模型,其中GVQA中的CE已经被一个LSTM取代。表3展示了结果以及完整的GVQA模型的结果,以供参考。
GVQA - Qmain +Qfull:当整个问题(Qfull)被馈送到VCC(相对于删除问题类型(Qmain)后)时,GVQA的表现为33.55%(总体),比与mainQ相比少了5.68%(绝对)。注意,即使是馈送整个问题,GVQA out-执行SAN,从而表明删除问题类型信息有帮助,但不是GVQA表现更好的主要因素。作为一个额外的检查,我们训练了一个输入是Q而main 不是Q的SAN版本,VQA-CP v2上的结果full显示,这个版本的SAN的性能比原来的SAN好1.36%,但仍然比GVQA(带Q)差4.98%,关于这个版本SAN的详细性能请main参见附录VI。
GVQA - CE + LSTM:我们用LSTM代替CE(它使用VQA损失用视觉验证器(VV)进行端到端的训练)。整体性能下降了11.95%,是/否问题下降了28.76%。这是一个意料之中的结果,因为表2显示,GVQA在是/否问题上的表现明显优于SAN,而CE是是/否管道的一个重要组成部分。
GVQA - ACP + LSTM:我们将ACP替换为LSTM(它使用VQA损失与答案预测器(AP)进行端到端的训练)。整体性能与GVQA类似。但是,ACP的存在使得GVQA变得透明和可解释(参见6.4节)。
GVQA - VCCloss:我们移除VCC损失,并将VCC的输出层作为中间层,其激活被传递给答案预测器(AP),并使用VQA损失与AP进行端到端的训练。整体性能提高了1.72%,其中最大的改进在

在这里插入图片描述
在这里插入图片描述
在其他问题上的表现(3.19%)。这表明,在模型管道之间引入视觉概念(语义)损失是有害的。虽然移除VCC损失和使用VQA损失进行端到端训练可以获得更好的性能,但模型不再透明(参见第6.4节)。使用或不使用VCC损失是一个设计选择,人们会根据所需的准确性与可解释性的权衡做出选择。
GVQA - VCCloss - ACP + LSTM:将ACP替换为在GVQA - vcchurloss s之上的LSTM,使“其他”问题的整体性能提高2.09%,降幅最大(4.94%)(参见表3中的GVQA-VCCloss和GVQA - VCCloss ACP + LSTM行)。这表明,在没有VCC损失的情况下,ACP的帮助显著(与LSTM相比)(并且它的表现类似于有VCC损失的LSTM,如上所示)。此外,ACP还为GVQA增加了可解释性。

VQA v1和VQA v2的实验

我们还在训练集和VQA v1[5]和VQA v2[14]数据集的val分割上训练和评估了GVQA(结果见表48)。在VQA v1上,GVQA达到了51.12%的整体准确率,比SAN低4.74%(绝对)。这个差距并不奇怪,因为VQA v1有完善的繁重的语言先验,现有的模型(包括SAN)可以从训练集“记忆”并在测试集上利用(因为测试集包含与训练集相同的先验),而GVQA的设计不是这样的。随着视觉的提高,像GVQA这样的基础模型可能比利用训练数据的先验的模型表现出更好的性能。此外,这很重要

注释:我们只展示整体和是/否的准确性。请参阅表6的数字和其他类别的表现。

需要注意的是,VQA- cp v1上的增益(GVQA acc - SAN acc)(12.35%绝对)远高于VQA v1上的损失(SAN acc - GVQA acc)(4.74%绝对)。
在VQA v2上,GVQA under的SAN整体表现为3.78%,低于VQA v1上的SAN acc - GVQA acc。并且在是/否问题上,它的表现比SAN高出3.14%。这表明,当先验较弱时(与VQA v1相比,在VQA v2中),GVQA与SAN之间的性能差距减小。我们还在VQA v1和VQA v2数据集上训练和评估了GVQA- VCCloss on,发现它在VQA v1上的表现比GVQA差,在VQA v2上与GVQA相似。所以除了可解释性,GVQA在这些原始的VQA分割上的整体表现优于GVQA-VCCloss。
为了检验GVQA是否具有与SAN互补的优势,我们计算了SAN的oracle和GVQA的性能- oracle (GVQA, SAN),即我们为每个测试实例选择了精度更高的模型预测。从表4可以看出,Oracle (GVQA, SAN)在VQA v1上的整体性能比SAN高7.91% (VQA v2高9.94%),表明GVQA和SAN具有互补优势。另外,请注意,无论是VQA v1还是VQA v2, Oracle (GVQA, SAN)都高于Oracle (SAN, SAN),这表明GVQA的互补优势大于另一种SAN模型(随机初始化不同)。
受此启发,我们在表4中报告了GVQA和SAN集成(GVQA, SAN)的集成性能,其中集成使用每个模型的置信度乘积来组合两个模型的输出。我们可以看到,集成(GVQA, SAN)总体上比集成(SAN, SAN)的VQA v1性能提高了0.35% (VQA v2性能提高了0.51%)。在是/否问题上表现尤其好。我们还发现,对于两个VQA数据集,GVQA- VCCloss with SAN的集成表现都比集成(SAN, SAN)差(准确度请参考附录VII)。因此,除了更透明之外,GVQA是SAN比GVQA- VCCloss更好的补充。

透明度

GVQA的架构设计使得它比现有的VQA模型更透明,因为它产生了可解释的中间输出(VCC、ACP和CE提取的概念串的输出),不像大多数现有的VQA模型。我们在图4中展示了一些来自GVQA的示例预测。我们可以看到,中间输出提供了GVQA为什么要预测它正在预测的内容的见解,从而使系统设计师能够识别错误的原因。这在现有的VQA模型中并不容易做到。图5显示了另外两个例子(一个成功和一个失败),比较和对比了GVQA的中间输出如何帮助解释成功和失败(从而实现有针对性的改进),这是不可能的

在这里插入图片描述
图4:来自GVQA的定性例子。左:我们展示了ACP的前三个答案簇预测(以及每个簇中的随机概念)。对应于ACP预测的每个簇,我们展示了VCC预测的top视觉概念。给定这些ACP和VCC预测,答案预测器(AP)预测正确的答案“棒球”。右:微笑是CE提取的概念,CE在VCC预测中的视觉存在被视觉验证器验证,从而产生“是”作为最终答案。

在这里插入图片描述
图5:左:GVQA的预测(“绿色”)可以这样解释——ACP预测的答案应该是一种颜色。在VCC预测的各种视觉概念中,唯一与颜色有关的概念是绿色。因此,GVQA的输出是“绿色”。SAN错误地预测了“黄色”。与GVQA不同的是,SAN的架构并不利于对其预测的原因进行解释。右:GVQA和SAN都错误地回答了问题。GVQA是不正确的,可能是因为VCC预测的是“黑色”,而不是“灰色”。为了进一步挖掘为什么VCC的预测是不正确的,我们可以看看注意力分布图(如图8所示),它显示,这个人的左腿的注意力在裤子上,而右腿的注意力在袜子(颜色为黑色)上。所以,也许,VCC的“黑色”预测是基于这个人右腿上的注意力。
要做的是SAN和大多数其他现有的VQA模型。更多这样的例子请参见附录VIII。

结论

GVQA是构建视觉上基于设计的模型的第一步。未来的工作涉及开发可以利用两个世界(视觉基础和先验)的最佳的模型,例如,回答一个基于世界先验知识的问题(天空通常是蓝色,草通常是绿色的)当模型对作为视觉基础结果预测的答案的信心较低时。

附录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CSDNXXCQ/article/details/130772947