😁大家好,我是CuddleSabe,目前大四在读,深圳准入职算法工程师,研究主要方向为多模态(VQA、ImageCaptioning等),欢迎各位佬来讨论!
🍭我最近在有序地计划整理CV入门实战系列及NLP入门实战系列。在这两个专栏中,我将会带领大家一步步进行经典网络算法的实现,欢迎各位读者(da lao)订阅🍀
论文下载: https://arxiv.org/pdf/1512.02167.pdf
开源代码: https://github.com/metalbubble/VQAbaseline
Simple Baseline for Visual Question Answering
Abstract(摘要)
我们基于词袋特征(bag-of-words)建立了一种非常简单的VQA的baseline,即将问题的单词特征与图片的CNN特征进行拼接来预测答案。其在具有挑战性的VQA数据集上与最近的基于循环神经网络的方法都性能具有可比较性。为了进一步探讨这种模型的优缺点,我们对外提供了一个可交互的web的demo并进行代码开源。
1.Introduction(介绍)
将自然语言处理与计算机视觉领域结合,进行高级场景理解是最近的主要去向,如字幕生成等。这些工作的诞生主要是受到深度学习在视觉识别领域的快速发展与最近大型图像与语言数据集的诞生。随着字幕生成任务的诞生,下一步自然而然就轮到了视觉问答(VQA)。
与字幕生成任务(给定图片生成自然描述)不同的是,视觉问答任务还需要更广阔的知识先验并需要进行一些推理。字幕生成模型可以尽可能地生成最简单的图像描述,然而问答模型需要尽可能去问答各种各样的问题,除了“what books are under the television”和"what is the color of the boat"这种简单的问题以外,还需要回答“why is the baby crying?”这种需要外部知识与推理能力的问题。
最近,arXiv上有几篇VQA的论文,它们中部分来自于字幕生成模型的变种(将LSTM处理的问题句子与VGG等卷积网络处理的图像特征拼接后进行答案预测),也有一些整合了视觉注意力机制并可视化网络是使用哪些图像区域来预测答案的。
有趣的是,我们注意到最近的一篇VQA论文,仅使用了词袋特征与图像特征(BOWIMG这篇论文),但是在合成的QA数据集上却比很多基于LSTM的模型表现还好。但在最近发布的大型COCO VQA数据集上,它的表现就不如基于LSTM的模型了。
因此,我们对BOWIMG的实践进行了部分改动。为了便于区分,我们称其为iBOWIMG。我们改进了设置和训练的调整,使其在COCO VQA上不逊于其他基于循环神经网络的模型。并且我们进一步分析并展示了我们的模型可以将问题的单词与视觉相关区域进行关联,并使用CAM进行注意力的生成与可视化。源代码与demo都进行了公开。在demo中,iBOWIMG可以基于你提供对图片来问答你的问题,希望大家可以根据这个demo发现模型的不足。
2.iBOWIMG for Visual Question Answering(相关说明)
在大家最近发布的模型中,视觉问答任务被简化为分类任务:将训练集中的不同答案作为多分类的标签。通常的做法是将从问题句子中提取到的单词特征与图片中提取的特征进行拼接,然后送入一个softmax层来预测答案。视觉特征一般使用VGG或GoogLeNet进行提取,而单词特征一般使用LSTM提取。
而在我们的iBOWIMG中,我们只使用了简单的词袋特征,然后使用GoogLeNet来提取深层的视觉特征。下图展示了iBOWIMG的结构图,仅仅使用不到10行代码就可以进行复现。输入的问题在进行词嵌入层后与CNN提取的图像特征进行拼接。拼接过后的特征再送入softmax层(带softmax的多分类逻辑回归)来预测答案。
3.Experiments(实验)
我们在全部的COCO VQA数据集上训练及验证我们的iBOWIMG模型。在COCO VQA中,AMT员工为每一张COCO中的图片标注了3个问题。对于每个问题,提供有10种答案。为了便于训练模型,我们对于10个答案中的大多数投票答案来作为问题的最终答案(答案有可能是一个单词也有可能是多个单词)。然后我们使用每张图片中的3个问题/答案对来进行训练。在训练集中一共有248349对问题答案,验证集中有121512对,共123287张图片。
为了生成我们模型的训练集与验证集,我们首先随机划分COCO的val2014按照70%与30%的比例生成子集A与B。为了避免过拟合,同一张图片的所有问题将被放在同一个子集中去。然后我们使用COCO train2014与我们得到的子集A来进行训练,子集B作为验证集。在我们获得最优的模型参数后,我们在使用整个train2014与val2014来训练得到最终的模型。我们将其在线提交并在COCO test2015上测试。对于Open-Ended任务,我们将softmax分数最高的预测作为答案。而对于Multiple-Choice,我们在得到softmax输出的每个答案的概率后使用置信最高的那个作为答案。
在单卡GPU NVIDIA Titan Black上训练了10小时。
3.1 Benchmark Performance(基准表现)
根据VQA数据集的验证标准,任何VQA模型都应该将在test-standard集上的准确率作为公平比较。下方的表1与表2分别展示了我们在test-dev与test-standard上的性能。其中test-dev是用来进行debug和验证实验的,其不限制服务器的提交次数,而test-standard用来进行模型排行并限制提交次数。
完整的VQA数据集在10/6/2015发布;之前曾发布过v0.1与v0.9。我们注意到有些模型在验证时没有使用标准的验证,这不利用模型表现之间的对比(有些用v0.1有些用v0.9)。
除IMG、BOW和BOWIMG之外其余所有方法都是用循环神经网络或深层网络。然而,我们的iBOWIMG在于这些复杂的模型进行比对时有着很好的表现(除了DPPnet比我们好了1.5%外)。
3.2 Training Details(训练细节)
Learning rate and weight clip.
我们发现对词嵌入和分类层设置不同的学习率与梯度裁剪可以获得更好的表现。词嵌入层的学习旅应该比分类层跟高一些。对于BOW在表1中的表现,我们可以发现,一个好的语言模型对正确率是至关重要的,可以发现我们仅使用语言特征而不使用任何图像信息就可以获得将近48%的表现。
Model parameters to tune.
尽管我们的模型目前是VQA中最简单的baseline。仍有以下几个模型参数需要进一步微调:1)训练的epochs。2)学习率和梯度裁剪阈值。3)在移除低频问题的单词与答案时所使用的阈值。我们遍历调整来搜索这些参数的最优值。在我们最好的模型里,对于问题句子的词典共有5746单词,答案类别共有5216个。
3.3 Understanding the Visual QA model(理解视觉问答模型)
通过上面的对比,我们可以看出我们的模型表现不逊于循环网络类模型。并且,因为它非常简单,所以可以很容易展示它是怎么进行问答的。
本质上,BOWIMG模型是学习并记住答案与问题加图像之间的联系。我们将softmax学习到的权重划分为参考单词特征与参考图像特征两个部分,如下公式:
r
=
M
w
x
w
+
M
v
x
v
.
r = M_wx_w + M_vx_v.
r=Mwxw+Mvxv.
其中softmax矩阵
M
M
M被分解为单词特征
x
w
x_w
xw的权重
M
w
M_w
Mw与视觉特征
x
v
x_v
xv的权重
M
v
M_v
Mv的两部分,即
M
=
[
M
w
,
M
v
]
M=[M_w,M_v]
M=[Mw,Mv]。
r
r
r代表进行softmax标准化之前的答案类别。进而
r
w
=
M
w
x
w
r_w = M_wx_w
rw=Mwxw和
r
v
=
M
v
x
v
r_v = M_vx_v
rv=Mvxv分别为问题和视觉对答案的贡献。因此在预测每一个答案时,我们可以准确地知道单词和图像对答案的贡献程度。我们也可以分别将
r
w
r_w
rw和
r
v
r_v
rv作为输出来知道如果模型只关注其中某一个特征(文本或图像),那么它预测的答案是什么。
图2展示了一些预测的例子,我们可以发现问题总是对答案做出最显著的贡献。例如,对于第一张图片里给出的两个问题"what is the color of sofa"和"which brand is the laptop",在预测答案时大部分贡献来自于问题甚至不需要图像特征。这展示了在COCO数据集中频繁出现的物体与行为所造成的偏差。对于第二张图片,我们提问"what are they doing",只考虑单词特征给出的答案是"playing wii(10.61),eating(9.97),playing frisbee(9.24)",然而在使用完整的特征进行预测后得到的结果时“playing baseboll(10.67=2.01[image] + 8.66[word])”。
为了进一步理解模型通过两部分特征给出的答案,我们首先将答案中的单词贡献分解为问题中的单个词,然后我们可以通过CAM来可视化与答案最相关的图像区域。
因为我们只使用了两个线性变换(词嵌入矩阵和softmax多分类矩阵)来生成答案,我们可以很轻松知道问题中每一个单词对于预测答案的重要性。在上图图3中,我们排序并展示了问题中每一个单词的重要性。在第一张图片的问题中,单词’doing’对答案’texting’很重要;在第二张中,单词’eating’对于答案’hot dog’很重要。
我们使用CAM(Class Activation Mapping)技术得到的问答答案时的相关区域进行高亮表示。在图3中我们展示了CAM生成的热力图,其中越亮的地方代表其对答案预测的贡献越高。
4. Interactive Visual QA Demo(可交互demo)
问答本质上是一种交互行为,所以它需要尽可能实时地给出答案。基于我们提出的模型,我们建立了一个web上的demo。图4展示了我们的demo。
5.Concluding Remarks(总结)
对于COCO数据集上的视觉问答任务,我们实现了一个简单的模型结构并且其不逊于最近提出的基于循环神经网络类模型。为了预测正确答案,模型获取到问题中关键单词与答案、图像区域与答案的关系。