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

2023-05-16

本文提出了一种基于深度神经网络的VQA模型,并报告了一套广泛的实验来确定每个设计选择的贡献和替代设计的性能。它提供了关于VQA模型各个组件重要性的指示器,
一、Summary of findings
1.使用一个sigmoid输出,允许每个问题的多个正确答案,而不是一个常见的单标签softmax。
2.使用软分数作为ground truth目标,将任务作为候选答案分数的回归,而不是传统的分类问题。
3.在所有非线性层中使用门控tanh激活。
4.使用自下而上注意的图像特征来提供特定区域的特征,而不是使用CNN的传统网格状特征图。
5.使用预先训练好的候选答案表示来初始化输出层的权重。
6.随机梯度下降过程中训练数据的大规模小批量智能改组。
二、框架介绍
完整的模型如下图所示。它实现了对问题/图像的联合RNN/CNN嵌入,将问题引导注意力置于图像上,然后在一个固定的候选答案集上使用多标签分类器。灰度表示层之间的向量表示的维数。黄色元素使用学习过的参数。
在这里插入图片描述
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
在这里插入图片描述
其中wa是学习的参数向量。 注意权重使用softmax函数在所有位置进行归一化。 然后,通过归一化的值对来自所有位置的图像特征进行加权并求和,以获得代表注意图像的单个2048维的向量。
2.4 Multimodal fusion
问题表示(q)、和图像表示(ˆv)通过非线性层,然后进行element-wise相乘:
在这里插入图片描述
得到的向量h称为问题和图像的联合嵌入,然后送入输出分类器。
2.5 Output classifier
从训练集中出现8次以上的所有正确答案中预先确定一组候选答案,称之为输出词汇表。候选答案的个数为N=3129个。将VQA视为一个多标签分类任务。实际上,VQA v2数据集中的每一个训练问题都与一个或多个答案相关联,每个答案都以[0,1]的软精度进行标记。在本文的例子中,一些训练问题(约7%)在所选的输出词汇表中没有正确答案。然而,这些问题并没有被抛弃。作者将它们作为一个有用的训练信号,将这个问题输出词汇表中所有候选词汇的预测分数视为零。
多标签分类器将联合嵌入h通过非线性层fo,然后通过线性映射wo来预测N个候选者的得分ˆs:
在这里插入图片描述
其中σ是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,其参数定义如下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tips and Tricks for Visual Question Answering: Learnings from the 2017 Challenge阅读笔记 的相关文章

