Stacked Attention Networks for Image Question Answering

  • Abstract
  • 1.introduction
  • 2. 相关工作 略
  • 3.堆叠注意力网络(SAN)
    • 3.1 图像模型
    • 3.2 问题模型
      • 3.2.1 基于LSTM的问题模型
      • 3.2.2 基于CNN的问题模型
    • 3.3 SAN
  • 4.实验
    • 4.1 数据集
    • 4.2 Baseline和评估方法
    • 4.4结果与分析
    • 4.5 注意力层可视化
    • 4.6 误差分析
  • 5.结论

Abstract

This paper presents stacked attention networks (SANs) that learn to answer natural language questions from images. SANs use semantic representation of a question as query to search for the regions in an image that are related to the answer . We argue that image question answering (QA) often requires multiple steps of reasoning. Thus, we develop a multiple-layer SAN in which we query an image multiple times to infer the answer progressively. Experiments conducted on four image QA data sets demonstrate that the proposed SANs significantly outperform previous state-of-the-art approaches. The visualization of the attention layers illustrates the progress that the SAN locates the relevant visual clues that lead to the answer of the question layer-by-layer.

1.introduction

  随着计算机视觉和自然语言处理(NLP)的发展,图像问答(QA)成为最活跃的研究领域之一。与自然语言处理社区广泛研究的基于纯语言的问答系统不同,图像问答系统被设计为根据参考图像的内容自动回答自然语言问题。
  一种常用的方法是使用CNN提取全局图像特征向量,并使用LSTM将相应的问题编码为特征向量,然后将它们结合起来推断答案。但如果问题与图像中一组细粒度问题相关,则往往无法给出精确答案。
  有些情况需要从图像回答问题需要多步骤推理。以图1中的问题和图像为例。

  在本文中,提出了堆叠注意力网络(SAN),允许对image QA进行多步骤推理。SAN可以被视为注意力机制的扩展。它的总体架构如图1a所示。SAN由三个主要部分组成:(1)图像模型,该模型使用CNN提取高级图像表示,例如,图像的每个区域一个向量;(2) 问题模型,使用CNN或LSTM提取问题的语义向量;(3)堆叠注意力模型,通过多步骤推理,定位与问题相关的图像区域以进行答案预测。如图1a所示,SAN首先使用问题向量在第一视觉注意层中查询图像向量,然后将问题向量和检索到的图像向量组合以形成细化的查询向量,以在第二注意层中再次查询图像向量。更高层次的注意力层提供了更清晰的注意力分布,集中在与答案更相关的区域。最后,我们将来自最高注意层的图像特征与最后一个查询向量相结合来预测答案。
  作者工作的主要贡献有三个方面。首先,提出了一种用于图像问答任务的堆叠注意力网络。其次,对四个图像质量保证基准进行了全面评估,结果表明,所提出的多层SAN的性能大大优于以前最先进的方法。第三,执行了详细的分析,其中可视化了SAN不同注意力层的输出,并演示了SAN采取多个步骤逐步将注意力集中在导致答案的相关视觉线索上的过程。

2. 相关工作 略

3.堆叠注意力网络(SAN)

  SAN的三个主要组件:图像模型、问题模型和堆叠注意力模型。

3.1 图像模型

  图像模型使用CNN来获得图像的表示。具体而言,VGGNet用于从原始图像I中提取图像特征映射fI:

  与之前使用最后一个内积层的特征的研究不同,我们从最后一个池化层中选择特征fI,它保留了原始图像的空间信息。首先将图像重新缩放为448×448像素,然后从最后一个池化层中提取特征,因此其尺寸为512×14×14,如图2所示。14×14是图像中的区域数,512是每个区域的特征向量维数。因此,fI中的每个特征向量对应于输入图像的32×32像素区域。我们用fi表示每个图像区域的特征向量,i∈ [0,195]。

  为了建模方便,使用单层感知器将每个特征向量转换为与问题向量具有相同维数的新向量。

  其中vI是矩阵,其第i列vi是由i索引的区域的视觉特征向量。

