Advertisement

2019Self-Critical Reasoning for Robust Visual Question Answering自我批判式推理的鲁棒视觉问答

阅读量:

摘要

由于强烈的语言先验,视觉问答深度学习系统往往捕获训练数据中表面的统计关系,并且不能对测试数据生成一个不同的问题-答案分布。为解决此问题,我们引入一个自我批判式训练主体,以确保正确答案的视觉解释比其它有竞争力的候选答案更能匹配到最有影响的视觉区域,有影响区域要么是由人类视觉/文本解释决定,要么由问题和答案中的重要单词自动决定的。我们在VQA-CAP数据集上VQA通用任务上评估我们的方法,实现了最先进性能,使用文本解释达到49.5%,使用自动注释区域达到48.5%。

代码

一、介绍

当测试集与训练集来自于不同的问答分布时,大多数系统表现不好,尤其在最新引入的更改先验的数据集VQA-CAP上,性能下降。语言先验使得系统盲目地捕获训练问答对中的表面的统计相关性,并简单地输出最常见的答案,而不是对人类想要关注的相关图像区域进行推理。

最近一些系统的训练是鼓励网络关注图像中重要的区域(人类以某种方式注释),然而,当网络产生一个错误答案时,它也关注这些重要区域。如图1,他在吃什么?系统预测“热狗”,但是关注香蕉,因为热狗在训练数据中更常见。然而这个错误很难检测,只有当分析正确答案banana成功的基于图像时。

为解决此问题,我们提出一个自我批判的方法直接批评对重要区域敏感的不正确的答案。首先,对于每个QA,我们确定决定对正确答案最有影响的重要区域,然后当预测答案错误时,惩罚关注这个区域的网络。

我们的自我批判式方法是端到端训练的,只需要VQA系统区分视觉内容,因此可以应用到最先进系统中。我们研究了三种确定重要区域的方法,首先使用人类明确标记的作为重要区域,但是需要人力;所以我们也使用VQA-X数据集中人类文本VQA解释来确定重要对象,基于图像中的重要区域;最后,尝试仅使用问题或答案中提到的对象确定重要区域,并将它们接地在图像中,这种不需要人工注释。

我们使用UpDn VQA系统在VQA-CP数据集上评估我们的方法,实现了最先进性能(目前为47.7%):在VQA-X文本解释上49.5%,在VQA-HAT视觉解释上49.1%,使用问题和答案中提到的对象为48.5%。

二、相关工作

2.1 VQA中的人类解释

两种人类解释,视觉和文本解释。VQA-HAT[7]是一个视觉解释数据集,通过给人类专家模糊的图像,并让它们决定在哪里去模糊,以回答给定的问题。或者,[18]提供了VQA-X数据集,它将文本解释与每个QA对相关联,人类提供了它来证明对一个给定问题的答案是合理的。在这项工作中,我们利用这两种解释来提供重要的区域。

2.2 VQA的语言先验

语言先验指问题种类与答案高度相关。VQAv2[4]平衡了答案分布,至少存在两个相似的图像,每个问题都有不同的答案。最近,[1]引入了一种名为VQA-CP的VQAv2数据集的诊断重新配置,其中训练集中QA对的分布与测试集中的分布显著不同。大多数最先进的VQA系统被发现高度依赖于语言先验,并在VQA-CP上经历了灾难性的性能下降。我们在VQA-CP上评估了我们的方法,以证明它能更好地推广,对分布变化不那么敏感。

2.3 使用人类解释改善VQA

VQA期望的特性是不仅推断正确答案,而且是基于人类重要的图像区域。解决此问题的VQA分为两类。第一种是建立一个模型本身是可解释的系统,如GVQA[1]通过引入一个单独的视觉概念验证器和回答集群分类器,明确地分离了视觉和语言组件。另一种是将系统的解释与人类专家的解释保持一致,[35,20]将图像中的内部注意权重与人类的注意力图对齐,与我们最相关的工作是HINT[25],它强制系统对每个检测到的对象的基于梯度的重要性分数与其人类重要性分数具有相同的排名。与之前的工作相比,我们的方法不仅鼓励系统对人类识别的重要区域保持敏感性,而且还降低了错误答案对这些区域的敏感性。

三、准备工作

我们首先引入Bottom-up Top-down(UpDn)VQA系统,然后,我们描述了我们构建一个所提出的对象集的方法,该对象集涵盖了人类在回答问题时所关注的最有影响力的对象。

3.1 Bottom-up Top-down VQA

大量以前的VQA系统[8,21]利用卷积特征上的可训练的Top-down的注意机制来识别相关的图像区域。[2]引入了bottom-up的互补注意力,首先检测共同的对象和属性,以便Top-down的注意力可以直接建模高级概念的贡献。这种UpDn方法在最近的工作中大量使用,并显著提高了VQA的性能。

