【论文】VQA:学习可解释的可视问题解答的条件图结构

目录

【论文】VQA:学习可解释的可视问题解答的条件图结构

摘 要

一、模型结构图

二、Computing model inputs

三、Graph learner

四、Spatial graph convolutions

五、Prediction layers and Loss function

六、Results



摘 要

Visual Question answering is a challenging problem requiring a combination of concepts from Computer Vision and Natural Language Processing. Most existing approaches use a two streams strategy, computing image and question features that are consequently merged using a variety of techniques. Nonetheless, very few rely on higher level image representations, which can capture semantic and spatial relationships. In this paper, we propose a novel graph-based approach for Visual Question Answering. Our method combines a graph learner module, which learns a question specific graph representation of the input image, with the recent concept of graph convolutions, aiming to learn image representations that capture question specific interactions. We test our approach on the VQA v2 dataset using a simple baseline architecture enhanced by the proposed graph learner module. We obtain promising results with 66.18% accuracy and demonstrate the interpretability of the proposed method. Code can be found at github.com/aimbrain/vqa-project.

视觉问题回答是一个具有挑战性的问题,需要结合计算机视觉和自然语言处理。大多数现有方法使用两个流策略,计算图像和问题的特征,然后使用各种技术将其融合。然而,很少有方法使用可以捕捉语义和空间关系的更高级的图像表示。本文提出了一种新的基于图的可视化问答方法。我们的方法将图学习器模块(它学习输入图像的特定问题的图表示)与最近的图卷积概念相结合,旨在学习捕获问题相关的图表示。我们在VQA v2数据集上使用一个简单的 baseline architecture 测试我们的方法,该架构由提出的 graph learner module 增强。我们获得了令人满意的结果,准确率为66.18%,证明了该方法的可解释性。


一、模型结构图

本文将VQA问题建模为分类问题,其中训练集中的每个答案都是一类。改模型的核心是 Graph learner,它的输入是经过 Question encoder 编码得到的embedding和一组带有相应图像特征的对象边界框作为输入。图学习器模块学习以问题为条件的图像的图表示,并为场景中对象之间的相互关系建模。我们使用这种图形表示法,通过 Spatial graph convolutions,Max pool 和 Dense layer,来学习受其相邻接点影响的图像特征。


二、Computing model inputs

模型的第一阶段是计算 Graph learner module 的输入,question embedding 和 image embedding。对于 image embedding ,模型通过一个 Object detector 检测出图像中的K个对象,并对每个对象的 bounding box 生成一个embedding(是特征图中该bounding box 特征的平均值),每个边界框作为图的结点。对于question embedding,模型使用预训练的词嵌入将问题转换为可变长度的嵌入序列。然后,使用带有GRU单元的动态RNN,将单词嵌入的序列编码为单个问题嵌入。


三、Graph learner

Graph learner module 是该模型的核心,该模块生成的以问题为条件的图表示直接影响到 Spatial graph convolutions module 的训练。该模块的目标是输出一个图结构 G=\left \{\nu, \varepsilon,A \right \},其中 \varepsilon 是需要学习的边的集合,A [N,N]是相应的邻接矩阵。每一个v\in \nu\left | \nu \right |=N)对应于图像中的一个对象。模型需要学习到邻接矩阵 A,以便每个边都以问题编码q为条件。因此,需要对特征向量之间的相似性及其与给定问题的相关性进行建模。首先,将 question embedding q 与 N 个视觉特征v_{n}相连接,然后计算联合嵌入:

e_{n}=F\left \(\left [ v_{n}||q \right ] \right \), n=1, 2, 3,...,N

其中F:\mathbb{R}^{d_{v}+d_{q}}\rightarrow \mathbb{R}^{d_{e}} 是一个非线性函数。然后将联合嵌入 e_{n} 组成矩阵E\in \mathbb{R}^{N\times d_{e}} ,则可以为具有自环的无向图定义邻接矩阵为:A=EE^{T},从而A_{i, j}=e_{i}^{T}e_{j}。这样的定义不对图稀疏度施加任何约束,因此可以产生完全连接的邻接矩阵。这不仅是计算上的问题,而且绝大多数VQA问题只需要关注图节点的一小部分。学到的图结构将是后续图卷积层的骨干,其目的是学习以最相关,特定于问题的邻居为条件的对象特征的表示。这需要一个稀疏的图形结构,关注图像最相关的方面。为了学习每个节点的邻接节点,我们采用一种排序策略,如下所示:

N\left ( i \right )=topm(a_{i})

其中topm返回输入向量的m个最大值的索引。换句话说,给定节点的邻接节点将与它具有最强连接的节点相对应。


四、Spatial graph convolutions

改模型为每一个顶点定义了一个伪坐标(pseudo-coordinate)函数u\left ( i, j \right ),该函数返回一个极坐标向量\left ( \rho , \theta \right ),描述顶点 i, j 对应的边界框中心点的相对位置。在实验中,作者将笛卡尔坐标和极坐标都视为高斯核的输入,并观察到极坐标的效果明显更好。作者猜测这是因为极坐标将方向(θ)和距离(ρ)分开,从而提供了两个分离的因子来表示空间关系。

图CNN的一个基本步骤和挑战是定义补丁运算符,以描述对不规则邻域结构具有鲁棒性的每个相邻节点的影响。文中使用一组具有可学习均值和协方差的K个高斯核来实现,其中均值可解释为伪坐标中的方向和距离。作者为每个高斯核获得一个核权重w_{k}\left ( u \right ),这样,对于结点 i 的第 k 个高斯核的补丁运算符定义为:

f_{k}\left ( i \right )=\sum_{j\in N\left ( i \right )} w_{k}\left ( u\left ( i, j \right ) \right )v_{j}

其中 f_{n}\left ( i \right )\in \mathbb{R}^{d_{v}} , N\left ( i \right ) 表示所描述的顶点的邻域,考虑一个给定的顶点 i,我们可以把补丁运算符输出看作相邻特征的加权和,其中高斯核的集合描述了每个相邻特征对卷积运算输出的影响。

作者调整面片运算符,使其包含一个附加权重因子,该权重因子取决于生成的图的边:

f_{k}\left ( i \right )=\sum_{j\in N\left ( i \right )} w_{k}\left ( u\left ( i, j \right ) \right )v_{j}\alpha _{i, j}

其中\alpha _{i, j}=s\left ( a_{i}_{j} \right ),其中s\left ( \cdot \right )是缩放函数(此处定义为所选邻接矩阵元素的softmax)。这种更一般的形式意味着顶点之间传递的消息的强度还可以通过除空间方向之外的信息来加权。对于我们的用例来说,这可以解释为网络在回答一个问题时,应该对两个节点之间的关系应该给予多少关注。因此,网络学会了以问题为条件,以成对的方式关注视觉特征。

最后,我们将顶点 i 处卷积运算的输出定义为K个核的连接:

h_{i}=||_{k=1}^{K}G_{k}f_{k}\left ( i \right )

其中 G_{k}\in \mathbb{R}^{\frac{d_{h}}{k}\times d_{v}} 是可学习权重的矩阵 (the convolution filters),d_{h}是输出卷积特征的选定维数。最后得到图表示:H\in \mathbb{R}^{N\times d_{h}}


五、Prediction layers and Loss function

经过上述步骤,我们得到了卷积图表示,接下来就可以进行答案预测了。本文通过跨节点维度的max-pooling layer来计算图hmax的全局向量表示。选择这个操作是为了得到一个排列不变的输出,为了简单起见,所以重点是图结构的影响。这个图的向量表示可以被认为是图的高度非线性压缩,其中该表示已经被优化用于回答当前的问题。然后,我们通过简单的逐元素乘积合并问题q和图hmax encodings。最后,我们通过具有ReLU激活的2层MLP计算分类对数。

本文使用一个带有软目标分数的sigmoid激活函数,该函数已被证明能产生更好的预测。它允许考虑每个问题的多个正确答案,并提供关于每个答案可靠性的更多信息。假设每个问题与提供的n个有效答案相关联,我们将每个类别的软目标分数计算为t=\frac{number of votes}{n},如果答案不在顶部答案中(即所考虑的类),则它在目标向量中没有相应的元素。然后,我们计算多标签软丢失,这只是目标矢量中每个元素的二进制交叉熵损耗的总和。:

其中 y 是logit vector。


六、Results