3.2 问题模型

3.2.1 基于LSTM的问题模型

  LSTM单元的基本结构是保留序列状态的存储单元ct。在每一步中,LSTM单元获取一个输入向量(本例中为文字向量)xt并更新存储单元ct,然后输出隐藏状态ht。更新过程使用门机制。遗忘门ft控制来自过去状态ct-1的信息量是否保留。一个输入门,它控制当前输入xt更新存储单元的量。输出门ot控制将内存的多少信息作为隐藏状态馈送到输出。具体更新过程:

  其中i、f、o、c分别是输入门、忘记门、输出门和存储单元。权重矩阵和偏差是在训练集上学习的LSTM的参数。
  给定问题q=[q1,…qT],qT是单词在位置t处的一个独热向量表示,首先通过嵌入矩阵xt=Weqt将单词嵌入向量空间。然后,对于每个时间步,将问题中单词的嵌入向量馈送给LSTM:

  如图3所示,自行车篮子里坐着什么的问题被输入LSTM。将最终隐藏层hT作为问题的表示向量。

3.2.2 基于CNN的问题模型

  与基于LSTM的问题模型类似,我们首先将单词嵌入向量xt=Weqt,并通过连接单词向量来获得问题向量:

  然后对文字嵌入向量进行卷积运算。我们使用了三个卷积滤波器,其大小分别为一、二和三。使用窗口大小c的第t个卷积输出由以下公式得出:

  卷积大小为c的滤波器的特征图如下所示:

  在卷积大小为c的特征映射上应用最大池,并将其表示为:

  对于不同大小的卷积特征映射c=1、2、3,我们将它们串联起来,形成整个问题句的特征表示向量:

  因此,h就是基于CNN的问题向量。问题的CNN模型图如图4所示。

3.3 SAN

  在许多情况下,答案只与图像的一小部分相关。例如,在图1b中,尽管图像中有多个对象,但问题的答案仅与狗有关。因此,使用一个全局图像特征向量预测答案可能会导致次优结果,因为噪声来自与潜在答案无关的区域。相反,通过多个注意层逐步进行推理,SAN能够逐渐滤除噪声并精确定位与答案高度相关的区域。
  给定图像特征矩阵vI和问题向量vQ,首先通过单层神经网络,然后通过softmax函数来生成图像区域上的注意力分布:

  ⊕表示矩阵和向量的加法。矩阵和向量之间的加法是通过将矩阵的每一列与向量相加来实现的。
  基于注意力分布,我们计算每个区域的图像向量的加权和。然后,我们将vi与问题向量vQ相结合,形成一个精确的查询向量u。u编码了问题信息和与潜在答案相关的视觉信息。

  对于复杂的问题,单个注意层不足以定位正确的答案预测区域。因此,我们使用多个注意力层迭代上述查询注意力过程,每个层提取更细粒度的视觉注意力信息以进行答案预测。SAN采用以下公式:对于第k个注意层:

  其中u0初始化为vQ。然后,将聚合的图像特征向量添加到上一个查询向量中,以形成新的查询向量:

  在选取图像区域后,将新的查询向量更新为uk=vkI+uk−1.我们重复这K次,然后使用最终的uK来推断答案:

  图1b通过示例说明了推理过程。在第一个注意力层中,该模型大致确定了与篮子、自行车和坐姿相关的区域。在第二个注意层中,该模型更加关注与答案对应的区域。

4.实验

