Stacked Attention Networks for Image Question Answering阅读笔记

本文介绍了Stacked Attention Networks(SANs)如何用于图像问答任务,通过CNN和LSTM提取图像和问题的特征,并利用堆叠的注意力模型逐步定位答案相关的图像区域。实验表明,多层注意力机制能有效提升模型的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文提出了一种学习从图像中回答自然语言问题的堆叠注意力网络(SANs)。SANs使用问题的语义表示作为查询来搜索图像中与答案相关的区域。
文章链接:Stacked Attention Networks for Image Question Answering
一、模型
在这里插入图片描述
SAN由三个主要部分组成:
(1)图像模型,使用CNN提取高级图像表示;
(2)问题模型,使用CNN或LSTM提取问题的语义向量;
(3)堆叠的注意模型,通过多步推理,定位出与问题相关的图像区域,进行答案预测。
二、模型精读
2.1 Image Model
图像模型使用CNN来获得图像的表示。具体地说,VGGNet用于从原始图像I中提取图像特征映射fI
在这里插入图片描述
与以往的研究使用最后一个内积层的特征不同,本文使用最后一个池化层特征fI,它保留了原始图像的空间信息。首先将图像重新缩放为448×448像素,然后从最后一个池化层获取特征,因此该层的尺寸为512×14×14,如图2所示。14×14是图像中的区域数,512是每个区域的特征向量的维数。因此,fI中的每个特征向量对应于输入图像的32×32像素区域。用fi,i∈[0195]表示每个图像区域的特征向量。
为了便于建模,使用单层感知器将每个特征向量转换为一个新的向量,该向量与问题向量具有相同的维数
在这里插入图片描述
其中vI是一个矩阵,其第i列vi是i索引的区域的视觉特征向量。
2.2 Question Model
本研究中探索了两种用于表示问题的模型。
2.2.1 LSTM based question model
在这里插入图片描述
LSTM单元的基本结构是保留序列状态的存储单元ct。 在每个步骤中,LSTM单元获取一个输入向量(在本文中为字向量)xt并更新存储单元ct,然后输出隐藏状态ht。 更新过程使用门机制。 遗忘门ft控制从过去状态ct-1保留多少信息。 输入门it控制当前输入xt更新存储器单元的量。 输出门ot控制将多少存储器信息作为隐藏状态馈送到输出。 详细的更新过程如下:
在这里插入图片描述
其中i,f,o,c分别是输入门、遗忘门、输出门和存储单元。权值矩阵和偏差是LSTM的参数,在训练数据中学习。
给定问题q=[q1,…,qT],其中qT是单词在t位置的独热向量表示,首先通过嵌入矩阵xt=Weqt将单词嵌入到向量空间中。然后,对于每个时间步,将问题中单词的嵌入向量馈送给LSTM:
在这里插入图片描述
如图3所示,“what are sitting in the basket on a bicycle”问题被输入LSTM。最后的隐藏层作为问题的表示向量,即vQ=hT
2.2.2 CNN based question model
在这里插入图片描述
与基于LSTM的问题模型类似,首先将单词嵌入向量xt=Weqt,然后通过连接单词向量得到问题向量:
在这里插入图片描述
然后对单词嵌入向量进行卷积运算。我们使用了三个卷积滤波器,它们的大小分别是1(一元)、2(二元)和3(三元)。使用窗口大小c的第t次卷积输出如下
在这里插入图片描述
过滤器仅应用于尺寸为c的窗口t:t+c−1。wc是卷积权重,bc是偏差。卷积尺寸为c的滤波器的特征映射如下所示:
在这里插入图片描述
然后在卷积大小为c的特征映射上应用max pooling,并将其表示为
在这里插入图片描述
这些向量上的最大池是一个坐标最大化操作。对于不同大小的卷积特征映射c=1,2,3,我们将它们串联起来形成整个问句的特征表示向量:
在这里插入图片描述
因此,vQ=h是基于CNN的问题向量。
问题的CNN模型示意图如图4所示。一元组、双元组和三元组的卷积层和池层分别用红色、蓝色和橙色绘制。
2.2.3 Stacked Attention Networks
给出图像特征矩阵vI和问题特征向量vQ,SAN通过多步推理预测答案。
在许多情况下,答案只与图像的一小部分有关。例如,在图1b中,虽然图像中有多个对象:自行车、篮子、窗户、街道和狗,但问题的答案只与狗有关。因此,使用一个全局图像特征向量来预测答案可能会由于来自与潜在答案无关的区域的噪声而导致结果不理想。相反,通过多个注意力层逐步推理,SAN能够逐渐过滤掉噪音并精确定位与答案高度相关的区域。
给定图像特征矩阵vI和问题向量vQ,首先通过单层神经网络,然后使用softmax函数生成图像区域的注意力分布:
在这里插入图片描述
其中vI∈Rd×m,d是图像维度,m是图像区域数,vQ∈Rd是d维向量。 假设WI,A,WQ,A∈Rk×d、WP∈R1×k,则pI∈Rm是一个m维向量,对应于给定vQ的每个图像区域的关注概率。 注意,我们用⊕表示矩阵和向量的加法。 由于WI,AvI∈Rk×m并且WQ,AvQ,bA∈Rk都是向量,因此通过将向量的矩阵的各列相加来执行矩阵与向量之间的加法。
基于注意力分布,计算图像向量的加权和,每个向量来自一个区域,如式17所示。然后将˜vi与问题向量vQ相结合,形成一个精确的查询向量u,如等式18所示。u被视为一个精确的查询,因为它同时编码了问题信息和与潜在答案相关的视觉信息:
在这里插入图片描述
与简单地将问题向量和全局图像向量相结合的模型相比,注意力模型构造了一个信息量更大的u,因为对与问题更相关的视觉区域赋予了更高的权重。然而,对于复杂的问题,单一的注意层不足以定位正确的答案预测区域。例如,图1中的问题"what are sitting in the basket on a bicycle "指的是图像中多个物体之间的微妙关系。因此,我们使用多个注意层来迭代上述的查询注意过程,每个注意层都提取出更细粒度的视觉注意信息来进行答案预测。形式上,SAN采用以下公式:对于第k个注意层:
在这里插入图片描述
其中u0初始化为vQ,然后将聚合后的图像特征向量加到上一个查询向量上,形成新的查询向量:
在这里插入图片描述
也就是说,在每一层中,使用合并的问题和图像向量uk-1作为图像查询。 选取图像区域后,将新查询向量更新为uk =˜vkI + uk-1。 重复此操作K次,然后使用最终的uK推断答案:
在这里插入图片描述
图1b通过示例示出了推理过程。在第一个注意层,模型大致识别出与篮子、自行车和坐姿相关的区域。在第二个注意层中,模型更加集中于与答案狗对应的区域。
三、实验结果
在这里插入图片描述
在这里插入图片描述
四、主要贡献
  1.提出SAN模型处理VQA任务;
  2.在四个数据集上验证SAN模型的性能;
  3.详细的分析了SAN不同层的输出,以及证明了多次执行SAN能有效的在图中注意到与问题相关的区域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值