Attention Model in Visual Question Answering

注意力机制常常用于Visual Question Answering和Image Caption中,此篇主要介绍VQA中的注意力机制。

《Recurrent Models of Visual Attention》

https://github.com/jlindsey15/RAM

https://github.com/kevinzakka/recurrent-visual-attention

使用强化学习的方法。模拟人类看东西的方式,从上到下,从左到右扫描图片,从一个区域到另一个区域。这里的“区域”即时定义的part或glimpse。本文提出了注意力驱动的RNN框架,按照时间顺序处理输入,一次处理一张图片中不同的位置。本文将注意力问题看作是目标引导的序列决策过程,在一个时间点,agent只能根据有限范围的感受器来观察全局。agent可以自主选择感知的位置区域,可以通过执行actions来影响环境的真实状态。由于环境只是部分可观察,需要额外的信息来辅助决定如何行动和如何有效选择感知区域。每一步agent都会受到奖励或惩罚,目标是把奖励最大化。

glimpse网络中lt表示步骤t的位置,xt表示步骤t的图像x,p(xt,lt-1)表示步骤t的glimpse,使用以为参数的线性层映射到隐藏空间,再通过另一个以为参数的线性层将前两步结合,产生t步骤的glimpse特征向量gt,这个过程定义为函数。gt传入隐藏层ht并且结合ht-1的内部表示,location网络和action网络使用ht生成下一位置lt和action/classification at。

在执行一个action后,agent会收到一个新的visual observation xt+1和一个奖励信号rt+1。

 

《Show, Ask, Attend, and Answer: A Strong Baseline For Visual Question Answering》

https://github.com/Cyanogenoid/pytorch-vqa

image embedding:用即CNN最终14x14x2048池化层前一层结果的三维张量来表示输入图像;question embedding:用s即用q做word embedding输入LSTM的最终状态来表示问题。

计算多注意力在图像特征的空间维度分布:每个图像特征glimpse xc是图像特征在所有位置的加权平均,注意力权重分别对每个glimpse c做normalize。F={F1,F2,...,FC}实际上是用两个卷积层来建模,每个Fi在第一层共享参数。

 

《Where To Look: Focus Regions for Visual Question Answering》

输入问题、候选答案和从一系列自动选择的候选区域得到的图像特征,用word2vec和一个两层网络将问题和回答编码。每个区域的视觉特征用一个在ImageNet上训练的CNN的最上两层进行编码。语言和视觉特征通过点积嵌入和比较,即用softmax来生成每个区域相关的权重。用这些权重和一个视觉语言联合特征的加权平均作为一个两层网络的输入,输出答案是否正确。

 

《Stacked Attention Networks for Image Question Answering》

https://github.com/zcyang/imageqa-san

本文提出了一个栈式注意力网络来学习回答图像的自然语言问题,很多时候答案只和图像中的一个小区域有关,SAN网络逐渐滤掉噪声和精确找到与答案高度相关的区域,通过多步推理预测答案。

用CNN提取图像特征,用LSTM或CNN编码问题。给定图像特征矩阵VI和问题特征矩阵VQ,输入到单层神经网络中,经过softmax生成图像中区域的注意力分布(d是图像展示维度,m是图像区域数量,VQ是一个d维向量,,pI是一个m维向量表示对于VQ的每个区域的注意力可能性),将这个过程多次迭代最终得到问题相关区域:

 

《Dual Attention Networks for Multimodal Reasoning and Matching》

双重注意网络模型,利用视觉和文字共同注意力机制捕捉视觉和语言之间的细微互动。r-DAN用于多模式推理,M-DAN用于多模式匹配,分享同一个框架,但在视觉和文本关注方面有差异。

图像特征通过19层的VGG或152层的ResNet提取。先将图像缩放到448x448并将他们输入到CNN中,使用VGG或ResNet的最后一个池化层来获取图像特征。最终输入图像由{v1,v2,...,vN}来表示,N是图像区域的数量,vn是一个512维(VGG)/2048维(ResNet)的特征向量。

视觉注意通过关注图像的某些部分来生成上下文向量(k步骤,为k-1步骤之前信息编码的记忆向量):

这里使用soft attention机制,上下文向量从输入特征向量的加权平均获得,注意力权重使用一个两层feed-forward神经网络和softmax函数计算(h是隐藏状态,\alpha是注意力权重,W为参数,\odot是element-wise乘法):

文字特征通过双向LSTM生成文字特征。注意力计算省略。

 

《Hierarchical Question-Image Co-Attention for Visual Question Answering》

本文提出图像特征引导文本注意力,文本特征引导图像注意力的系统注意力机制,构建了word-level,phrase-level,question-level的co-attention maps。

图像特征V={v1,v2,..,vN},vn表示空间位置n的图像特征向量;问题特征Q={q1,q2,...,qT},qt表示第t个单词的特征向量。将单词映射到向量空间表示为Qw={q1w,q2w,...,qTw},由此可以计算phrase-level的特征qtp和question-level的特征qts(略)。

本文提出两种协同注意力机制:

parallel co-attention同时产生图像和问题注意力。根据图像特征V和问题表达Q,计算affinity matrix C(Wb表示权重):

计算图像注意力可以maximize out the affinity over the locations of other modality,例如:,也可以将affinity matrix当作一个特征,如下计算图像和问题attention maps:

基于上述注意力权重,图像和问题的注意向量可以用图像和问题特征的权重和来计算:

alternating co-attention顺序产生图像和问题注意力。包括三个步骤:问题总和为单个向量q,基于问题总和q得到图像注意力,基于图像注意力特征得到问题注意力。定义一个注意力操作,X为图像/问题特征,g为从图像/问题中导出的注意力引导g,输出图像/问题的注意力向量(是元素全为1的向量):

一开始g=0,X=Q;第二步X=V,V是图像特征,g是从第一步得到的intermediate attended问题特征s;最后使用attended图像特征v作为引导来attend问题,如X=Q,g=v。

VQA可以作为一个分类任务,基于三层co-attended的图像和问题特征来预测答案。

 

 

 

参考链接:

https://blog.csdn.net/ccbrid/article/details/79730645

https://github.com/TiantianWang/CVPR2017-Attention-Models

http://www.cnblogs.com/wangxiaocvpr/p/5537454.html

https://blog.csdn.net/shenxiaolu1984/article/details/51582185

https://github.com/Element-Research/rnn

https://blog.csdn.net/lsh894609937/article/details/68219797

https://blog.csdn.net/mukvintt/article/details/80299301

https://www.cnblogs.com/wangxiaocvpr/p/9052371.html

https://blog.csdn.net/lsh894609937/article/details/70057577

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值