4.1 数据集

  在四个数据集上评估了SAN。
  DAQUAR-ALL:共有6795道训练题和5673道测试题。这些问题分别在795和654张图像上产生。这些图像主要是室内场景。问题分为物体、颜色和数字三类。大多数答案都是单字。我们排除了具有多个单词答案的数据样本。剩下的数据覆盖了原始数据集的90%。
  DAQUAR-REDUCED:DAQUAR-ALL的简化版本。有3876个训练样本和297个测试样本。该数据集被限制为37个对象类别,仅使用25个测试图像。单词答案数据集覆盖了原始数据集的98%。
  COCO-QA:基于Microsoft COCO数据集,作者首先使用现成的解析器解析图像的标题,然后用形式问题的问题词替换标题中的关键组件。数据集中有78736个训练样本和38948个测试样本。这些问题分别基于8000和4000张图像。有四种类型的问题,包括物体、数字、颜色和位置。每种类型分别占整个数据集的70%、7%、17%和6%。该数据集中的所有答案都是单个单词。
  VQA:是通过人类标记创建的。该数据集使用COCO图像字幕数据集中的图像。与其他数据集不同,每个图像有三个问题,每个问题有十个答案,由人类注释者标记。数据集中有248349个训练问题和121512个验证问题。我们使用前1000个最常见的答案作为可能的输出,这组答案覆盖了所有答案的82.67%。我们首先研究了该模型在验证集上的性能。将验证数据集分成两半,val1和val2。我们使用训练集和val1进行训练和验证,val2进行局部测试。表6中报告了val2集的结果。我们还在VQA平台提供的标准测试服务器上评估了最佳模型SAN(2,CNN),并将结果报告在表5中。

4.2 Baseline和评估方法

  对于这四个数据集,我们将图像问答描述为一个分类问题,因为大多数答案都是单字。我们使用分类精度评估了模型。参考模型还报告了Wu-Palmer similarity(WUPS)度量。WUPS度量根据两个词在分类树中的最长公共子序列计算它们之间的相似性。我们可以为WUPS设置阈值,如果相似度小于阈值,则将其置零。根据参考模型,除了分类精度外,还使用WUPS0.9和WUPS0.0作为评估指标。对VQA数据集的评估不同于其他三个数据集,因为每个问题有十个答案标签,可能相同,也可能不同。我们遵循使用以下指标:min(n/3,1),当十个人类答案标签中的三个或更多个与答案匹配时,该指标基本上对答案给予完全信任,如果匹配较少,则给予部分信任。

4.4结果与分析

  在DAQUAR-ALL、DAQUAREDUCED、COCO-QA和VQA上的实验结果如表所示。





4.5 注意力层可视化

  我们进行了分析,以证明使用多个注意力层来执行多步骤推理可以在定位与潜在答案相关的区域时逐层产生更细粒度的注意力。我们通过可视化COCO-QA测试集中图像样本集注意力层的输出来实现这一点。

4.6 误差分析

  我们从COCO-QA测试集中随机抽取了100张SAN出错的图像。我们将错误分为四类:(i)SAN将注意力集中在错误的区域(22%)(ii)SAN关注正确的区域,但预测错误的答案(42%)(iii)答案不明确,SAN给出的答案不同于标签,但可能可以接受(31%)。(iv)标签明显错误(5%)。

5.结论

  在本文中,我们提出了一种新的用于图像质量保证的堆叠注意力网络(SAN)。SAN使用多层注意力机制,多次查询图像以定位相关视觉区域并逐步推断答案。实验结果表明,提出的SAN在所有四种图像质量保证数据上都显著优于以前的现有状态方法。

