Advertisement

Tips and Tricks for Visual Question Answering: Learnings from the 2017 Challenge阅读笔记

阅读量:

本文提出了一种基于深度神经网络的视觉问答(VQA)模型,并通过一系列实验验证了其有效性及各组件的重要性。研究结果表明:

  1. 采用sigmoid输出机制可同时识别多个正确答案。
  2. 将软分数作为目标值用于回归任务。
  3. 引入门控tanh激活函数以增强非线性特性。
  4. 采用自下而上的注意力机制来捕捉区域特征。
  5. 初始化权重时利用预先训练好的候选答案表示向量。
  6. 优化数据批处理策略以提高训练效率。
    如图所示展示了整个模型架构图。
    该模型通过融合问题与图像信息实现联合嵌入,并在此基础上进行多标签分类器预测。
在这里插入图片描述

2.1 Question embedding
每个实例的输入——无论是在训练时还是测试时——都是一个文本问题和一个图像。问题被标记,即首先用空格和标点符号分割成单词。任何数字或基于数字的单词(例如10,000或2:15pm)也被认为是一个单词。为了提高计算效率,问题被削减到最多14个单词,丢弃多余的单词。但是数据集中只有0.25%的问题超过14个单词。每个单词都被转换成带有一个查询表的向量表示,查询表的条目是在训练期间沿着其他参数学习的300维向量。然而,这些向量用预先训练好的GloVe单词嵌入(用于词表示的全局向量)来初始化。本文使用的是在Wikipedia/Gigaword语体上预先训练过的公开版本的GloVe。用零向量初始化训练后没有出现的词(训练时优化后的子序列)。小于14个单词的问题末尾填充0向量。得到的单词嵌入序列大小为14×300,通过循环门控单元(GRU)。循环单元的内部状态为512维,使用它的最终状态,即在处理了14个词的嵌入后,将其作为问题嵌入q。不使用开始或结束标记,也不修剪序列或处理给定句子中严格数量的标记(也被称为per-example动态展开或TrimZero )。相反,作者发现始终将循环单元运行相同的迭代次数(包括包含零填充的条目)会更有效。
2.2 Image features
将输入图像通过卷积神经网络(CNN)传递,得到大小为K×2048的向量表示,其中K为图像位置的个数。每个位置都由一个2048维向量表示,该向量对该区域中图像的外观进行编码。第4节中的评估比较了有不同权衡的两个主要选项:一个标准的预训练CNN,或者一个性能更好的选项。第一个性能较低的选项是在ImageNet上进行预培训并公开可用的200层ResNet。这提供了大小为14×14的特征图,通过平均池将其调整为7×7(即K = 49)。第二种更高性能的选择是使用自下而上的注意力提供图像特征。该方法是基于一个Faster R-CNN框架内的ResNet CNN。使用来自可视化基因组数据集的注释,它被训练成专注于给定图像中的特定元素。得到的特征可以解释为以图像中top-K对象为中心的ResNet特征。对固定K=36和自适应K进行评估,该自适应K对图像中检测到的元素使用可调节的阈值,允许区域K的数量随着每张图像的复杂性而变化,最大值为100。在这种情况下,VQA v2数据集使用的图像平均每张图像约K = 60。
在所有情况下,在VQA模型的训练过程中,CNN都是预先训练并保持固定的。因此,可以从输入图像中提取特征作为预处理步骤以提高效率。
2.3 Image attention
对于图像中i = 1 … K的每个位置,将特征向量vi与问题嵌入q连接起来。 它们都通过一个非线性层fa和一个线性层,以获得与该位置相关的标量注意权重αi,t。

在这里插入图片描述

问题表示(q)与图像表示(\hat{v})经非线性变换层处理后**,**实现逐元素相乘操作以获取最终融合特征.

在这里插入图片描述