3.2 提出的影响对象集构造

我们的方法需要确定人类在回答问题时认为的最关键的重要区域。然而,直接从视觉或文本解释中获得这样清晰的一组有影响的对象是困难的,因为视觉解释也突出了周围的对象,图像中的基础文本解释仍然是一个活跃的研究领域。我们放宽这一要求,为每个QA对确定一组有影响的对象集I,这个集合可能包含噪声和一些不相关的对象,但我们假设它至少包含最相关的对象。我们探索三种构建proposal集的方法。

从视觉解释中构建

在HINT[25]之后,我们使用VQA-HAT数据集[7]作为视觉解释源。HAT maps总共包含59,457对图像问题对,相当于VQA-CP训练和测试集的大约9%。我们还继承了HINT的对象评分系统,它基于提案框内的标准化人类注意力图能量相对于框外的标准化能量。我们对从bottom-up的注意力中每个检测到的对象评分,并通过选择top的|I|个对象来构建潜在的对象集。

从文本解释中构建

最近,[18]引入了一个文本解释数据集,它注释了32,886个图像问题对,对应于整个VQA-CP数据集的5%。为了提取潜在的对象集,我们首先使用spaCy POS标记器[11]为每个单词分配词音(POS)标签,并提取句子中的名词。然后,我们选择检测到的对象,它的Glove嵌入[19]与提取名词的余弦相似性大于0.6。最后,我们选择具有最高相似性的|I|个对象。

从问题和答案中构建

由于上述解释可能在其他数据集中不可得,我们还考虑了一种简单的方法,仅从训练的QA对中提取建议对象集。该方法与我们从文本解释中构造潜在集的方法非常相似。唯一的区别是,我们不解析解释,而是解析QA对,并从中提取名词。

四、方法

除了UpDn VQA系统,我们的方法还包含两个其他组件,首先识别和增强最具影响力的对象,然后批评比正确答案排名更高的错误答案,让它们对这些关键对象不那么敏感。最近研究表明,基于梯度的方法更能表示模型的决策制定过程,我们使用修改后的GradCAM计算答案对第i个对象特征的敏感性:

在GradCAM上有两个调整:1)ReLu单元被移除,2)梯度不再由特征向量进行加权。

4.1 识别和增加有影响的对象

给定一个建议对象集I和整个检测到的对象集V,我们确定正确答案最敏感的对象,并进一步增强了其敏感性。我们首先引入了一个灵敏度违反项SV(a,vi,vj)有答案a和第i和第j个对象特征vi和vj,且vj超过vi的灵敏度,如等式所示2.

我们施加了一个约束,即提案集中最敏感的对象不应比提案集之外的任何对象都更敏感。因此,我们引入了在等式中增强损失的影响:

其中agt表示地面真相的答案。我们有影响的增强损失和基于排名的HINT损失之间的关键区别在于,(1)我们放松了不必要的约束,即对象应该遵循确切的人类排名,(2)更容易适应不同类型的解释(如文本解释)如果没有这样详细的排名。

4.2 批评不正确的主导答案

对于错误答案的排名高于正确答案,我们试图降低有影响的对象的敏感度。我们设计了一个自我批评的目标来批评VQA系统基于最具影响力的对象v∗的错误但有竞争力的决策:

具体地说,我们提取一桶比正确答案更可靠的B预测,并利用提出的自我批判损失来直接最小化桶B中的答案的加权敏感性,如等式所示5.

其中agt表示地面真相的答案。因为有几个候选答案可能是相似的,我们权衡了等式中的敏感度间隙,通过答案的300dGlove嵌入之间的余弦距离,即。w(a)=cosine_dist(Glove(agt),Glove(a))。在多字答案的情况下,这些答案的Glove嵌入被作为单个词的Glove嵌入的和来计算。

4.3 实现和训练细节

训练细节

先在VQA-CAP训练集上使用标准VQA损失Lvqa预训练基础UpDn VQA系统。

实现

在原始的UpDn系统上实现了我们的方法,基线系统利用一个以ResNet-101网络为基线的Faster R-CNN头作为目标检测模块。检测头在Visual Genome数据集上预训练,能检测1600个对象种类和400个属性。UpDn将最终的检测输出执行NMS,每个对象类使用0.7的IoU阈值,然后前36个对象的卷积特征被提取作为视觉特征。问题嵌入跟随[2],执行标准文本预处理和标记化。

五、实验结果

首先在一个简单的合成数据集上进行实验,说明我们方法的基本方面,然后,在VQA-CAP数据集(改变先验的视觉问答)进行实验,我们还在VQA v2验证集给出了实验结果。我们通过标准评估指标比较我们的自我批判式系统与先进的VQA表现,之后还进行消融研究,以验证加强有影响力的对象和批判竞争性的答案的贡献,最后,给出一些例子论证批判不正确答案敏感性的有效性。

