Visual Question Answering with Memory-Augmented Networks阅读心得
本文中利用记忆增强神经网络来预测视觉问题的准确答案,即使这些答案很少出现在训练集中。记忆网络结合了内部和外部记忆块,并有选择地关注每个训练范例。证明了在答案重尾分布的VQA环境中,记忆增强神经网络能够保持对稀缺训练样本的相对长期记忆。
一、文章引入
现有的VQA系统训练深度神经网络存在的两个问题:
1)首先,使用基于梯度的方法训练的深度模型学会响应大多数训练数据,而不是特定的稀缺样本。然而,在自然语言中,问答对往往是重尾分布的。现有的方法将问题中的稀有词标记为无意义的未知标记(例如,unk),并简单地将稀有答案排除在训练集之外。
2)其次,现有的VQA系统从问答对中了解对象的属性,有时独立于图像。VQA算法在没有底层模型真正理解视觉内容的情况下,会受到人类语言的偏见。
本文使用内存网络来记住罕见的事件,并建议学习记忆增强网络,注意VQA的罕见答案。首先采用共同注意机制来共同嵌入图像和问题特征。然后学习记忆增强网络,保持长期记忆稀缺的训练数据。本文提出的的方法与动态内存网络的显著不同之处在于,本文的内存网络既包含LSTM内部的内存,也包含由LSTM控制的外部内存,而动态内存网络只实现了注意门控递归单元(attention gated unit, GRU)内部的内存。
二、内容简介
下图给出了本文所提出算法的主要步骤。
图一:使用预先训练的CNNs的最后一个池化层来提取编码空间布局信息的图像特征。使用双向LSTMs为每个单词生成一个固定长度的特征向量。一种关注相关图像区域和文本文字的协同注意机制。将参与的图像和问题特征向量连接起来,并将它们输入到一个由标准LSTM作为控制器和一个扩充的外部存储器组成的记忆扩充网络中。控制器LSTM决定何时从外部内存写入或读取。记忆增强网络在保持对稀缺训练数据的长期记忆方面起着关键作用。将记忆增强网络的输出作为图像和问题对的最终嵌入,并将此嵌入提供给分类器以预测答案。
2.1 Input Representation
Image Embedding使用预先训练好的VGGNet-16和ResNet-101提取CNN特征。将图像大小调整为448×448,然后将其输入CNNs。将VGGNet-16的最后一个池化层(pool5)或ResNet-101的最后一个池化层(res5c)的输出作为对应于14×14个空间分布区域的图像特征。用{v1,…,vN}来表示输出特征,其中N = 196为区域总数,vN为第N个特征向量,VGGNet-16为512维,ResNet-101为2048维。
Question Embedding如图一所示,利用双向LSTMs来生成问题特征。{w1,…,wT}为含有T个单词的输入问题的独热向量。应用一个嵌入矩阵M将单词嵌入到另一个向量空间,即xt= Mwt。然后将嵌入的向量送入双向LSTMs:
式中h+t和h−t分别表示t时刻前后LSTMs的隐含状态。将双向状态h+t和h−t连接起来作为特征向量qt= [h+ t,h−t]来表示输入问题中的第t个单词。
2.2 Sequential Co-Attention
给定一对视觉特征向量和问题特征向量,协同注意机制旨在关注每一类特征中与另一类特征相对的最相关部分。设{vn}和{qt}分别为视觉特征向量和问题特征向量。计算一个基向量m0来建议后面的注意计算:
⊙是逐元素乘积。 为了确保视觉特征向量v0和问题特征向量q0具有相同的维,将双向LSTM的隐藏状态的大小设置为视觉特征向量vn的一半。 对视觉和问题特征向量进行相同的共同注意机制,利用双层神经网络来实现软注意 。 为了视觉注意,软权重{αn| n = 1,…,N}和关注的视觉特征向量v 如下:
其中Wv,Wm和Wh表示隐藏状态。 类似地,按以下方式计算参与问题特征向量q :
将参与的向量v和q连接起来,以表示输入图像和问题对。图二显示了共同注意机制的流程。
2.3 Memory Augmented Network
作者希望有一种机制可以有选择地更多地关注稀缺的训练项目,这些项目在大量的训练迭代过程中总是被忽略。 先前的工作已经表明,RNN可以作为一种注意机制,从先前的时间步中参考隐藏状态来选择当前输入中最相关的部分。 但是,RNN缺乏外部存储器来维护稀缺训练数据的长期存储器。
本文中,作者建议使用一个记忆扩增神经网络的VQA。具体来说,利用标准的LSTM网络作为控制器,它接收输入数据并使用一些读写头与外部内存模块进行交互。LSTM具有内部内存,其功能类似于GRU。但是,本文的内存扩充网络与GRU的显著不同之处在于,除了LSTM中的内部内存之外,还利用了外部内存Mt,它可以读写。具体地说,内存块mt由一组作为内存槽的行向量组成。
令{xt,yt},t = 1,…,T是整体T训练数据,其中xt = [v*t,q*t]表示视觉和问题特征向量的级联,而yt是相应的独热编码答案向量。 首先将特征向量xt馈入LSTM控制器,如下所示:
为了从外部内存Mt中读取,将隐藏状态ht作为Mt的查询。首先,计算查询向量ht和内存中每一行的余弦距离:
接下来,计算读取操作的权重向量wr,在余弦距离上使用softmax:
通过这些读取权值,可以得到一个新的内存rt:
最后,将新的记忆向量rt与控制器隐藏状态ht连接起来,生成学习分类器的输出向量ot。
先前的存储网络依靠可学习的门将新的输入数据写入特定的存储地址中。 尽管在基于序列的预测任务中表现良好,但是该方案对于处理重尾训练数据而不是序列的联合编码的VQA任务并不是最佳的。 在这种情况下,作者希望在将新信息写入很少使用的位置和写入最近使用的位置之间取得平衡。 与记忆增强神经网络相似,使用权重wut来控制写入内存。 通过衰减其先前状态并添加当前读写权重来更新每个时间步的使用权重:
此处,γ是衰减参数。 为了计算写入权重,本文引入了一种截断方案来更新最少使用的位置。 请注意,这种截断方案有利于网络为重尾训练数据维持较长的存储时间,而不是迅速消除其影响。 在这里,使用符号m(v, n)表示向量v的第n个最小元素。应用可学习的sigmoid门参数来计算先前读取的权重和使用权重的组合:
此处,σ(·)为S形函数,,α为标量参数。 如果x为true,则指示符函数✶(x)返回1,否则返回0。较大的n导致对稀缺训练数据的存储期限更长。 与LSTM内部的内部存储器相比,参数γ和n都可以调整写入外部存储器的速率。这给了我们更多的自由来调节内存更新。 根据写入权重,将输出隐藏状态ht写入内存:
2.4. Answer Reasoning
将隐藏状态ht和读取内存rt连接起来,作为图像和问题对的最终嵌入ot= [ht,rt]。通过ot生成输出分布。特别地,使用由线性隐层和softmax函数组成的单层感知器来输出分类分布。分类分布产生一个向量pt,其元素显示类的概率:
这里Wo和Wh是线性层的隐藏参数。在训练阶段,给定输出分布pt,通过最小化输入独热编码标签向量yt的损失,对网络进行优化:
三、实验结果
在VQA基准上的单模型准确率。
成分分析。递增地添加组件以获得更好的性能。
使用CNN(VGGNet)图像嵌入或不嵌入外部存储器的准确性和损失,并提供前3000个答案,以进行VQA基准测试的训练+验证集。
VQA基准v2.0的结果
Visual 7W Telling 数据集的准确性。
四、主要贡献
1.使用记忆增强网络来提高注意网络的能力,以记住不常见的问题和答案对的视觉问题回答。
2.使用共同注意机制来关注最相关的图像区域和文本文字,然后共同嵌入图像和问题特征。