生成的向量h被视为问题与图像的联合嵌入特征表示,并被传递至输出分类器进行识别任务处理。2.5 Output classifier:基于训练集中出现频率超过8次的所有正确答案预先筛选出一组候选答案词汇表(Candidates Answers),其规模设定为N=3129个条目。在此研究中,默认将视觉问答任务(VQA)视为一个多标签分类问题进行建模。具体而言,在标准数据集VQA v2中每一个训练样本都可能对应一个或多个正确答案,并且每个答案都会以[0,1]区间内的软标签形式进行标记表示。值得注意的是,在本研究案例中约7%(即总样本数量的大约7%)的训练样本未能包含在所选输出词汇表中的正确答案词汇条目内。然而,在这种情况下作者并未将其排除在外而是将其视为一个重要的学习信号源:对于这些未包含在输出词汇表中的样本,在预测阶段假设其对应的所有候选词汇的概率置信度均为零值输入给多标签分类器模型结构体(Multi-Label Classify Model Structure)。随后该模型会通过非线性变换层fo对其进行特征提取并经由全连接层wo映射至目标类别概率预测空间完成这一复杂的视觉问答学习过程。

在这里插入图片描述

其中σ代表Sigmoid激活函数,在本模型中用于计算神经网络各层输出值;而wo∈ RN×512则表示用于初始化学习权重矩阵的参数。
尽管采用软性目标评分系统,在模型训练过程中会通过Sigmoid函数将最终评分标准化到(0,1)区间;其后,在预测阶段采用类似于二元交叉熵损失函数的形式进行计算。
这最后一阶段的工作机制可被视作一个逻辑回归模型;该模型不仅能够对候选答案的质量进行评估,并且能够量化其正确性概率。

在这里插入图片描述

其中索引i和j分别遍历M个训练问题和N个候选答案。ground-truth得分s是前面提到的ground-truth答案的软精度。上述公式被证明比其他VQA模型中常用的softmax分类器更有效。它的好处是双重的:首先,sigmoid输出允许优化每个问题的多个正确答案,就像VQA v2数据集中偶尔出现的情况一样。其次,使用软分数作为目标提供了比二进制目标稍微丰富的训练信号,因为它们捕获了ground-truth注释中偶尔出现的不确定性。
2.6. Pretraining the classifier
在上述的输出阶段中,候选答案j的分数有效地联合图像问题表示fo(h)与w的第j行之间的点积确定。 在训练过程中,每个候选答案表示作为wo的一行被学习。 作者建议使用来自两个来源的候选答案的先验信息来初始化wo的行。 一方面,以答案词的GloVe词嵌入形式使用语言信息。 当答案无法与预训练的嵌入完全匹配时,使用经过拼写检查、去掉连字符或从多词表达式中保留单个词后的最接近匹配。 相应的矢量放置在矩阵wotext中。
作者还利用从代表候选答案的图像中收集的视觉信息。 使用Google图片自动检索与每个候选答案相关的10张照片。 这些照片通过在ImageNet上预训练的ResNet-101 CNN传递。 最终的平均池特征被提取出来并在10张照片上求平均值。 每个候选答案的结果2048维的矢量放置在矩阵woimg的对应行中。 这些视觉表示是对通过词嵌入获得的语言表示的补充。 也可以针对任何候选答案获得它们,包括多词表达和没有词嵌入的稀有词。 不利的一面是,抽象的词和表达方式可能无法提供丰富的视觉表示。
将之前的表示wtexto和wimgo组合如下:

在这里插入图片描述

其中,非线性变换ftexto和fimgo将h带入适当的维度,即分别为300和2048。矩阵wtexto和wimgo与余下的网络使用较小的相对学习率(分别为0.5和0.01)进行微调(通过交叉验证确定)。
2.7. Non-linear layers
上面描述的网络使用了多个学习的非线性层。这种层的常见实现是一个仿射变换,然后是一个整流线性单元。在本文中,每个非线性层使用门控双曲正切激活。即每一层实现一个函数fa:x∈Rm→y∈Rn,其参数定义如下:

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~