视觉问题回答(VQA)研究分为两个阵营:第一个关注需要自然图像理解的VQA数据集,第二个关注测试推理的合成数据集。一个好的VQA算法应该同时能够实现,但只有少数VQA算法用这种方法进行测试。我们比较了在覆盖这两个领域的8个VQA数据集上的五种最先进的VQA算法,为了使比较公平,所有的模型都尽可能地标准化了,例如,它们使用相同的视觉特征、答案词汇等。我们发现这些方法并不能推广到这两个领域。为了解决这个问题,我们提出了一种新的VQA算法,它可以在这两个领域上竞争或超过最先进的算法。
正确回答这些问题需要很多能力,包括对象定位、属性检测、行为分类、场景理解、推理、计数以及更多。很多表现好的算法仅仅利用了偏见和表面相关性,之后的自然图像数据集试图解决此问题,VQA v2通过对每个问题加入互补图像和不同的答案减少了一定的语言偏见;TDIUC分析了多种问题和很少答案的泛化;CVQA测试了概念组合性;VQA CP v2测试了当训练和测试分布不同时的表现。
虽然之后的自然图像数据集减少了偏见,但这里的绝大多数问题没有严格测试推理技能。创建了几个合成数据集作为一种补救措施,它们包含有着挑战性问题,即能测试多步推理、计数和逻辑推理的简单视觉场景。为正确评估算法的鲁棒性,这些数据集的创建者认为算法应该在两个领域内测试。
然而,几乎所有最近的论文只报告了在一种领域上的表现,CLEVR上的最佳算法没有在自然图像VQA数据集上测试,反之亦然。我们在八个数据集上测试了五种最先进VQA系统,发现大多方法并没有在两个领域内表现好(图1)。我们提出一种新模型,在所有的评估数据集上竞争最先进的模型。
主要贡献:(1)在8个数据集上对五种最先进算法严格比较,发现许多算法并不能跨领域进行推广。(2)VQA算法通常使用不同的视觉特征和答案词汇,使很难评估性能提高,我们努力标准化跨模型的组件,如使用相同视觉特征比较所有算法,这需要提高合成场景的方法来使用区域建议。(3)大多VQA算法在泛化测试中的表现很差,表明这些方法仍然在利用数据集偏见。(4)我们描述了一种新的算法,在所有数据集上与最先进的方法媲美,总体表现最好。
VQA数据集的统计数据如下。
VQA v1数据集有多种语言偏见,如一些问题与特定答案严重相关,VQAv2存在其它语言偏见,如推理问题与检测问题相比比较罕见。TDIUC尝试将问题分为12种类型,有评估问题类型泛化的指标。CVQA重新分割VQAv1,以测试训练集中未见过的概念组成的泛化,测试了以看不见的方式组合以前看到的概念能力。VQA-CPv2重新组织了VQAv2,每种问题类型的答案分布在训练和测试中不同。CLEVR是一个合成数据集,包含简单几何形状的视觉场景,旨在测试合成语言和基本的视觉推理,其中的问题通常需要长链的复杂推理,其中问题被分为五个任务:查询属性、比较属性、存在、计数和整体比较,所有的问题都通过编程生成,所以创建CLEVR-Humans是为提供人类生成的问题,以测试对自由形式问题的泛化。 CLEVR-CoGenT测试了处理看不见的概念组合和记住旧的概念组合的能力,分为CoGenT-A和CoGenT-B,具有相互排斥的形状+颜色组合,如果在CoGenT-A上训练的模型在没有微调的情况下在CoGenT-B上表现良好,它表明了对新组成的泛化,如果在CoGenT-B上进行微调的模型在CoGenT-A上仍然表现良好,这表明它能够记住旧的概念组合,这些数据集中的问题比CVQA中的大多数问题更为复杂。
我们提出了VQA的多模态嵌入网络的循环聚合模型(RAMEN),它被设计为一个概念上的简单架构,它可以适应自然场景的复杂性,也能够回答需要复杂的组合推理的问题,这些问题出现在像CLEVR这样的合成数据集中。如图2所示,RAMEN分三个阶段处理视觉和问题特征:
1.视觉和语言特征的早期融合:视觉和语言特征之间的早期融合和/或使用语言对视觉特征的早期调节已被证明有助于组合推理。受这些方法的启发,我们提出了通过空间局部视觉特征与问题特征的早期融合。
2. 通过共享投影来学习双模态嵌入:连接的视觉+问题特征通过共享网络传递,产生空间局部的双模态嵌入。这一阶段可以帮助网络学习视觉和文本特征之间的相互关系。
3. 学习到的双模态嵌入的循环聚合:我们使用双向门控循环单元bi-GRU)聚合整个场景的双模态嵌入,以捕获双模态嵌入之间的相互作用。最后的向前和向后状态基本上需要保留回答这个问题所需的所有信息。
虽然最近最先进的自然图像VQA模型使用注意力或双线性池机制,但RAMEN能够在没有这些机制的情况下执行比较性的性能。同样地,与最先进的CLEVR模型相比,RAMEN没有使用预定义的模块或推理细胞,但我们的实验证明了它能够进行组合推理。
RAMEN的输入是一个问题嵌入q和一组N区域建议ri,每个ri表示视觉外观特征和空间位置。RAMEN首先聚合每个建议和问题向量,然后进行批归一化:
然后将所有N个ci向量通过一个函数F(ci),该函数混合特征产生一个双模态嵌入bi=F(ci),其中F(ci)使用具有残余连接的多层感知器(MLP)建模。
接下来,我们通过将每个双模态嵌入与原始问题嵌入连接起来,并聚合集合,使用:
其中,函数A使用bi-GRU建模,A的输出由正向和向后GRU的最终状态的连接组成。我们将a称为RAMEN嵌入,然后发送到一个预测答案的分类层。虽然RAMEN比最近的VQA模型更简单,但我们证明,与更复杂的模型不同,RAMEN在不同的数据集之间具有竞争力。
输入表示:问题词由预训练过的GloVe向量初始化为300维嵌入,通过GRU处理获得一个1024维问题嵌入;每个区域建议由视觉特征连接空间信息组成,视觉特征由基于Faster R-CNN的bottom-up结构产生的2048维CNN特征,空间信息是每个区域或分为16*16的(x,y)坐标网格,然后将其扁平形成一个512维向量。
模型配置:投影函数F被建模为一个4层的MLP,具有1024个单元,具有旋转的非线性激活函数,它在第2、第3和第4层有残余连接。聚合器A是一个单层具有1024维隐藏状态的bi-GRU,因此前向和后向状态的连接产生了一个2048维的嵌入,这种嵌入通过一个2048维的全连接的交换层进行投影,然后是一个输出分类层,在数据集中每个可能的答案有一个单元。
UpDn:使用bottom-up机制生成来自Faster RCNN的对象建议,top-down机制预测这些建议的注意力分布,使用问题预测图像区域的注意力权重。
问题条件图(QCG):将图像表示为图,其中来自bottom-up区域建议的对象级特征作为节点,编码问题为条件的区域之间的交互作为边。对于每个节点,QC-Graph选择了一个边连接最强的节点的邻域,从而产生一个问题特定的图结构。该结构由一个补丁算符进行处理,以执行空间图卷积。选择这个模型背后的主要动机是检验所提出的图表示和操作对组合推理的有效性。
双线性注意力网络(BAN):通过考虑所有区域建议(视觉通道)与所有问题单词(文本通道)之间的交互作用来融合视觉和文本模式。与双注意机制不同,BAN处理所有通道之间的相互作用。它可以被认为是低秩双线性池化方法的一种推广。在VQA v2的test-std分割上实现70.35%的注意力,是已发表的最佳结果之一。
关系网络(RN):将每一对区域建议,嵌入它们,并总结所有的N2对嵌入,以产生一个编码对象之间关系的向量。这种成对的特征聚合机制支持组合推理,然而,RN的计算复杂度随着对象数量的增加而二次增加,使得当对象数量较大时运行成本昂贵。最近有人尝试通过减少输入给RN[35,2]的输入对象的数量来减少成对比较的数量。
记忆、注意力和组合(MAC)网络:使用自动学习执行基于注意力的推理的计算单元。与模块化网络[7,18,8]需要预定义的模块来执行预先指定的模块推理功能不同,MAC直接从数据中学习推理机制,每个MAC单元维护表示推理操作的控制状态和作为推理操作的结果的内存状态。它有一个类似计算机的架构,具有读、写和控制单元。在CLEVR数据集上对MAC进行了评估,并报告了具有挑战性的计数和数值比较任务的显著改进。
为对模型公平比较,我们对所有算法所有数据集使用同样的视觉特征,具体使用具有一个ResNet-101后端的Faster R-CNN模型的区域建议生成器产生的2048维bottom-upCNN特征,将建议数量固定在36个。
保持兼容性:UpDn,QCG和BAN都是针对区域建议进行运作的,对于MAC和RN,我们需要修改输入层来接受bottom-up特征,而不是卷积特征图。对于MAC,我们用bottom-up特征的线性投影来代替初始的二维卷积运算,对于RN,我们移除了初始的卷积网络,并直接连接了以问题嵌入为输入的bottom-up特征。在这些变化后,两种模型的性能可与使用学习到的卷积特征图作为输入的版本相比较,在CLEVR验证集上,MAC达到98%,RN达到95.97%。
本节我们演示了当前VQA算法无法推广到自然和合成的数据集中,并表示RAMEN在所有数据集上表现最好。我们还对所有六种算法的偏见性、组合性和泛化性进行分析。表2提供在所有八个数据集上的六种算法的主要结果。在CLEVR数据集使用简单准确率,TDIUC上平均类型,在VQA v1、VQA v2、CVQA和VQACPv2上10-choose-3。图3给出了RAMEN与其它模型相比的一些例子。
跨VQA数据集的泛化:RAMEN在TDIUC和CVQA上效果最高,是VQAv1、VQAv2、VQACPv2、CVQA和所有的CLEVR数据集上效果第二好的模型,平均而言、它在数据集上得分最高,表明它可以在自然数据集和测试推理的合成数据集上进行泛化。BAN的平均得分次高,BAN适用于自然图像数据集,在VQAv1、VQAv2和VQACPv2上优于其他模型,然而,BAN表现出的组合推理能力有限。尽管RABEN在概念上比BAN简单的多,但在CLEVR上的表现超过BAN6%,在CLEVR-CoGenT-B上高出10%。在所有的组合推理测试中,RAMEN都在MAC的1.4%以内。UpDn和QCG在CLEVR上表现不佳。
跨问题类型的泛化:我们使用TDIUC来研究问题类型的泛化。TDIUC有多个精度度量,mean-per-type(MPT)和归一化mean-per-type(N-MPT)补偿偏见。如表3所示,所有方法的简单准确率都超过82%,然而,MPT和NMPT的得分都低了13-20%,较低的MPT分数表明,所有的算法都在努力推广到多个任务。RAMEN的MPT最高,其次是BAN。对于所有的算法,“对象存在”、“对象识别”和“场景识别”是最简单的任务,所有方法的准确率都超过84%;然而,这些任务都有相对大量的训练数据(各有60K-657KQA对),所有方法在“运动识别”(31KQA对)上均表现良好,准确率超过93%,但在概念上相似的“活动识别”任务(8.5KQA对)上均表现不佳,准确率低于62%。这表明了无法用较少的例子泛化到问题类型。为了强调这一点,TDIUC提供标准化MPT(N-MPT)通过考虑答案频率来衡量对罕见答案的泛化。对于所有模型,标准化和非标准化分数之间的差异都很大,RAMEN的差距最小,表明RAMEN最能抵抗分布偏差,而BAN的差距最大。
新概念组合的泛化:我们使用CVQA和CLEVR-CoGenT-B来评估概念的组合性。如表2所示,CVQA上的分数低于VQAv1,这表明所有的算法在以新的方式组合概念时都很困难。MAC的性能下降最大,这表明它的推理单元不能有效地组成真实世界的视觉语言概念。
为了评估在合成数据集上推广到新概念组成的能力,我们在CLEVR-CoGenT-A的训练分割上训练模型,并在没有微调的情况下对验证集进行评估。在[44]之后,我们从“B”的验证集中获得一个测试分割,并在“B”上没有微调的情况下报告性能。所有算法的性能都有大幅下降。与CVQA的结果不同,MAC的性能下降更小。同样,RAMEN的性能下降幅度相对较小。
在VQACP v2的变化先验的性能:所有算法在变化先验下的性能都有很大下降,表明,要使VQA算法克服语言和视觉先验,还有很多的工作要做。
计数和数值比较:对于CLEVR,计数和数字比较(“等于整数”、“大于”和“小于”)是跨算法中最具挑战性的任务,如表4所示。MAC在这些任务上表现最好,其次是RAMEN。除了MAC和QCG之外的算法显示了“小于”和“大于”问题类型之间存在很大的(>4.8%)差异,这需要类似的推理类型。这种差异在RN中最为明显(9.13%),表明在语言理解方面存在困难。BAN使用一个计数模块[54];然而,它在CLEVR的计数任务上的性能仍然比MAC低9%。所有的算法也都难以在自然图像中进行计数。尽管TDIUC有超过164K的计数问题,但所有方法在这些问题上的得分都低于62%。
其它的CLEVR任务:如表4所示,除数字比较外,RAMEN在所有任务上的表现与MAC相比都在0.03-1.5%以内。UpDn和QCG是在所有查询类型上性能最差的模型。除了QCG之外,所有的模型都发现它很容易回答关于对象属性和存在性的查询。除了UpDn和QCG之外的模型在需要比较这些属性的属性比较问题上表现良好。令人惊讶的是,BAN找到了属性比较,这需要更多的推理,比更简单的属性查询任务更容易。我们在没有微调的情况下展示了CLEVR-Humans上的结果,以检验如果算法只在CLEVR的词汇表上进行训练,它们处理自由形式语言的效果。BAN的泛化效果最好,其次是RAMEN和RN。
表5给出了几种测试RAMEN成分贡献的消融研究的结果。我们发现,早期融合对RAMEN的性能至关重要,去除它会导致CLEVR的准确率下降近20%,而VQAv2的准确率下降近4%。去除晚期融合对CLEVR和VQAv2影响不大。
我们还探索了与使用平均池相比于使用bi-GRU用于聚合的效用,并发现这导致了两个数据集的性能下降。我们认为,循环聚合有助于捕获双模态嵌入之间的交互作用,这对推理任务至关重要,而且它还可以通过执行一种非最大抑制的形式来帮助删除重复建议。
通过设计的透明度网络(TBD)通过使用地面真实函数程序来训练网络,在CLEVR上实现了99.1%的精度,对自然的VQA数据集是不可用的。神经符号VQA(NS-VQA)在CLEVR上的得分为99.8%,但使用问题解析器来分配功能模块和高度专门基于分割的CNN特征,他们没有进行消融研究来确定这些视觉特征的影响。我们比较的所有模型都不能访问这些额外的资源。
通过使用来自其它VQA数据集的额外数据和集成,在VQAv2上的结果可以显著改善,例如2018年挑战的获胜者使用了来自VisualDialog[11]的对话作为额外的问答对和30个模型的集合。这些增强功能可以应用于我们评估的任何模型,以提高性能。VQACPv2的结果也可以使用专门的架构进行改进,例如使用对抗性正则化[46]的GVQA[4]和UpDn。然而,它们在VQACPv2上的性能仍然很差,采用对抗性正则化的UpDn的准确率达到42.04%,比非正则化模型仅提高了2.98%。
我们进行了第一个系统的研究,以检验在合成数据集上工作的VQA系统是否推广到真实数据集,反之亦然。这是我们项目的最初范围,但当我们发现没有一种方法在数据集上有效时,我们感到震惊。这促使我们创建一个新的算法,尽管RAMEN比许多算法更简单,但拉面可以竞争甚至超过其他方法。我们认为,一些最先进的架构可能被过度设计,利用了它们最初测试的领域中的偏差,导致在其他数据集上测试时的性能下降。这导致我们质疑,在一个特定的数据集上使用高度专门的机制是否会导致该领域取得重大进展,因为我们概念上更简单的算法在没有这种机制的自然和合成数据集上都具有竞争力。
我们提倡开发一个单一的VQA模型,它在广泛的挑战中表现得很好。在持续学习范式中训练该模型将评估前向和后向转移[17,27,42]。另一个有趣的方法是将VQA与视觉查询检测[1]等相关任务相结合。无论如何,现有的算法,包括我们的算法,在展示视觉语言概念的理解和推理方面还有很长的路要走。从CVQA和VQACPv2上的大幅性能下降可以证明,目前的算法在学习成分概念方面表现很差,并且受到这些数据集的偏差的影响,这表明依赖于表面相关性。我们观察到,仅为合成的封闭世界场景开发的方法往往无法处理不受约束的自然图像和问题。尽管VQAv2和CLEVR的性能在这些基准测试上正接近人类水平,但我们的结果显示VQA还远未得到解决。我们认为,未来的工作应该集中于创建一个跨领域工作良好的模型。在一个通用的训练集上训练一个数据集,然后在多个测试集上评估它将是很有趣的,每个测试集要求不同的技能集。这样做将有助于寻找一个能够控制它们全部的VQA模型。
我们的工作努力为VQA算法的期望设定一个新的标准:在自然场景中的良好性能和具有挑战性的综合基准测试。我们希望我们的工作将带来VQA未来的进步。