5.1 合成数据上的结果

手动创建一个数据集,输入是从两个Gaussians 提取的,N1=N([−3、3]T、2I2)和N2=N([3、3]T、2I2),每个分布代表一个种类,为确保训练和测试数据有不同的类别分布,有意为两个分量分配不同的权重。训练时,例子从概率为p的N1中提取,测试时,例子从概率为1-p的N1中提取。我们验证了p从0.05到0.5(0.05,0.1,0.2,0.5)的自我批评方法的有效性。在这些实验中,我们使用明显的人类解释,即第一个通道(x轴)对所有训练样本都很重要。使用一个具有256个隐藏单元的15层的反馈神经网络和1000个例子进行训练和测试,使用Adam来优化我们的模型,有着二值交叉熵损失的预训练期间(100 epochs)学习率为1e-3,在我们的自我批评方法的微调期间(50epochs)学习率1e-5。增强损失权重和自我批评损失权重的影响设为20和1000,图3的结果表示自我批评方法帮助将决策边界转向正确、无偏的位置,提高测试数据的鲁棒性和准确性。

5.2 在VQA数据上的结果

在VQA-CP和VQA v2数据集上的VQA表现

使用相同的人类解释,我们的系统由于其他最先进系统(HINT),表示直接批评竞争答案的对最具影响力的对象的敏感性的有效性。使用人类文本解释作为监督会有效一点,与VQA-HAT相比,这些解释数量只有一半,这些文本解释使VQA性能又提高0.3%。

没有人类解释,只是用QA建议对象集作为监督的方法明显优于以前的方法,甚至使用人类解释的方法。我们进一步分析了从QA对中提取的有影响的对象建议集的质量,通过与那些来自相应的人类解释比较。平均而言,QA提案集在VQA-X和VQA-HAT提案对象集中分别包含57.1%和54.3%的对象,这表明存在显著但不完美的重叠。

我们的自我批评目标特别提高了在yes/no和other问题类型的性能,然在,在Num类上表现不好,计数类问题需要考虑所有的对象,因此,之批评最敏感的不能提高性能。

对于VQA v2数据集,我们的方法与以前的方法具有竞争力,这表明当训练和测试数据有相同的分布时,批评错误答案的敏感性至少不会影响表现。

损失权重的消融研究


表2和表3使用VQA-X文本解释评估改变影响力的增强损失和自我批评损失对VQA-CP测试数据的影响。表2显示,如果没有Lcrit批评错误的敏感性,我们的影响力增强仍然使UpDnVQA系统的总体得分提高了8.1%。如图3所示,结合Lcrit损失,我们的方法使用文本解释在VQA-CP测试集上设置了一个新的最先进的分数(49.5%)。我们还注意到,我们的方法对两种损失Linfl,Lcrit权值的重量变化是相当稳健的,并在大范围内持续提高VQA性能。

提出的影响对象集大小的研究

表4报告了具有不同设置大小的结果,表明这两个目标相当稳健。我们使用VQA-HAT视觉解释来构建有影响的对象集和两个损失来微调我们的模型。

批评虚假敏感性的有效性

我们评估了预测的错误答案对有影响的对象(对正确答案最敏感)的敏感性大于对正确答案的敏感性,我们定义虚假敏感性比率:

对于原始的UpDnVQA系统,我们观察到VQA-CP中所有测试QA对的假灵敏度率为35.5%。在自批评训练后,使用VQA-HAT解释,假敏感性率降低到20.4%,而使用VQA-X解释,则降低到19.6%。这表明,错误敏感度是VQA系统中的一个常见问题,并显示了解决该问题的效用。

图4显示了我们的自批评方法如何缓解错误敏感性的一些例子。对于正确的答案,我们的方法增加了最具影响力的物体的影响,我们将其归因于影响增强部分。更重要的是,我们观察到这个对象对错误答案的影响会减少,有时会低于其他对象。

六、结论与将来工作

在这项工作中,我们探索了如何通过批评错误答案对最有影响力的对象的敏感性来提高VQA的性能。我们的“自批评”方法帮助VQA系统推广到与训练数据中的问答对分布显著不同的测试数据。有影响力的对象是从人类视觉或文本解释中提取的建议对象集,或者只是从问题和回答中提到的对象中选择的。我们的方法在VQA-CP数据集上的性能明显优于最先进的VQA系统,即使没有人类的解释作为额外的监督。在未来,我们希望将视觉和文本解释结合在一起,以更好地训练VQA系统。这是困难的,因为这两种解释的建议对象集包含不同类型的噪声(即与问题无关的对象),因此存在不同的偏差。

全部评论 (0)

还没有任何评论哟~