Don’t Just Assume; Look and Answer: Overcoming Priors for Visual Question Answering——论文阅读笔记
目录
1.Abstract
2.Introduction
3. VQA-CP : Dataset Creation and Analysis
3.1Countering Priors in VQA(VQA中的反优先级):
3.2Question Grouping and (问题分组和重新分割):
4.GVQA模型解析
5.实验
最近看了两篇文章,都关于解决VQA先验性的问题。首先是一篇CVPR上面的文章:《Don’t Just Assume; Look and Answer:
Overcoming Priors for Visual Question Answering》,即《不要只是假设;看和回答:克服视觉问题回答的先验知识》
1.Abstract
许多研究发现,如今的视觉问答(VQA)模型很大程度上受到训练数据表面相关性的驱动,缺乏足够的图像基础。简而言之先验性,就是对于训练的Question与Image数据,模型并没有学会依照Image来回答问题,而只是简单的依赖answer的比例。举个例子,比如对于what color这类question,答案为white占比为80%,那么当输入这类问题,模型就直接回答为white,而完全不需要依照Image,且这样的正确率很高。
论文中首先为VQA提出了一个新的设置,其中对于每种问题类型,训练集和测试集具有不同的答案先验分布。具体来说就是提出了VQA v1和VQA v2数据集的新划分,称之为可变优先级下的可视问答(VQA-cp v1和VQA-cp v2)。论文评估了现有的几种VQA模型在这个新设置下的性能,并表明它们的性能比原来的VQA设置明显下降。所以论文中提出一个新的视觉问答模型(GVQA(Grounded Visiual Question Answering)),该模型在结构上包含归纳偏差和限制,特别是通过主要依赖训练数据中的先验知识来防止模型“作弊”。具体地说,GVQA明确地将图像中视觉概念的识别与给定问题的似是而非的答案空间的识别分离开来,使模型能够更有力地概括不同分布的答案。
2.Introduction
自动回答有关视觉内容的问题被认为是人工智能的最高目标之一。视觉问答(VQA)在计算机视觉、自然语言处理、知识表示和推理等领域提出了一系列丰富的挑战。
图1:现有的VQA模型,如SAN,在很大程度上倾向于依赖于训练问题中的强语言优先级,例如,给定问题类型(“是什么颜色”、“是谁”)的先前答案(“白色”、“否”)。因此,它们在测试图像问题对上的性能显著下降,这些问题对的答案(“黑色”、“是”)不在列中的大多数答案之列。我们提出了一个新的模型(GVQA),它建立在SAN的基础上,能够明确地将视觉概念建立在图像中,因此在训练和测试之间的优先级不匹配的情况下,它的性能明显优于SAN。
注:SAN:针对 VQA问题 提出了一个 stacked attention networks (SANs)(用于图像问答的叠层注意网络) ,简单来说就是一个层叠注意力网络。
论文提出了一个新的接地视觉问答(GVQA)模型,该模型包含归纳偏见和限制,特别是通过主要依赖训练数据中的先验知识来防止其“作弊”。GVQA的动机是直觉,即VQA中的问题提供了两个关键信息:
(1) 应该承认什么?或者需要对图像中的哪些视觉概念进行推理以回答问题(例如,“盘子是什么颜色的?”?“需要看图像中的盘子
(2)应该说什么?或者,似是而非的答案的空间是什么(例如,“什么颜色…”?“问题需要用颜色名称来回答。
3. VQA-CP : Dataset Creation and Analysis
即:数据集创建和分析
3.1Countering Priors in VQA(VQA中的反优先级):
为了抵消VQA v1数据集中的语言优先级,VQA V2通过收集每个问题的互补图像来平衡每个问题。因此,对于提议的VQA v2数据集中的每个问题,都有两个具有不同答案的相似图像,通过这种构造,VQA v2数据集中的语言优先级明显较弱。
现在论文中创建VQA-CP v1和VQA-CP v2拆分,使得测试数据集中每个问题类型的答案分布(“多少”、“什么颜色”等)与训练数据集不同。这些分割是通过重新组织VQA v1[5]和VQA v2[13]数据集的培训和验证分割来创建的。
3.2Question Grouping and Re-splitting(问题分组和重新分割):
问题分组:具有相同问题类型(问题的前几个词-“什么颜色”、“什么房间”等)和相同基本真理答案的问题被组合在一起。例如,{狗是什么颜色的?'白色'}和{'盘子是什么颜色的?'和'白色'}组合在一起,而{'狗是什么颜色的?“,”black“}放在不同的组中。这个分组是在合并来自VQA列和val splits的QA对之后完成的。我们使用VQA数据集中提供的问题类型。
重新分割:贪婪的方法被用来重新分配数据点(图像,问题,回答)对VQA-CP训练集和测试集,以便最大限度地覆盖VQA-CP训练集中的VQA-CP测试概念,同时确保训练和测试之间不重复具有相同问题类型和相同地面真实答案的问题。在这个过程中,我们循环遍历上面创建的所有组,并且在每次迭代中,我们将当前组添加到VQA-CP测试分割中,除非该组已经分配给VQA-CP列分割。
分割结果:对于给定的问题类型,答案的分布是显著不同的。例如,在训练集中,“什么运动”的最常见答案是“tennis”,而在测试集中,这个问题最常见的答案是skiing。在未分割之前的VQA v1 数据集中,给定问题类型的分布在整个序列和val splits中是相似的,最常见答案也是相同的。
图二:分割后的数据集。每个问题类型的答案分布在VQA-CP v1序列(左)和测试(右)分段之间存在显著差异。例如,“白色”和“红色”是训练集上常见的“什么颜色”的答案,其中“黑色”是测试集中最常见的答案。这些都是针对60K个问题的随机样本计算出来的。
对于这个刚刚分配了训练集和测试集的数据集,论文中也用一些现有的VQA模型在上面做了实验,结果发现,在分割后的数据集上的实验结果较之前大大下降,在这个数据集中,对于每一个问题类别,训练分割和测试分割的答案分布都是不同的,以至于过度依赖语言优先级的模型表现得很差:
4.GVQA模型解析
现在介绍论文中的‘接地’视觉问答模型(GVQA)。
先前的VQA方法直接将图像问题元组(I,Q)映射到答案(A),而GVQA将VQA的任务分解为两个步骤:查找找到回答问题所需的对象/图像块,并识别图像块中的视觉概念,从问题中找出合理答案的空间,并通过考虑哪些概念是合理的,从已识别的视觉概念集合中返回适当的视觉概念。例如,当GVQA被问到“狗是什么颜色的?”?,它识别出答案应该是一个颜色名,在与狗对应的图像中定位补丁,识别各种视觉概念,如“黑色”、“狗”、“毛茸茸”,最后输出概念“黑色”,因为它是与颜色对应的可识别概念。
GVQA的另一个新颖之处在于,它将回答是/否问题视为一项直观的视觉验证任务,即它验证问题中提到的概念的视觉存在/不存在。例如:如果被问及“图中的男人是否穿着短裤”?,它确定需要验证其视觉存在的概念是“short”,并根据它是否识别图像中的short(具体来说,在对应于“person”的补丁上)回答“yes”或“no”。
GVQA如图3所示。给定一个问题和一个图像,该问题首先经过问题分类器,然后被分类为是/否或非是/否。对于非是/否问题,激活的GVQA组件是–1)视觉概念分类器(VCC),它将从CNN提取的图像特征作为输入,qmain由问题提取器给出,2) 回答输入为整个问题的聚类预测器(ACP)。VCC和ACP的输出被反馈给产生答案的答案预测器(AP)。对于是/否问题,激活的GVQA组件是-1)VCC(类似于非是/否),2)概念提取器(CE),其输入是整个问题。VCC和CE的输出被输入到预测“是”或“否”的视觉验证器(VV)。下面将详细介绍每个组件。
Visual Concept Classifier (VCC)
负责定位回答问题所需的图像块,以及生成与定位块相关的一组视觉概念。如: 考虑汽车旁边的公共汽车是什么颜色的?,VCC负责处理bus区域,然后输出一组概念,如“bus”和属性,如颜色、计数等。它由一个基于堆叠注意网络的2跳注意模块和一组二进制概念分类器组成。图像以VGG Net的最后一个池层的激活形式被馈送到注意模块。为了防止每个问题类型的答案优先顺序被记住,问题首先通过语言提取器传递,在删除问题类型子字符串(例如“什么类型”)之后输出字符串(称为)。
使用LSTM嵌入,然后输入到注意模块中。多跳注意产生来自VGG的图像区域特征的加权线性组合,其权重与该区域的注意程度相对应。接下来是一组完全连接的(FC)层和一堆∼2000二进制概念分类器,它们覆盖了训练集上95%的概念。VCC的每一个概念都有一个二元逻辑损失。VCC概念集是通过从训练QA对和保留最频繁的QA对中提取与答案相关的对象和属性来构建的。然后将对象概念分组为一个组,其中as属性概念使用Glove词向量嵌入空间中的Kmeans聚类被分组为多个小组[27],对于总共C个聚类,为了生成训练概念分类器所需的负样本,需要进行概念聚类(对于概念分类器,正样本是在问题或答案中包含该概念的样本)。由于问题并不表示图像中不存在的对象和属性,因此使用以下假设生成负数据:(1)回答问题所需的参与图像块中最多有一个主对象(2)每个对象在每个属性类别中最多有一个主属性(例如。,如果bus的颜色是红色,则可以用作所有其他颜色的反例)。考虑到这些假设,当集群中的一个概念被视为正时,集群中的所有其他概念都被视为负。注意,在训练过程中,每个问题只有一个子集的概念簇被激活,并且只有这些被激活的簇会导致损失。
Question Classifier
使用Glove嵌入层、LSTM层和FC层将输入问题Q分为两类:Yes No和Non Yes No。是\否类问题输入CE,其余输入ACP.
Answer Cluster Predictor (ACP)
标识预期答案的类型(例如对象名称、颜色、编号等)。它只对非是/否问题激活。它包括一个Glove嵌入层和一个LSTM,然后是FC层,将问题分类到一个C类中。ACP的聚类是通过将每个答案嵌入Glove空间,在(1000)个答案类上进行K-means聚类来创建的.
Concept Extractor (CE)
使用基于POS标签的提取系统,从需要在图像中验证其视觉存在的是/否问题中提取问题概念。如:“圆锥体是绿色的吗?”?,我们提取“green”。提取的概念被嵌入到Glove空间,然后是FC层,将该嵌入转换为与VCC概念相同的空间(应该是使维度相同),以便VV可以将它们组合起来。请参阅下面对VV的描述。
Answer Predictor (AP)
给定一组由VCC预测的视觉概念,以及由ACP预测的概念类别,AP的角色是预测答案。ACP类别对应于VCC概念集群(参见图3中的ACP和VCC的输出类)。颜色表示对应关系)。给定这种对齐方式,通过简单地将ACP维度复制到与各个VCC簇维度相关的位置,ACP的输出可以容易地映射到与VCC输出具有相同维度的向量。生成的ACP嵌入按元素添加到VCC嵌入中,然后是FC层和softmax激活,生成998个VQA答案类别的分布(前1000个培训答案减去“是”和“否”)。
Visual Verifier (VV)
假设VCC预测了一组视觉概念,并且嵌入了需要验证其视觉存在的概念(由CE给出),VV的作用是验证VCC预测中是否存在该概念。具体地说,CE嵌入是按元素添加到VCC嵌入,然后是FC层和softmax激活,产生两个类别的分布-“是”和“否”。
Model Training and Testing:
我们首先使用集群标签(用于ACP)和视觉概念标签(用于VCC)8在列车分割上训练VCC和ACP。回答预测器(和视觉验证器)的输入是来自VCC和ACP(如果是/否问题,则为CE)对训练数据的预测。在训练过程中,我们使用地面真相标签来表示是/否以及问题分类器的非是/否问题。在测试过程中,我们首先运行问题分类器,将问题分为是/否和非是/否,并将问题输入到各自的模块中,以获得对测试集的预测。
5.实验
GVQA的体系结构设计使得它比现有的VQA模型更加透明,因为它产生了可解释的中间输出(VCC、ACP和CE提取的概念字符串的输出),这与大多数现有的VQA模型不同。我们在图4中展示了一些来自GVQA的示例预测。我们可以看到,中间输出提供了有关GVQA为什么要预测它所预测的内容的见解,从而使系统设计者能够识别错误的原因。这在现有的VQA模型中并不容易做到。图5显示了另外两个例子(一个成功和一个失败),比较和对比了GVQA的中间输出如何帮助解释成功和失败(从而实现有针对性的改进),这对于SAN和大多数其他现有VQA模型来说是不可能做到的。
图4:GVQA的定性示例。左:我们展示了ACP的前三个答案集群预测(以及每个集群的随机概念)(其中#3和#16以及#19都是类别名称)。对应于ACP预测的每一个类,给出了VCC预测的视觉概念里概率最高的一个。根据这些ACP和VCC预测,答案预测(AP)预测正确答案“棒球”。右图:微笑是CE提取的概念,其在VCC预测中的视觉存在通过视觉验证器验证,最终得到“是”的答案。
图5:左:GVQA的预测(“绿色”)可以解释如下-ACP预测答案应该是一种颜色。在VCC预测的各种视觉概念中,唯一关于颜色的概念是绿色。因此,GVQA的输出是“绿色”。SAN错误地预测“黄色”。与GVQA不同,s an的体系结构不利于解释其预测结果的原因。右图:GVQA和SAN都错误地回答了这个问题。GVQA是不正确的,也许是因为VCC预测的是“黑色”,而不是“灰色”。为了进一步探究为什么VCC的预测是不正确的,我们可以看一下注意力地图(在附录中),它显示注意力集中在右腿的裤子上,而在左腿的袜子上(黑色)。所以,也许,VCC的“黑色”预测是基于左腿的注意力。
Don’t Just Assume; Look and Answer: Overcoming Priors for Visual Question Answering——论文阅读笔记相关推荐
- Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answering
文中提到当前一些处理VQA任务的方法都是基于处理Image Captioning任务的方法,具体就是采用卷积递归神经网络,但是这种方法不能很好的模拟spatial inference.文中提出Sp ...
- 论文笔记:Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answeri
Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answering Hu ...
- EWC:Overcoming catastrophic forgetting in neural networks论文笔记
EWC:Overcoming catastrophic forgetting in neural networks 概要 根据某些参数对先前任务的重要性来缓解某些参数权重的学习率 EWC 约束重要的参 ...
- Overcoming Language Priors in VQA via Decomposed Linguistic Representations阅读笔记
大多数现有的可视问答(VQA)模型过分依赖于问答之间的语言优先级.本文提出了一种基于语言注意力的VQA方法,该方法可以灵活地学习和利用问题中各种信息(问题类型,指代对象和期望概念)的分解表示,来最大程 ...
- 论文阅读:《Overcoming Classifier Imbalance for Long-tail Object Detection with Balanced Group Softmax》
(建议不看,赶组会我没翻译完,随后把组会关于这个个自己理解做的PPT放出来) 基于深度学习模型的长尾大词汇量对象检测是一项具有挑战性和高要求的任务,但仍未得到充分的研究. 在这项工作中,我们提供了第一 ...
- Learn to Grow: A Continual Structure Learning Framework for Overcoming Catastrophic Forgetting论文阅读
本篇论文来自2019ICML的一篇动态架构的持续学习论文,论文地址点这里 一. 介绍 在学习一系列学习任务时,DNN会经历所谓的"灾难性遗忘"问题,在接受新任务训练后,它们通常会& ...
- Visual Question Answering概述
目录 任务描述 应用领域 主要问题 主流框架 常用数据集 Metrics 部分数据集介绍摘自这篇博客 任务描述 输入:图片III.由nnn个单词组成的问题Q={q1,...,qn}Q=\{ q_1,. ...
- CVPR 2018 paper list(论文列表)
原文链接:http://cvpr2018.thecvf.com/program/main_conference 52 Embodied Question Answering Abhishek Das ...
- Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记
Check It Again: Progressive Visual Question Answering via Visual Entailment 论文笔记 一.Abstract 二.引言 三.R ...
- 目前绝大多数处理语言先验性文章总结
搬运自github(https://github.com/cdancette/vqa-cp-leaderboard#cl),如有侵权,联系立删! 增加了两篇文章:1.Overcoming Langua ...
最新文章
- TileList自动滚动指定单元格,可视部分
- 基础总结(04)-- display:none;visibility:hidden;区别
- Linux中文件上传使用rz
- jdbc如果不关闭连接_JDBC基础整理
- MySQL事务的四种隔离级别,mysql中的不可重复读和幻读的区别,Repeatable read可重复读隔离级别下怎么不存在幻读问题?
- 关闭文件夹或打印机共享服务器,局域网共享打印机好用,但文件夹不能访问
- Java案例:编译器生成桥方法
- 航迹推演(Odometry)_由左右轮速度v_l,v_r推导车辆的线速度v,角速度w,运动半径r
- linux设置双屏拼接_双屏、3屏拼接——A卡、N卡——Windows、Linux
- 你眼里的废品也许就是别人眼里的宝贝(生意)
- python迭代器是什么百度百科_【python】迭代器与生成器究竟是什么?看完你就知道...
- eclipse php集成包,php-eclipse集成配置(Ecli
- 输入一个整数,判断它是几位数
- 级联rc滤波_RC低通,高通滤波电路的基本工作原理
- Kubernetes 之 YAML 语法
- APP支持文件共享设置(iOS)
- Hive的安装与配置
- 浩顺AC671指纹考勤机二次开发(demo)
- [已解决]远程电脑中Tab不能补全以及空格的问题
- 今天,我们这么和霍金说再见
热门文章
- linux dsp开发环境,在ubuntu上搭建uclinux开发环境(转载)--- 第二篇
- 服从还是被裁?职场人请做好这道生存选择题!
- 消防给水及消火栓系统技术规范_消防给水——消火栓系统分区给水剖析
- mysql 设置忽略大小写
- c语言short a=32768,C语言中short整型资料的范围“-32768——32767”中的“-32768”是如何确定的?...
- 如何以管理员身份进入dos命令窗口
- 计算机里面CPU是什么意思,cpu是什么 cpu是什么意思详细介绍
- 加拿大比索大学计算机科学硕士,来悉尼大学恍恍惚惚一年后,我给大家吐血整理了经验贴…....
- 陈经纶2021年高考成绩查询时间,北京30余所高中2017年高考成绩汇总
- 鼠标失灵,但鼠标和USB接口都是好的的情况。