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

导读

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

流行框架

Deeper LSTM Q + norm I模型

    CNN抽取图像语义信息,LSTM抽取问题中包含的文本语义信息,将两者的信息融合,让模型学习到问题的含义/意图,最后送入一个以Softmax为输出层的多层MLP中产生答案输出。信息由不含分类层的CNN抽取,而问题部分的信息则由一个LSTM网络结构按照问题单词的输入顺序逐个抽取问题信息,然后将两个压缩后的信息融合,将融合后的信息送入MLP中产生结果输出(当前问题是一个物体计数 (count object)问题)。
    该模型使用2层LSTM编码问题并用VGGNet去编码图像,然后将图像特征使用L2归一化。

VIS+LSTM模型

    模型的基本结构是首先使用CNN抽取图片信息,完成之后接LSTM产生预测结果。模型将注意力集中在有限的领域问题,这些问题可以用一个单词作为视觉问答的答案,这样就可以把视觉问答视为一个多分类问题,从而可以利用现有的精确度评价标准度量答案。
    首先用在ImageNet上训练好的VGG19抽取图像特征得到一个4096维的向量(最后一个隐含层输出),然后将这个向量视为问题句子的第一个词。由于LSTM网络的输入是一个300或500维的词向量,为了使图片特征向量匹配词向量的纬度,文中[2]使用仿射或者线性变换将图像特征向量变换成一个300或500维的向量。接下来使用结合图像特征作为第一个词的LSTM网络按顺序提取问题的信息,最后将LSTM网络的最后一个输出送入Softmax作为最后的分类输出层产生答案。[2]中模型的训练与[1]略有不同,[2]中提出的模型选用的LSTM类型可以是双向的以及图像特征与问题特征融合的位置在[2]中可以同时在始末两处加入。[1]和[2]将视觉问答任务视为多分类问题,这种形式的模型一个优势是易于实现和验证。
    文章在此基础上产生了另外3个模型:

  1. 2-VIS+BLSTM:将图像特征同时作为句子的第一个和最后一个词,使用双向的LSTM网络抽取问题信息。双向LSTM网络是一个扩展的LSTM网络,它同时考虑了序列的历史信息和未来信息,可以更好的利用句子的语境信息。

  2. IMG+BOW:BOW替换LSTM来抽取问题信息。

  3. FULL:简单的将前三种模型的输出结果求平均。

    文章采用Accuracy、WUPS(0.9)、WUPS(0.0)来评价以上4个模型的性能。WUPS[6](Wu-Palmer Similarity)根据两个单词在一个分类树中的最长公共子序列来计算相似性。如果预测单词和标准答案单词的相似性低于设定的阈值则候选答案的评分为0。[2]在MS-COCO-QA[7]和DAQUAR8数据集上的实验结果如图6所示。实验过程中有两点比较有趣:

  1. IMG+BOW模型与VIS+LSTM模型在两个数据集上的表现十分相似。

  2. 在DAQUAR中,仅有语言模型的结果并没有比CNN+LSTM模型差太多,而在MS-COCO-QA数据集上,仅有语言模型的结果与CNN+LSTM模型的结果差距较大。

    作者认为第一点出现的原因可能是因为视觉问答中,尤其是简单问题,词语之间序列信息的作用可能没有其他NLP任务中那么重要。第二点在DAQUAR数据集上单纯的语言模型没有比CNN+LSTM模型在结果上相差太多,原因应该是ImageNet的图片所对应的场景与室内场景差异太大。这里需要解释一下DAQUAR数据集问题,由于本文作者使用的VGGNet是在ImageNet数据集上训练的得到,而ImageNet和DAQUAR包含的图片的类型相差较大,ImageNet包含较多的室外场景和动物类别而DAQUAR多为室内场景。因此使用ImageNet训练得到的VGGNet在抽取室内场景信息的时候并不准确,这造成提取的图像语义信息并没有提供太大的贡献。从图6中实验结果中可以看出,VIS+LSTM模型在DAQUAR数据集的精度没有COCO-QA数据集上的精度好。在两个数据集上的精度差距较大的原因,作者分析其原因有:

  1. COCO-QA的数据集与ImageNet有重叠。

  2. COCO-QA很少有室内场景的物体。

  3. COCO-QA的数据量极其庞大,可以训练出比较复杂的网络。

