目录
摘要
一、介绍、
二、RELATED WORK
A. Visual Question Answering (VQA)
B. Few-shot Learning
C. Learning with attributes
三、METHODS
A. Bilinear Graph Network
B. Learning Compositional Representation
四、EXPERIMENTS
A、VQA v2.0 Datasets
B、Implementation Details
C、Evaluation Metrics
D、Ablation Study
E. Comparison with Other Models
F、Qualitative Analysis
五、结论
摘要
现有的视觉问答方法在数据量大的情况下表现良好,但在数据缺乏的情况下,对新的问题、对象、答案类别等准确度有限。然而,人类却可以快速适应这些新的类别,因为人们会组织以前见过的概念来描述新的类别,而深度学习方法几乎无法探索这些概念。在本文中,我们建议从有足够数据的答案中提取属性,然后将这些属性组合起来,以约束few-shot的学习。我们生成了few-shot VQA数据集,其中包含各种答案及其属性,无需人工操作。利用这个数据集,我们构建了属性网络,通过从图像的部分而不是整个图像中学习属性的特征来分离属性。VQA v2.0验证集证明了我们提出的属性网络的有效性,以及答案与相应属性之间的约束,以及我们的方法在很少训练数据的情况下预测答案的能力。
一、介绍、
与image caption相比,VQA需要复杂的推理过程来推断各种问题的正确答案。
VQA涉及来自输入图像的许多视觉任务,如图1所示,图像识别(“黑熊”,左上图)、对象检测(“儿童”,右上图)、场景识别和人类行为识别(“切割”,右下图)。
相比之下,VQA的答案是合成的,组合的,比如“切蛋糕”、“红黄相间”和“玩Wii游戏”,这些答案具有一些共同的属性。例如,在图2中,左上一行和右上一列中的所有答案都有相同的“骑行”动作,但对象不同,其中“骑摩托车”、“骑自行车”和“骑马”很容易被模型识别,因为有许多训练样本。尽管左下一行有很多“大象”的例子,但“骑大象”仍然很难正确分类,因为“骑大象”这样的样本很少。然而,当我们把这个新物体分成我们所知道的部分时,人类只需通过很少的示例来学习这个新的类别。如图2右栏所示,我们通过顶行图像中的大量示例以及底行中“大象”的含义了解了“骑行”的含义之后,我们可以通过组合这两个概念轻松识别“骑行大象”。
Learning Compositional Representations for Few-shot Recognition这篇论文学习了细粒度数据集中的属性,但它需要花费大量人力来标注每个图像的属性,并且没有明确地建模属性的表示。视觉问答作为一个元学习任务[17]是VQA中为数不多的few-shot研究之一,它从元学习的角度解决了这一问题,需要额外的记忆来存储支持集的权重,并且只针对答案仅在0到6之间变化的“数字”问题。在MAML[18]之后,Fast Parameter Adaptation[19]学习图像文本任务的适当初始权重,但其类别的数量多达20个,限制了其在现实中的使用。
在本文中,我们的目标是在few-shot设置下回答VQA的一般问题,这些问题更复杂,答案也多种多样。我们首先创建了学习网络主干的base set,以及用于few-shot答案的novel set。这两组都来自VQA v2的训练集,不需要额外的人力来标注答案的属性,然后我们重点学习属性的表示。视觉识别任务使用CNN的平均池化层,如ResNet[20]、GoogLeNet[21]和ResNext[22]进行分类,因为它描述了整个图像,但属性是来自图像的不同部分,例如,图2上部的“骑马”和下部的“大象”。因此,我们提出了属性网络,使图像的每个部分分别对属性进行评分。最后,我们对答案与其在base set中对应的属性之间的约束进行建模,然后将这些约束转移到novel set中学习few-shot答案的表示。
我们在VQA v2上进行了实验,在有1859个新答案的验证集上,我们的方法比直接在主干网络上分类获得了更高的准确率,在top-1和top-5的5-shot上分别接近2%和3%。此外,我们的模型在1-shot和5-shot上与[14]相当,在10-shot上更好,这表明了我们网络的有效性。
二、RELATED WORK
在本节中,我们将首先介绍VQA的相关研究,然后介绍少数镜头学习的方法。
A. Visual Question Answering (VQA)
VQA是基于输入图像回答给定问题的任务。问题通常用LSTM嵌入,图像由从预训练的模型中提取的固定大小网格特征表示,然后融合这两个特征,通过MLP进行答案预测。然而,并不是图像上的所有特征都与给定的问题相关,其中一些特征在融合之前应该被过滤掉,因此引入注意力机制来学习每个网格特征的权重,例如SAN[23]和DAN[24]。
由于问题和图像特征的分布不同,与线性方法相比,这两种特征的外积具有更好的解释性和性能。但由于其高维输出,很难进行优化。在Transformer模型[9]的推动下,DFAF的动态融合和MCAN涉及词和对象之间的所有关系,包括词和词、词和对象以及对象和对象。此外,Vilbert、VL bert、Structbert和LXMERT甚至直接微调了bert模型,而不考虑问题和图像特征的不同分布,并且该过程需要大量的域外数据,例如image caption数据集和基于文本的问答数据集。
B. Few-shot Learning
Few-shot learning旨在通过少量带标签的样本识别新的类别,这些few-shot算法中的第一类是元学习,它learns to learn。模型不可知元学习(MAML)[18]在各种任务上学习一个易于适应的模型,只需要几个梯度步骤就可以获得好的结果。优化模型[41]提出了一种基于LSTM的元学习器,用于更快地训练网络。元网络[42]和作为元学习任务的视觉问答[17]利用外部记忆来更新权重。另一类是metric learning,它学习对示例之间的相似度进行排序。Siamese neural networks[43]通过比较看不见的图像和标记的图像来对其进行分类。在计算查询特征和支持特征之间的距离时,匹配网络[44]用余弦相似度取代softmax,而原型网络[45]使用查询特征和支持特征平均值之间的欧氏距离。使用图神经网络的Few-shot learning[46]在标记和未标记的示例上构建图。除了这两类之外,数据增强方法,例如[47],[48]在基础数据中学习生成器,产生新数据。
C. Learning with attributes
学习组合属性是人类学习few-shot和zero-shot样本的自然方式。通过对这些组合属性的转换网络建模,从红酒到红番茄[50]可以对看不见的概念组合进行分类。表征学习中的组合性测量[51]建立了一个新的评估指标,以估算输入图像的属性之和(???)。基于密集属性的Attention[52]将图像中的区域特征分配给GloVe[53]中的语义向量。学习组合表示[14]将类别的特征空间分解为与其属性对应的子空间,这与我们的方法类似,但它忽略了编码特征的每个部分对属性的不同贡献。
三、METHODS
VQA任务的目标是基于图像回答问题。我们将图像转换为对象特征,其中是检测到的对象数量,是每个对象特征维度。问题由个单词组成,使用LSTM编码为。我们可以通过VQA模型,如MLB[25]、MFB[26]、BAN[27]和MCAN[5],得到和的联合嵌入。然而,BGN[28]比它们有更好的解释性和性能,而且与需要微调的BERT模型(如Vilbert[29]、VL bert[30]和LXMERT[32])相比,它可以用更少的时间和更少的GPU资源轻松训练。因此,它被选为我们方法的backbone。
A. Bilinear Graph Network
上图为BGN模型结构图,图像用n个对象级特征表示,问题用m个单词嵌入表示,Image-Graph建模单词和对象的关系,输出表示单词和对象的联合嵌入,Question-Graph建模联合嵌入之间的关系,输出用以最终输出结果。
B. Learning Compositional Representation
根据训练集的答案集,我们将其分为两个集合,一个是训练样本数较多的base set,另一个是训练样本数较少的novel one,其中,.
计算答案和单词及对象的联合嵌入之间的分数的简单方法如下:
其中,,是base set的大小。此外,表示答案。此外,一对问题和图像可能存在多个正确答案,因此我们利用BCE作为损失函数:
其中是答案的分数,,参考VQA v2评估指标。
正如我们在第一节中提到的,答案由几个属性组成,表示为,其中,是属性集,是答案中的属性数。
Attribute Network:学习组合答案的关键是生成其属性的良好表示,我们也可以使用像公式6这样的图的统一向量来学习这些属性。但是正确答案中的属性可能来自给定图像的不同部分,应该分别处理,例如,在图4中,短语“what is”侧重于“horse”的对象(对象2),而“woman doing”则更关注“woman”的对象(对象16)。因此,我们建议使用属性网络来分别计算图的每个节点和属性之间的得分,而不是计算整个节点的得分(这里就是作者的方法部分,BGN模型就是直接计算所有节点的得分):
其中,,表示属性。
由于多个属性构成了答案,因此我们还利用BCE作为其损失函数,计算如下:
其中是属性的标签。
此外,答案可以从其属性的表示中重建,因此我们最小化了它们之间的距离:
其中f是距离函数,例如余弦相似性和均方误差(MSE)。总的来说,我们在学习答案和属性向量的基础阶段,以及图3上半部分所示的框架的主干时,会有所有的损失:
其中λ是调整距离损失重要性的超参数。
Constrained by Attributes:在新的数据集中,答案的表示很难学习,因为只有几个例子,这很容易导致过度拟合。然而,它们的属性是在我们的属性网络的基础阶段获得的,可以帮助学习这些答案的嵌入,如图3的下半部分所示:
其中是novel answer ,基于few-shot learning的设置,我们只从正确答案中抽取一个答案。请注意,我们只计算和损失中的梯度来更新其权重,同时保持属性参数固定,以规范novel answers的学习。
四、EXPERIMENTS
在本节中,我们将在VQA v2上评估我们的方法。我们首先介绍了这个数据集,然后构建了few-shot数据集,然后描述了我们的实现细节和结果,最后进行了定性分析。
A、VQA v2.0 Datasets
该数据集基于MSCOCO图像构建,包含110万个问题,每个问题由10个人注释。
Constructing the few-shot dataset:VQA数据集的答案可以分为三种类型,即“yes\no”、“number”和“others”,我们重点关注“其他”的答案,因为它们比其他两类更复杂、更多样。我们首先收集base answer set,这些答案在训练数据集均中出现了40多次,结果是=2584。与[55]、[5]中使用的策略不同,我们收集了多个回答过的答案,而[55]、[5]中对每个问题只收集了一个正确答案。然后,我们使用spacy将这些答案分成tokens,这些token被视为它们的属性,并在删除一些无意义的单词('and'、'is'、'do'、'&'和'are')后组织到属性集中,从而得到=2108个属性。通过组合这些属性,我们得到了一个novel answer set,其中的答案不在中,并且出现了10次以上,共1859个答案,并且在验证数据集上也应用了类似的程序进行评估。表一显示了两个数据集的问题和答案数量。
B、Implementation Details
实验设置见原文。
BGN被选为我们的基准模型。在novel stage时,我们只需将base stage的FC层替换为novel stage的FC层,并学习它们在固定主干中的表示。由于在novel few-shot数据集上容易过度拟合,我们将1、5和10-shot learning的训练epoch分别缩短为40、20和14。
C、Evaluation Metrics
我们的目标是解决与其他类似模型[5]、[28]、[1]、[26]、[29]一样的一般VQA问题,因此我们使用[3]中的方法评估VQA v2验证数据集在1、5和10-shot设置下的top-1精度。此外,我们考虑了[14]之后的top-5表现。
D、Ablation Study
我们进行消融研究,以验证表2中属性网络的贡献。注意,当λ变为零时,我们的网络与BGN相同。对于top-1和top-5,性能随着λ的增加而增长,这表明了我们提出的网络的有效性。然而,当λ>0.2时,5-shot和10shot的性能会下降,可以解释的是,答案可以在一定程度上通过λ=0.1和λ=0.2的属性嵌入的总和来表示,但是像λ=0.5这样的更高值限制了它从few-shot数据集领域学习新信息的潜力。在最后一行中也发现了这种现象,它直接从属性初始化答案的嵌入,而不是初始化[21],在1-shot中,精确度提高了很多,但在其他两种设置中,精确度迅速下降。因此,我们选择λ=0.1作为参数,并将初始化作为初始化方法。
E. Comparison with Other Models
在表3中,我们将我们的方法与其他方法进行了比较:BGN从头开始训练新答案的权重;BGN+SUM直接利用联合嵌入z,利用答案与其属性之间的约束,学习新答案的权重;BGN+LCR与我们的类似,只是它使用距离函数f的余弦相似性,并且不涉及网络来建模属性和输入表示之间的损失(图[14]和图[VQA]的图和问题)。
表3的最后三行显示,与BGN相比,对类别及其相应属性之间的约束进行建模的额外模块可以提高few-shot学习的性能。此外,我们的BGN+AN模型在1-shot和5-shot激发学习中的性能与BGN+LCR[14]相当,并且比10-shot激发学习中的性能要好得多。因为LCR没有考虑关节嵌入和属性之间的关系,比如图3中的LA。在给定更多训练数据的情况下,我们的模型在基础阶段学习到了更好的属性表示,之后用于改进新阶段类别的训练。此外,在相同主干网的情况下,BGN+AN中提出的属性网络比BGN+sum中的sum方法工作得更好。因为这些属性来自给定图像的不同部分,如图2所示的下部的“大象”和上部的“骑行”。因此,问题图的每个输出节点O既有来自问题的文本信息,也有来自图像的相关视觉信息,因此可以用它来表示图像的关注部分中的属性,证明像其他一般识别任务[14]、[20]一样简单地汇总这些节点并不适合表示所有属性。
F、Qualitative Analysis
为了可视化我们的方法的效果,我们在图5中展示了BGN和我们的BGN+AN网络预测的答案。在最下面一行的第二张图片中,BGN无法正确回答问题。因为在base阶段,当它在正确答案中出现的图像中出现“pizza”时,它总是与问题中的“进食”相关,这是BGN模型学习到的一种强烈偏见,如表IV所示。相比之下,我们的模型从除“pizza”之外的其他示例中学习“切割”动作,如“蛋糕”、“苹果”和“纸”。在novel阶段,使用给定图像中检测到的“切割”和“披萨”属性来改进答案“切割披萨”的表示。类似的问题也出现在第一排的第三张图片(人们坐在长凳上)和第一张图片(猫坐在沙发上)中。此外,一个对象总是用多种颜色来描绘,例如顶行的第四个图像和底行的第三个图像。除了在novel阶段从零开始学习新组合颜色的矢量外,我们在base阶段利用训练有素的单一颜色表示来增强它,而无需额外的人工注释。这也适用于查找图像中的对象,例如顶行第二个图像中的花瓶和花,以及底行第四个图像中的勺子和叉子。
五、结论
在这项工作中,我们将few-shot设置应用于一般的VQA问题,然后我们提出了一个两阶段网络来克服它。我们提出VQA中的few-shot数据集,它有两个子集,即base set和novel set,我们不需要人工就能生成答案的属性。在给定大量的base数据集训练数据的情况下,我们利用BGN对问题中的单词和图像中的对象之间的关系进行建模,并在base阶段生成它们的联合嵌入。此外,我们还利用所设计的属性网络以及属性与其源答案之间的约束,得到了属性的表示。在经过良好训练的属性向量的帮助下,我们改进了在novel阶段只有几个样本的合成答案的表示。将我们的方法应用于VQA v2的验证集。我们的方法在top-1和top-5精度方面比基线方法和其他类似网络具有更好的性能。然而,与base set(BGN为61.18%)相比,结果(top-1名准确度中10-shot的15.46%)远不能令人满意,这一问题还需要进一步研究。