您的位置首页  沈阳资讯  资讯

基于深度学习,我的妈妈叫黄淑珍的VQA(视觉问答)技术

原标题:基于深度学习,我的妈妈叫黄淑珍的VQA(视觉问答)技术

基于深度学习的VQA(视觉问答)技术

 

深度学习大讲堂致力于推送人工智能,深度学习方面的最新技术,产品以及活动。请关注我们的知乎专栏!

视觉问答导读

视觉问答(Visual Question Answering,VQA),是一种涉及计算机视觉和自然语言处理的学习任务。这一任务的定义如下: A VQA system takes as input an image and a free-form, open-ended, natural-language question about the image and produces a natural-language answer as the output[1]。 翻译为中文:一个VQA系统以一张图片和一个关于这张图片形式自由、开放式的自然语言问题作为输入,以生成一条自然语言答案作为输出。简单来说,VQA就是给定的图片进行问答。

VQA系统需要将图片和问题作为输入,结合这两部分信息,产生一条人类语言作为输出。针对一张特定的图片,如果想要机器以自然语言来回答关于该图片的某一个特定问题,我们需要让机器对图片的内容、问题的含义和意图以及相关的常识有一定的理解。VQA涉及到多方面的AI技术(图1):细粒度识别(这位女士是白种人吗?)、 物体识别(图中有几个香蕉?)、行为识别(这位女士在哭吗?)和对问题所包含文本的理解(NLP)。综上所述,VQA是一项涉及了计算机视觉(CV)和自然语言处理(NLP)两大领域的学习任务。它的主要目标就是让计算机根据输入的图片和问题输出一个符合自然语言规则且内容合理的答案。

 

基于深度学习的VQA(视觉问答)技术

 

与VQA类似——看图说话(Image Caption)任务也同时涉及到CV和NLP两个领域,但是与VQA不同的是看图说话只需要产生对图片的一般性描述,而视觉问答根据问题的不同仅聚焦与图片中的某一部分,而且某些问题还需要一定的常识推理才能做出回答。例如图2中的第一个问题,你能在这停车吗?计算机需要读懂这张图片而且还要有那些地方可以停车,哪些地方不可以。而对于看图说话,则只需要产生一条类似“花园的左边有一辆车,后边有一个消防栓”的描述即可。因此,VQA相比看图说话在图像语义的理解方面有更高的要求,因此也具有更大的技术挑战。

 

基于深度学习的VQA(视觉问答)技术

 

视觉问答中State-of-the-art方法介绍

随着深度学习的在CV和NLP中的广泛应用,深度学习强大的特征学习能力极大的推动了CV和NLP领域的研究。在CV中以CNN为代表的各种深度网络层出不穷,可以端到端的学习图像特征而不依赖手工设计的特征。CNN通过逐层的特征抽取,将图像从简单的边缘、角点等底层特征,逐层组合成为更高层次的特征。CNN在图像上强大的特征抽取能力使得它可以更加完备的抽取并压缩图像信息。而RNNs模型在NLP领域中也展现出了其强大之处,尤其是在语音识别,机器翻译,语言模型与文本生成等方面取得很大的成功。由于VQA涉及到CV和NLP两个领域的内容,那么很自然的一种VQA解决方案就是将在CV和NLP中应用非常成功的CNN和RNN结合构造组合模型。

由深度CNN和LSTM网络结构组合而成的VQA模型是目前来说在视觉问答中性能相对较好的模型。接下来,将介绍一些具有代表性的研究中提到的一些比较好的模型组合。

1. Deeper LSTM Q + norm I模型

该模型由Aishwarya Agrawal等人提出,文章发表于ICCV2015[1],其中I指的是提取后的图片特征,norm I指的是对CNN抽取的图像语义信息向量(1024维)做L2归一化处理。CNN抽取图像语义信息,LSTM抽取问题中包含的文本语义信息,将两者的信息融合,让模型学习到问题的含义/意图,最后送入一个以Softmax为输出层的多层MLP中产生答案输出,整体结构如图3所示。图3中输入图像中包含了一个室外场景中的2匹马和2个人在,这些信息由不含分类层的CNN抽取,而问题部分的信息则由一个LSTM网络结构按照问题单词的输入顺序逐个抽取问题信息,然后将两个压缩后的信息融合,将融合后的信息送入MLP中产生结果输出(当前问题是一个物体计数 (count object)问题)。

 

基于深度学习的VQA(视觉问答)技术

 

该模型使用2层LSTM编码问题并用VGGNet去编码图像,然后将图像特征使用L2归一化。之后将图像和问题特征变换到同一个特征空间,通过点乘的方式将信息融合,融合后的信息送入一个以Softmax为分类器的三层MLP中产生答案输出。模型在训练的过程中,固定CNN,只有LSTM层和最后的分类网络参加训练。之所以CNN不参加训练的原因是对CNN的微调训练极度耗时,而且微调后的结果对模型整体的性能并没有特别大的提升。接下来的模型的CNN部分都与[1]中模型相同,因此不再赘述。

文中所使用的问答数据集是问答对和问答对对应的图片构成,问题的形式是开放式和多选,对应的答案由1-2个单词组成。文中为了研究图片和问题单独包含的信息量,分别设计了只提供问题(BoW Q , LSTM + Q, deeper LSTM Q)、只提供图像(I)以及同时提供两者(BoW Q + I, LSTM Q + I, deep LSTM Q + norm I)的情况下回答问题的结果,实验结果如下图4所示,我们可以看到,单独的语言模型和视觉模型都有一定的精度,但是它们的精度并不高,这说明图像和问题各自独立包含了一些产生答案的过程中必要信息,单独利用某一方面都不能得到很好的效果,,文中提出的模型在开放式和多选这两种问题得到的效果是最好的。

 

基于深度学习的VQA(视觉问答)技术

 

2. VIS+LSTM模型

此模型由Mengye Ren等人提出,文章发表于NIPS2015[2],文中模型的基本结构是首先使用CNN抽取图片信息,完成之后接LSTM产生预测结果。Mengye Ren等人考虑到由于没有一个完好的评价答案句子精确度的标准,因此他们将注意力集中在有限的领域问题,这些问题可以用一个单词作为视觉问答的答案,这样就可以把视觉问答视为一个多分类问题,从而可以利用现有的精确度评价标准度量答案。

模型基本结构如图5所示,首先用在ImageNet上训练好的VGG19抽取图像特征得到一个4096维的向量(最后一个隐含层输出),然后将这个向量视为问题句子的第一个词。由于LSTM网络的输入是一个300或500维的词向量,为了使图片特征向量匹配词向量的纬度,文中[2]使用仿射或者线性变换将图像特征向量变换成一个300或500维的向量。接下来使用结合图像特征作为第一个词的LSTM网络按顺序提取问题的信息,最后将LSTM网络的最后一个输出送入Softmax作为最后的分类输出层产生答案。[2]中模型的训练与[1]略有不同,[2]中提出的模型选用的LSTM类型可以是双向的以及图像特征与问题特征融合的位置在[2]中可以同时在始末两处加入。[1]和[2]将视觉问答任务视为多分类问题,这种形式的模型一个优势是易于实现和验证。

 

基于深度学习的VQA(视觉问答)技术

 

文章在此基础上产生了另外3个模型:

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186
友荐云推荐