Don’t Just Assume; Look and Answer:Overcoming Priors for Visual Question Answering阅读笔记

许多研究发现,目前的视觉问题回答(VQA)模型在很大程度上是由训练数据的表面相关性驱动的,缺乏足够的图像基础。我们提出了一种新的VQA设置,即针对每种题型,训练和测试集都有不同的答案先验分布。提出了VQA v1和VQA v2数据集的新分割,称之为改变先验下的可视化问题回答(VQA-CP v1和VQA-CP v2)。
1、文章引入
先前的工作所研究的模型当面对一个困难的学习问题时,通常诉诸于锁定训练数据中的语言先验,以至于忽略图像。(比如问题为“……是什么颜色”时回答“白色”,问题为“是……吗?”时回答“是的”。)
为了解决这个问题,本文通过重新组织各个VQA数据集的训练集和验证集拆分来创建这些新的拆分,以使每种问题类型(“多少”,“什么颜色”等)的答案分布在测试分块与训练分块的设计上是不同的。需要注意的是:本文不会在训练和测试之间更改基本感知信号(图像)的分布,而只是更改训练和测试之间每种问题类型的答案分布。
Don’t Just Assume; Look and Answer:Overcoming Priors for Visual Question Answering阅读笔记
图一:现有的VQA模型,如SAN,倾向于在训练集中依赖于很强的语言先验,例如,问题类型为(what color is the’, ‘is the person’)的先验答案为(‘white’, ‘no’)。因此,当答案(‘black’, ‘yes’)不是大多数答案时,他们的表现会明显下降。本文提出了一个新的模型(GVQA),它建立在SAN之上,明确地将视觉概念建立在图像上,因此在训练和测试之间的先验不匹配的情况下显著优于SAN。
提出一个新颖的视觉接地问答(GVQA)模型,该模型包含归纳偏见和限制,在体系结构中专门设计用于防止主要依赖于先验的训练数据来作弊。GVQA受到直觉的启发,认为VQA中的问题提供了两个关键信息:
(1)应该识别什么? 或者需要推理图像中的哪些视觉概念(例如,“盘子是什么颜色?”需要查看图像中的盘子);
(2)应该回答些什么? 或合理答案的空间是多少(例如,“什么颜色…?”问题需要用颜色名称回答)。
2、VQA-CP : Dataset Creation and Analysis
VQA-CP v1和VQA-CP v2分割使得测试数据中的每个问题类型的答案分布(“有多少”、“什么颜色”等)与训练数据不同。这些分割是通过分别重组VQA 和VQA v2数据集的训练和验证分割而产生的。
**Question Grouping:**有相同问题类型的问题(问题的前几个词——‘What color is the’, ‘What room is’等等)和相同的ground truth答案被组合在一起。例如,{‘是什么颜色的狗?,“白色”}和{盘子是什么颜色的?,“白色”}被放在一起,而{“狗是什么颜色的?”’, ’ 黑色’}被放在不同的组中。这个分组是在合并来自VQA训练集和验证集分割的QA对之后完成的。使用VQA数据集中提供的问题类型。
Greedily Re-splitting: 贪婪的方法用于将数据点(图像,问题,答案)重新分配给VQA-CP训练集和测试集拆分,以便最大程度地覆盖VQA-CP训练集拆分中的VQA-CP测试集概念,同时确保提出问题在测试集和训练集拆分之间不会重复使用具有相同问题类型和相同ground truth答案的问题。在此过程中,遍历上面创建的所有组,并且在每次迭代中,除非当前组已分配给VQA-CP训练集,否则将其添加到VQA-CP测试集。始终维护一组属于VQA-CP测试集中的组的概念,这些概念尚未被VQA-CP训练集中的组所涵盖。然后,从尚未分配给任何拆分的数据集中选择涵盖该集中大多数概念的组,并将该组添加到VQA-CP训练集中。当测试集约有数据集的1/3时停止,并将其余组(尚未分配给任一集合)添加到训练集中。
图2显示了VQA-CP v1数据集的训练集(左)和测试集(右)的几个问题类型,如“什么颜色”、“什么运动”、“多少”等的答案分布。可以看到,对于给定的问题类型,答案的分布是显著不同的。例如,在VQA-CP v1的训练集中,“什么运动”的问题类型中,“网球”是最常见的答案,而在测试集中,“滑雪”是最常见的答案。然而,对于VQA v1数据集,给定问题类型的分布在训练集和验证集之间是相似的(例如,‘tennis’是train和val最常见的答案)。
Don’t Just Assume; Look and Answer:Overcoming Priors for Visual Question Answering阅读笔记
3、Benchmarking VQA Models on VQA-CP
比较现有的VQA模型在VQA-CP测试分区上(在各自的VQA- cp训练分区上)的性能和它们在VQA- val分区上(在各自的VQA训练分区上)的性能。我们发现,与原始的VQA设置相比,在新的更改先验设置下,所有被测试的现有模型的性能显著下降。