随机推荐

  • Hadoop五大守护进程的三种启动与关闭方式

    Hadoop五大守护进程的三种启动与关闭方式 第一种启动方式 xff1a 进入 Hadoop 1 x bin 目录 xff0c 执行start all sh xff0c JPS查看进程 xff0c 全部启动成功 19043 NameNode
  • 正则表达式

    笔记 xff1a 1 缩写 表示取相反 xff0c 但是必须要在 开头的地方才行 xff0c 结尾只代表自己 xff0c 0 9之间的 39 39 符号 xff0c 代表范围 xff0c 但是不在里面的 xff0c 也就是 号任意一边是空的
  • HIVE分区表指定location加载不到数据解决方案

    指定了表的location但是select不出来数据 xff0c 而目录确实存在hdfs上 xff0c 如图所示 xff08 我这里面是2级分区 xff09 解决方案 xff1a 1 Alter table test6 add partit
  • LINUX SHELL遍历日期(指定输入两个日期)

    LINUX SHELL遍历日期 xff0c 昨天写一个让我删了 xff0c 写的也太坑了 xff0c 很简单的东西墨迹那么长一串羞愧不已 xff01 bin bash first 61 1 second 61 2 while 34 firs
  • 虚拟机文件过多,如何删除?vmdk文件能删除吗?

    最近发现虚拟机使用一段时间后产生了很多文件 xff0c 不知道哪些文件有用还是没有用 xff1f 能否直接删除 xff1f 有没有高手能告诉我一下 xff1f 其中很多是 vmdk文件 xff0c 看看前面的部分能否删除 xff1f
  • 【直观理解】为什么梯度的负方向是局部下降最快的方向?

    推荐阅读时间 xff1a 8min 15min 主要内容 xff1a 为什么梯度的负方向是局部下降最快的方向 xff1f 刚接触梯度下降这个概念的时候 xff0c 是在学习机器学习算法的时候 xff0c 很多训练算法用的就是梯度下降 xff
  • RichEdit扩展控件–ekRichEdit简介

    原文地址 xff1a http www uieasy com cn blog p 61 419 易酷软件发布了RichEdit扩展控件ekRichEdit 此版本实现了在IM等聊天窗口中所需要的基本功能 xff0c 可以满足IM软件对Ric
  • 如何选择VC界面库产品

    客户经常来信询问该如何选择界面库产品 xff1a 你们的产品跟其他同类产品相比有什么优势 xff1f 你们的DSkinLite界面库跟DirectUI界面库有什么不同 xff0c 哪个产品更适合我们公司 xff1f 在此我们对这些问题做详细
  • 游戏大厅类软件 Demo系列(二)

    游戏大厅类软件 DSkinLite界面库Demo系列 xff08 二 xff09 游戏大厅类软件是UIEASY开发团队制作的又一个软件demo xff0c 此次发布只是一个雏形 xff0c 我们还将继续完善此Demo xff0c 使其各项功
  • 窗口控件透明效果的实现--DSkinLite界面库使用技巧

    DSkinLite 界面库使用技巧 二 窗口控件透明效果 界面设计中 xff0c 很多效果需要借助透明效果来实现 不幸的是 xff0c Windows 标准控件基本不支持透明效果 因此我们需要自己来实现透明效果 一般来说所谓控件透明 xff
  • DSkinControl( For MFC) 控件- dsCtrlComboBox

    原文地址 xff1a http www uieasy cn blog p 61 513 传统的combobox 在使用方面有很多限制 xff0c 很难满足我们combobox类型控件的需求 主要表现中combobox内置的listbox难以
  • 图像典型特征描述子Haar

    以下文章摘录自 xff1a 机器学习观止 核心原理与实践 京东 xff1a https item jd com 13166960 html 当当 xff1a http product dangdang com 29218274 html 由
  • oracle触发器执行用户和v$session的查询

    oracle触发器 xff0c 由针对表的动作触发 xff0c 其执行用户为当前表的所有者 xff0c 所以在触发器中涉及的权限问题 xff0c 应该和触发器所基于的表的所有者有关 对于v session的查询 xff1a 要明确的是 xf
  • springboot打包docker镜像部署

    springboot打包docker镜像部署 环境准备 机器 vultr一台 centos7 资源下载 jdk8 maven git yum install git docker yum install docker io 环境搭建 jdk
  • 深度学习基础——简单了解meta learning(来自李宏毅课程笔记)

    知乎同名账号同步发布 目录 一 初步了解二 和ML的差异三 应用了解 一 初步了解 我们以分类问题为例 xff0c 以前 xff0c 学习的目的是学习一个二元分类器 f f f xff1b 现在 xff0c 学习的
  • docker删除镜像及容器

    问题 清理服务器相关无用docker镜像及容器 删除镜像image 要删除 Docker 中的镜像 xff0c 可以使用 docker rmi 命令 请注意 xff0c 删除镜像前请确保不再需要它 xff0c 并且已经停止了使用该镜像的所有
  • 云技术:弹性计算ECS

    云计算 xff08 Cloud Computing xff09 被业界看作继大型计算机 个人计算机 互联网之后的第四次IT产业革命 xff0c 正日益成为未来互联网与移动技术相结合的一种新兴计算模式 云计算提供了IT基础设施和平台服务的新模
  • 如何在 docker 容器中安装 ROS

    本文记录在 docker ubuntu 18 04 环境下安装 ROS xff08 机器人操作系统 xff09 的过程 目录 文章目录 目录安装 ROS参考文献 安装 ROS 安装步骤如下 xff1a span class token co
  • DOCKER个人遇见小问题

    1 在写dockerfile的时候使用了echo的方式向文件里面写入 基本格式是 echo 34 想要写入的操作 34 gt gt gt 路径 dockerfile 1 因为是要向文件里面进行一个写操作同时希望建立容器的时候执行这个操作 所
  • Tips and Tricks for Visual Question Answering: Learnings from the 2017 Challenge阅读笔记

    本文提出了一种基于深度神经网络的VQA模型 xff0c 并报告了一套广泛的实验来确定每个设计选择的贡献和替代设计的性能 它提供了关于VQA模型各个组件重要性的指示器 xff0c 一 Summary of findings 1 使用一个sig