Yang Z, He X, Gao J, et al. Stacked attention networks for image question answering[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 21-29.

Stacked Attention Networks for Image Question Answering(用于图像问答的堆叠注意力网络)相关推荐

  1. 《Stacked Attention Networks for Image Question Answering》论文解读与实验

    这是去年10月份,自己看的第一篇关于VQA的论文,由于课程内容需要,对论文内容理解得还算深入,并在github上找了一些代码来实验.下面直接开始~ 1. 实验目的 完成一项视觉问答(VQA)的任务,即 ...

  2. 2.阅读笔记Stacked Attention Networks for Image Question Answering(堆叠式注意力网络)

    Stacked Attention Networks for Image Question Answering(堆叠式注意力网络) 一,介绍 这篇论文提出了一种用于图像问答任务的堆叠式注意力网络SAN ...

  3. Stacked Attention Networks for Image Question Answering

      这篇文章提出SAN模型,SAN将问题作为一个查询条件,在图中寻找与问题相关的区域,主要贡献:   1.提出SAN模型处理VQA任务:   2.在四个数据集上验证SAN模型的性能:   3.详细的分 ...

  4. 《Hierarchical Attention Network for Document Classification》—— 用于文本分类的层次注意力网络

    目录 <Hierarchical Attention Network for Document Classification>-- 用于文本分类的层次注意力网络 1.文本分类 1.1 文本 ...

  5. 【论文分享】Relation-Aware Graph Attention Network for Visual Question Answering

    分享一篇nlp领域运用注意力机制设计视觉问答系统的文章,只是对文章进行翻译以及简单的归纳. 目录 二.动机 三.方法 1.问题定义 2.模型结构 2.1 图的构建 2.2 关系编码器 2.3 多模融合 ...

  6. 《Deep Modular Co-Attention Networks for Visual Question Answering》论文翻译

    论文地址:https://doi.org/10.48550/arXiv.1906.10770 代码地址:GitHub - MILVLG/mcan-vqa: Deep Modular Co-Attent ...

  7. 论文阅读—Relation-Aware Graph Attention Network for Visual Question Answering

    论文阅读-Relation-Aware Graph Attention Network for Visual Question Answering 一.标题 用于视觉问答的关系感知图注意力网络 二.引 ...

  8. AAAI 2020 Location-aware Graph Convolutional Networks for Video Question Answering

    动机 视频问答(Video QA)是计算机视觉领域的一个新兴课题,由于其在人工问答系统.机器人对话.视频检索等方面的广泛应用,近年来受到越来越多的关注.与深入研究的图像问答(Image QA)任务不同 ...

  9. CVPR 2019 | 用于场景分割的双重注意力网络

    场景分割是目前应用前景非常广泛的方向之一,对场景进行精确的分割始终有着显著的实际意义并且极富挑战.来自中国科学院自动化研究所模式识别国家重点实验室的文章<Dual Attention Netwo ...

最新文章

  1. 用ABAP代码读取S/4HANA生产订单工序明细
  2. 2022年全球及中国晶圆探针卡市场需求策略与发展格局规模预测报告
  3. boost::hana::type_c用法的测试程序
  4. 企业大数据应用成熟度如何?大多数企业处于自嗨中
  5. 如何在 C# 8 中使用默认接口方法
  6. qt如何实现backspace的功能_如何实现知识星球列表拖拽功能
  7. Delphi/C#之父:Anders Hejlsberg
  8. Spring配置redis(自定义方法)
  9. squid的sarg安装跟配置,版本2.3.5
  10. DOS命令追加符的使用
  11. Netlink0004 --- 多播机制的用法
  12. 用计算机软件绘制思维导图,无需其他软件!用Word 2016快速制作思维导图
  13. moudbus报文解析
  14. 不积跬步无以至千里,不积小流无以成江海
  15. 301work 不积跬步无以至千里Asp.net程序
  16. 北大青鸟消防控制器组网_北大青鸟消防报警主机维修与调试
  17. CS231n:Python Numpy教程
  18. ​保时捷拟IPO:估值或超800亿美元 与大众有多年恩怨情仇
  19. 人脸识别之FaceNet
  20. Pygame 官方文档 - pygame.key

热门文章

  1. 苹果手用计算机解锁手机密码,苹果手机密码忘了怎么解锁(解决方法大全)
  2. pc调试微信h5页面提示Pending authentication:please accept debugging session on the device的解决方法
  3. adb shell 查看手机根目录
  4. 智联招聘内讧致员工心理不稳 穆穆-movno1
  5. 2/8法则系列 | 你真的了解二八法则吗?
  6. python运算均值方差_Python 做大量组合的均值方差模型
  7. NLP初学-Word Segmentation(分词)
  8. POI解决读入Excel内存溢出
  9. 体脂秤模块的原理和基本功能说明
  10. 定积分积分换元之区间再现(a+b-x)+一元微积分