论文-《Visual Question Answering A tutorial》笔记

重点翻译拓展

论文下载

主题:

本文主要介绍了该领域正在进行的工作以及基于深度学习的VQA如今的方法。

 

正文

1.研究VQA的原因:

(1)计算机视觉方面,需要根据算法从图像中提取高水平的数据并进行推理分析,VQA作为最初图灵测试或者图像字幕的替代任务出现。

(2)VQA如果发展成熟,可以独立应用于生活。

 

2.VQA答案形式:

(1)开放式回答,包含了较为复杂句式,并且机器生成的答案和正确答案可能会有同义替换释义之类的问题。

(2)多选项式回答,提供了一组候选答案,相比开放式回答要容易,并且验证也更加容易。

 

3.VQA与Image captioning 区别:

   两个方向都是跨计算机视觉和自然语言处理领域的方向,但是还是有以下区别

(1)Image captioning更多的要求描述性能,这几乎涉及纯粹的视觉信息,答案不固定,是一种开放式回答。

(2)VQA除了要求对图像和文本信息的提取,然后通过常识和给定图片中不存在的其它信息进行推理,答案格式不唯一。

 

4.数据集:

(1)VQA-Real,VQA-Abstract

目前应用最广泛的数据集是由弗吉尼亚理工大学的一个研究团队提出的,通常被称为VQA,后更新为VQA v2.0。其中包含对应同一问题有着不同答案的相似图像对。每个问题对应着两个相似、但却需要不同回答的图片,并且它也包括两部分,第一部分使用自然真实图片,被称为VQA-real,第二部分使用人工拼接图片,被称为VQA-abstract.

论文-《Visual Question Answering A tutorial》笔记

论文-《Visual Question Answering A tutorial》笔记

论文-《Visual Question Answering A tutorial》笔记

(2)Visual Genome

Visual Genome:该数据的图像来自于COCO和YFCC100M,共108249张图,包括170万个QA pairs,至2017年,该数据集是最大的VQA数据集。数据集的提问为6W:What, Where, How, When, Who,

and Why,该数据集答案的多样性要明显好于其他数据集,且答案的词数要多于其他数据集。另外提问没有“是否”的问题。

论文-《Visual Question Answering A tutorial》笔记

(3)Zero-Shot VQA

Visual7W 数据集的特殊版本,作者重新定义了训练和测试数据集的划分,测试实例包含一个或者几个单词并且不会出现在任何训练实例中。

论文-《Visual Question Answering A tutorial》笔记

(4)Visual7W

该数据集是上一个数据集的扩充,7W则指What, Where, How, When, Who, Why, and Which。该数据集包含了47300张图。为了准确回答问题,这里用到了bounding box来圈出可能的4个答案。

论文-《Visual Question Answering A tutorial》笔记

(5)Clipart images

VQA的数据集提出了合成剪贴图像,这些图像是从预定义数据集中角色和对象的卡通表示手动创建的。

(6)Video-based QA

zhu等人从烹饪场景到电影到网络视频中收集了各种领域的超过100000个视频和400000个问题。

 

5.VQA处理过程:

论文-《Visual Question Answering A tutorial》笔记

(1)图像编码。输入图像x,使用CNN来提取特征,映射为矢量y,其中CNN为训练好的神经网络,y为固定长度的矢量,一般为1024或者2048。

(2)问题编码。每个单词都转换成一个矢量,映射实现作为一个查找表,通过下标i进行索引,输入词汇表中的每个单词都和一个矢量相关联。一种替代方式是One-Hot编码。

(3)特征联合。为了将两个特征映射到同一个空间中,一种简单的策略就是连接(concatenate),另外就是点乘(multiplicative)。

(4)输出。一般看作一个分类任务,通常从2000个候选答案经过排序后选一个几率最高的的,尽管有些不常见的答案会被忽略,但是只考虑那些常见的答案也能应付90%的题目。

 

6.VQA方法的变体:

(1)通过RNN对图像和问题进行特征提取,然后一起嵌入传递。

(2)使用双向RNN对问题进行特征提取,正向与反向分别处理开头和结尾更一致重要的信息。

(3)网络中添加额外的图像特征和文体特征的乘法交互。

(4)通过逐元素求和和双线性操作例如MCB来进行图像特征和问题特征联合。

(5)增强神经网络架构的应用可以帮助更好的训练CNN。

 

7.VQA高级技术:

(1)注意力机制。CNN通常提取的是全局特征,而局部特征从预训练CNN早期层(先于池化层)中获得。网络会对每一个区域计算它的注意力权重,因此一张图可表示为各个区域的注意力权重和。

论文-《Visual Question Answering A tutorial》笔记

(2)预训练语言表示。之前提到的问题编码,是通过每个单词都转成一个矢量,形成一个矢量表,但是容易出现两个问题。一是会出现拖尾分布,比如数据集中的某些单词并不会频繁出现,对于这类单词并不能学习到稳定而有意义的嵌入。二是极端情况下,可能会出现某些单词频繁的在测试集中出现而很少在训练集中出现,这类单词很难通过样本学习到,对于这种一般选择丢弃单词来处理。

解决这个问题一般使用预训练词嵌入的方式,常见方法有在*中预训练GloVe和使用word2vec的skip-gram模型。

(3)记忆增广神经网络.记忆增广神经网络在文本问答中取得了较好的效果,VQA中使用了记忆增广神经网络的一种变体dynamic memory networks (DMNs),通常包含四个模块。输入模块将输入数据转变为一个名为facts的离散向量,问题模块使用门控单元计算表示问题的矢量,情节记忆模块检索回答问题facts,答案模块使用分类器对候选答案进行排序来预测最终输出。

论文-《Visual Question Answering A tutorial》笔记

(4)运行时外部信息检索.。些工作探索了将VQA系统与外部信息源连接的方式,这些信息可以是无限的(比如web搜索),或者在不重复训练VQA模型的基础上进行扩展(比如结构化知识库)。

 

8.数据集偏差问题:

测试问题经常提供强有力的线索使之能够不关注输入图像内容而推断出正确答案,盲目猜测和正常推理的正确率分别为56%和65%,这也是VQA需要注意改进的一个地方。

 

9.生词问题:

虽然VQA数据集的规模在不断扩大,但是没有哪个数据集能够覆盖所有种类的信息。当前的VQA方法并不鼓励处理那些不常见的单词和概念,而是着重处理较为频繁的概念。

 

总结:

本文综述了可视化问答技术的发展现状,回顾了基于深度学习的流行方法,这些方法将任务视为一组候选答案上的分类问题。并且描述了常见的联合嵌入模型,以及基于此概念的其他改进,如注意力机制。尽管目前在培训和评估VQA系统方面存在缺陷,但我们确定了一些有前途的研究途径,这些途径可能为VQA和visua未来的总体目标带来突破。