Don’t Just Assume; Look and Answer:Overcoming Priors for Visual Question Answering阅读笔记
4、GVQA模型
虽然以前的VQA方法直接将图像问题元组(I,Q)映射到答案(A),但GVQA将VQA的任务分为两个步骤:LOOK定位需要回答问题的物体/图像块,识别图像块中的视觉概念;ANSWER确定问题中合理答案的空间,并通过考虑哪些概念合理,从已识别的视觉概念集中返回适当的视觉概念。例如,当询问GVQA“狗是什么颜色?”时,它答案应该是颜色名称,在与狗对应的图像中定位色块,识别各种视觉概念,例如“黑色”,“狗” ,“毛茸茸”,最后输出概念“黑色”,因为它是与颜色相对应的已识别概念。 GVQA的另一个新颖之处在于,它将回答是/否的问题视为一种视觉验证任务,即,它可以验证问题中提到的概念在视觉上是否存在。例如,当GVQA被问及“该人是否穿着短裤吗?”时,它识别出需要验证其视觉状态的概念是“短裤”,并根据其是否识别短裤来回答“是”或“否”。
Don’t Just Assume; Look and Answer:Overcoming Priors for Visual Question Answering阅读笔记
GVQA如图3所示。给定一个问题和一个图像,问题首先经过问题分类器,然后被分为 “是/否”“非是/否”。对于非yes/no问题,**的GVQA组件有-:1)视觉概念分类器(VCC),它以问题提取器给出的CNN和Qmain提取的图像特征作为输入;2)答案聚类预测器(ACP),它的输入是整个问题。VCC和ACP的输出被馈给答案预测器(AP), AP产生答案。对于是/否的问题,被**的GVQA组件是-:1)VCC(类似于non yes/no), 2)概念提取器(CE),它的输入是整个问题。VCC和CE的输出被输入视觉验证器(VV),由视觉验证器预测“是”或“否”。
Visual Concept Classifier (VCC) 负责定位回答问题所需的图像块,并生成与所定位图像块相关的一组视觉概念。例如,给定“汽车旁边的公交车是什么颜色?”,VCC负责参加公交车区域,然后输出一组概念,例如“公交车”和属性,例如颜色,数量等。它由一个基于堆积式注意力网络的2跳式注意力模块和一个二进制概念分类器组成。图像以VGG-Net 的最后池化层的**形式馈送到注意力模块。为了防止记住每种问题类型的先验答案,首先将问题通过语言提取器传递,在删除问题类型子字符串(例如’What kind of’)后输出字符串(称为Qmain)。Qmain使用LSTM嵌入,然后输入到注意力模块中。多跳注意力产生了来自VGG-Net的图像区域特征的加权线性组合,权重对应于该区域的注意力程度。接下来是一组全连接层(FC)和一叠约2000个二进制概念分类器,这些分类器覆盖了训练集中约95%的概念。对于每个概念,VCC都经过二进制逻辑损失训练。
VCC概念集是通过从训练的QA对中提取与答案相关的对象和属性并保留最频繁的对象和属性来构造的。然后,将对象概念分组为单个组,其中,在Glove嵌入空间中使用Kmeans聚类将属性概念聚类为多个小组,总共C个聚类。概念聚类是为了生成训练概念分类器所需要的负样本(对于一个概念分类器,正样本是那些在问题或答案中包含该概念的样本)。由于问题不显示图像中对象和属性的缺失,因此使用以下假设生成负面数据:(1)回答问题所需照看的图像块中最多包含一个主要对象(2)每个对象具有每个属性类别中最多有一个主要属性(例如,如果公共汽车的颜色是红色,则可以用作所有其他颜色的反例)。给定这些假设,当群集中的某个概念被视为肯定时,该群集中的所有其他概念均被视为否定。请注意,在训练过程中,对于每个问题,只有所有概念簇中的一个子集被**,并且只有这些**的集群才导致损失。
Question Classifier使用GloVe嵌入层、LSTM层和FC层将输入问题Q分为Yes-No和非Yes-No两类,Yes-No的问题输入CE其余的输入ACP。
Answer Cluster Predictor (ACP) 识别期望答案的类型(如对象名称、颜色、数字等)。它只在非yes/no问题时被**。它包括一个GloVe嵌入层和一个LSTM,然后是FC层,它们将问题分类到一个C集群中。通过将每个答案嵌入到GloVe空间中,对(1000)个答案类进行K-means聚类来创建ACP的簇。
Concept Extractor (CE) 使用基于POS标签的提取系统,从图像中需要验证视觉存在的yes/no问题中提取问题概念。例如,“圆锥体是绿色的吗?”’,提取’ green '。将提取的概念嵌入GloVe空间,然后嵌入FC层,将此嵌入转换为与VCC概念相同的空间,以便VV将它们组合在一起。
Answer Predictor (AP) 给定VCC预测的一组视觉概念和ACP预测的一个概念类别,AP的作用是预测答案。ACP类对应于VCC概念簇,有了这种对齐,只需将ACP维度复制到与各自VCC集群维度相关的位置,就可以轻松地将ACP的输出映射到与VCC输出具有相同维度的向量中。在VCC嵌入之后,再加上FC层和softmax**,最终得到的ACP嵌入元素被添加到VQA答案类别中,生成一个超过998个VQA答案类别(前1000个训练答案减去“是”和“不是”)。
Visual Verifier (VV) 给定VCC预测的一组视觉概念,以及需要验证其视觉存在的概念的嵌入(由CE给出),VV的作用是验证VCC预测中的概念存在/不存在。具体地说,CE嵌入的元素被添加到VCC嵌入中,然后是FC层和softmax**,产生了两种类型的分布——“是”和“不是”。
Model Training and Testing首先使用聚类标签(用于ACP)和可视化概念标签(用于VCC)在训练集上训练VCC和ACP。答案预测器(和可视化验证器)的输入是VCC和ACP(是/否类别时是CE)对训练数据的预测。在训练过程中,对问题分类器中的yes/no和非yes/no问题使用ground truth标签。在测试过程中,首先运行问题分类器,将问题分为yes/no和非yes/no。并将问题输入各自的模块,以获得对测试集的预测。
5、实验结果
Don’t Just Assume; Look and Answer:Overcoming Priors for Visual Question Answering阅读笔记
GVQA与SAN在VQA-CP数据集上的性能比较。
Don’t Just Assume; Look and Answer:Overcoming Priors for Visual Question Answering阅读笔记
在相应的训练集训练时,GVQA和SAN对VQA v1和VQA v2的结果。