Neural-Image-QA模型

    该由Mateusz Malinowski等人提出,文章发表在ICCV2015[3]。模型以CNN和LSTM为基础,以一种新的使用方式,设计了一个预测结果长度可变的模型。该模型将视觉问答任务视为结合图像信息作为辅助的sequence to sequence任务。模型结构如图7所示,首先由一个预训练好的深度CNN模型抽取出要回答的图片特征,然后将图片特征和转化为词向量的问题词一起送入LSTM网络,在每次送入一个问题词的同时将图片特征送入网络,直到所有的问题特征信息抽取完毕。接下来用同一个LSTM网络产生答案,直至产生结束符($)为止。该模型的训练过程是结合图像特征的LSTM网络的训练以及词向量的生成器的训练。
    模型评价方面,该模型使用了与[2]中相同的评价方法即Accuracy和WUPS[6]。作者在DAQUAR及其减缩版数据集(构成答案的单词个数仅有1,2,3,4,即有4个DAQUAR的子集)上进行了测试,DAQUAR上的测试结果如图8所示。该模型提出了一种利用同一个LSTM网络产生变长答案的模型,[3]中分析认为不管是问题还是答案他们都属于同一个语料库,因此可以使用同种编码和信息抽取方式。

mQA模型

    该模型由Gao H等人提出,文章于NIPS2015上发表[4]。此文中对视觉问答任务的理解是:这个模型需要针对一个图片的自由形式的问题给出一个答案,而这个答案可以是一个句子,一个短语或者一个词。因此[4]中提出了一个相对之前的几个模型来说较为复杂的模型。mQA总共由4个子模块组成,第一个模块由一个LSTM网络将自然语句编码成一个稠密的词向量特征,即抽取问题中所包含的信息,下文称问题LSTM网络;第二个模块由一个深度CNN抽取图片的特征;第三个模块是另外一个不同的LSTM网络,这个网络用于编码在答案中当前词和之前的一些词的特征信息,下文称为答案LSTM网络,将其作为答案语境;最后一个模块则是用来融合前面三个模型产生的信息,来预测当前阶段要产生在答案中的下一个词。模型的结构如下图9所示。mQA模型的训练与[3]不同,它用两个LSTM分别处理问题和答案,这样在训练过程中就有两个LSTM结构和一个信息融合网络需要同时训练,该模型相对复杂且极易产生过拟合。mQA中为了避免此问题,将信息融合部分的中间层和Softmax层之间的权重矩阵与词向量生成层的权重以转置的方式共享;理由是输入层的词向量是把one-hot形式的词向量编码成到一个稠密的词特征空间,而Softmax层的输出则是将词从稠密空间解码成one-hot形式,两者是一个相反的 过程。这样一来,简化了模型的参数个数,简化了模型,在一定程度上缓解了模型的过拟合。

    从模型的结构中我们可以看到,首先CNN和问题LSTM分别抽取图片特征以及问题特征,产生图片和问题的稠密词向量特征。这两部分信息准备完毕之后,答案LSTM网络首先由一个特定的答案开始符()作为该LSTM网络的起始输入,经过答案LSTM网络后将会产生一个当前阶段预测词的特征向量表示,然后将图片特征、问题特征、前一个词(就图中来看是)的词向量特征、答案LSTM网络产生的预测词特征向量做线性加和,然后送入第四个模型产生当前阶段的预测词。依次按照这个步骤产生答案,直到特定的结束符(EOA)出现,停止产生答案。该模型与[3]中提出的模型主要区别:使用了两个独立的LSTM网络处理问题和答案。

    本文作者分析认为,由于问题和答案的属性不同(例如,两者的语法格式不同),使用两个独立的LSTM网络处理更加合理,但是需要注意的是,组成问题和答案的单个词语同属一个语料库,所具有的含义应该是相同的,因此应使用同一个词向量层来编码问题和答案的每一个词,该部分则与[3]中相同。

    文中基于MS-COCO生成了一个新的更大的数据集,FM-IQA(Freestyle Multilingual Image Question Answering Dataset),访问地址是 IDL研究项目&成果 ,该数据集的问答对非常有趣且极具多样性,答案的长度不一,答案的结果不唯一,很多情况下一个问题有很多种形式的回答都是正确的,因此前面使用的度量标准和一些用于图像标注的度量标准都无法给出合理评判(详见[4]的第5部分)。因此[4]中使用人来评判模型,即视觉图灵测试(Visual Turing Test)。除此之外,[4]中还对模型产生的句子给一个评分,评分越高越好或越高越差。这种细粒度的评分使用0,1,2三个等级,“2”表示答案完全错误或者完全正确,“1”表示答案部分正确,为模型评分的人可以与图灵测试的相同也可以不同。两部分的实验结果如下图10所示。