图3:参数探索的结果。报告了每种问题类型的VQA分数,其中包含内核数(K)和邻域大小(m)的各种设置。左图显示了m的变化,同时保持K = 8,右图显示了k的变化,同时保持m = 16。

表1:VQA 2.0标准测试集结果-与基线和最新技术水平的比较

【论文】VQA:Learning Conditioned Graph Structures for Interpretable Visual Question Answering相关推荐

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

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

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

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

  3. VideoQA论文阅读笔记——TGIF-QA: Toward Spatio-Temporal Reasoning in Visual Question Answering

    论文: TGIF-QA: Toward Spatio-Temporal Reasoning in Visual Question Answering 作者: 首尔国立大学 来源: CVPR2017 源 ...

  4. 论文代码细读(初学者入门,两张图看懂塔克融合论文代码)MUTAN: Multimodal Tucker Fusion for Visual Question Answering

    入门小技巧 一,pycharm快捷键使用(参考)可以快速在多个文件中找到函数,参数调用关系 ctrl+f: 搜索打开的文件中的关键字 ctrl+f+shift:全局文件搜索关键字 ctrl+n:查找. ...

  5. 论文笔记:Visual Question Answering as a Meta Learning Task

    Visual Question Answering as a Meta Learning Task  ECCV 2018 2018-09-13 19:58:08 Paper: http://opena ...

  6. <<视觉问答>>2021:Learning Compositional Representation for Few-shot Visual Question Answering

    目录 摘要 一.介绍. 二.RELATED WORK A. Visual Question Answering (VQA) B. Few-shot Learning C. Learning with ...

  7. Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记

    Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记 一.Abstract 二.引言 三.R ...

  8. <<视觉问答>>2021:Zero-shot Visual Question Answering usingKnowledge Graph

    目录 摘要: 一.介绍 二.相关工作 2.1.Visual Question Answering 2.2.Zero-shot VQA 三.Preliminaries 四.Methodology 4.1 ...

  9. R-VQA: Learning Visual Relation Facts with Semantic Attention for Visual Question Answering

    博主水平有限,大部分为机翻 摘要: 最近,视觉问答(VQA)已经成为多模式学习中最重要的任务之一,因为它需要理解视觉和文本模式.现有方法主要依靠提取图像和问题特征来通过多模态融合或注意机制来学习它们的 ...

最新文章

  1. 工业4.0的十大关键词
  2. Mysql---之Mysqladmin修改账号密码方式
  3. linux root ssh 安全,linux ssh安全加固方法
  4. Django之orm查询
  5. LeetCode 1003. 检查替换后的词是否有效(栈)
  6. Android小知识-了解下Android系统的显示原理
  7. python中psum是什么意思_python中**是什么
  8. micropython 人脸识别检测_Flask实战!从后台管理到人脸识别,六款优质Flask开源项目介绍...
  9. android 方形按钮代码,Android中实现图文并茂的按钮实例代码
  10. linux 指定范围内查找文件,Linux Find命令查找指定时间范围内的文件的例子
  11. php升维,svm算法详解
  12. mysql 查询递归自身,mysql 递归查新
  13. 小程序啦啦外卖、码科跑腿、云贝外卖各种问题汇总解决对策
  14. 小程序界面设计难?有了这个高颜值UI,我带你一步步解决所有难题
  15. 5.FlashFXP连接失败(连接已拒绝)及530 permission denied(以root用户连接已被客户端关闭)
  16. IOS关闭锁屏状态下左滑相机
  17. 用python画蜡笔小新的步骤_蜡笔小新 - python代码库 - 云代码
  18. 分布式链路追踪系统深入理解
  19. 临床执业助理医师(综合练习)题库【2】
  20. QCA switch芯片配置说明

热门文章

  1. 用户体验、用户需求、用户分析的探讨
  2. 小程序图表 - wxCharts ,圆环图的应用
  3. CCF认证 2015-12 消除类游戏
  4. python声明变量
  5. Curve fitting之matlab
  6. HikariPool-1 - Connection is not available 配置
  7. 【WLAN】Wi-Fi Direct---从 Android 13 supplicant 视角分析 Go端代码
  8. Authentication
  9. freenas mysql_测试freenas9.1搭建iscsi磁盘库
  10. c语言int四个字节取值范围,int的取值范围怎么算