视觉问答临的挑战及可能的改进方向

    虽然目前的VQA研究取得了一些成就,但是就目前的模型达到的效果来看,整体准确率并不高,除了在回答单一答案的简单问题上有较高的准确率外,其他方面模型的准确率普遍偏低,即便是文献[4]提出的复杂模型的图灵测试通过率也仅有60%左右。当前的VQA模型结构还相对简单,答案的内容和形式比较单一,对于稍复杂的需要更多先验知识进行简单推理的问题还无法做出正确的回答。例如[4]中给出了部分模型mQA的错误结果分析,分析中发现当对图片背景的常识性推理错误、问题聚焦的物体太小、需要高层次的逻辑推理等问题出现时,模型往往无法给出正确的预测(这方面详见文献[4]的Discussion)。究其原因,除了CNN的图像信息外,LSTM在学习过程中的知识来源只有训练集中的问答对,知识结构比较简单且信息量匮乏。

    未来的RNN模型一种可能的改进方式是:增加一个显式的先验知识库,在提取问题信息的同时融合与问题信息相关的先验知识。正如[5]中提出的一种端到端的记忆网络,它在Q与A之间增加了一系列记忆模块参与计算,记忆模块由一组给定的语句集和两个不同的词向量生成器构成,这些语句由两个编码器独立编码生成2组词向量,第一组词向量与问题融合产生意图/关注点,之后将另一组词向量与产生的意图/注意点融合产生记忆输出,记忆输出与Q对应的词向量融合最终产生输出。该记忆网络与RNN结构不同的是在中间过程中没有输出且增加了一系列记忆模块。将问题与事先设定的记忆部分映射,答案的产生不只与训练集的答案有关,还与记忆部分的记忆内容相关,这样可以产生更多样化且合理的答案。受该记忆网络的启发,对于未来的RNN结构或可在其计算过程中增加这样一些类似的记忆模块以丰富模型在训练过程中的知识源。参考类似这种记忆网络结构,可以在一定程度上缓解RNNs在学习过程由于先验知识不足而导致对于那些需要日常经验加以推断的问题回答不正确的现象,进而改善模型。

视觉问答实验源代码下载

    在研究过程中作者参考目前应用较为广泛的模型,利用mxnet深度学习框架实现了一个简单的VQA原型,代码可以从GitHub - liuzhi136/Visual-Question-Answering 访问,训练数据使用微软提供的MS-COCO数据集,下载地址: VQA: Visual Question Answering 。实验得到的结果与[1]中给出的实验结果基本一致,在测试集上达到52.34%的准确度。

参考文献

[1] Antol S, Agrawal A, Lu J, et al. VQA: Visual question answering[C] //Proceedings of the IEEE International Conference on Computer Vision. 2015: 2425-2433.

[2] Ren M, Kiros R, Zemel R. Exploring models and data for image question answering[C]//Advances in Neural Information Processing Systems. 2015: 2953-2961.

[3] Malinowski M, Rohrbach M, Fritz M. Ask your neurons: A neural-based approach to answering questions about images[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 1-9.

[4] Gao H, Mao J, Zhou J, et al. Are you talking to a machine? dataset and methods for multilingual image question[C]//Advances in Neural Information Processing Systems. 2015: 2296-2304.

[5] Sukhbaatar S, Weston J, Fergus R. End-to-end memory networks[C]//Advances in neural information processing systems. 2015: 2440-2448.

[6] Malinowski M, Fritz M. A multi-world approach to question answering about real-world scenes based on uncertain input[C]//Advances in Neural Information Processing Systems. 2014: 1682-1690.

[7] T. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick, “Microsoft ´ COCO: Common Objects in Context,” in ECCV, 2014

[8] M. Malinowski and M. Fritz, “Towards a visual Turing challenge,” in NIPS Workshop on Learning Semantics, 2014

原文链接

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

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值