一、背景

文章题目:《Visual Question Answering as a Meta Learning Task》

ECCV2018的一篇文章。元学习和VQA的结合,非常值得关注。

文章下载地址:http://openaccess.thecvf.com/content_ECCV_2018/papers/Damien_Teney_Visual_Question_Answering_ECCV_2018_paper.pdf

文章引用格式:Damien Teney and Anton van den Hengel. "Visual Question Answering as a Meta Learning Task." European Conference on Computer Vision (ECCV), 2018.

项目地址:暂无

二、文章导读

先看文章摘要吧

The predominant approach to Visual Question Answering (VQA) demands that the model represents within its weights all of the information required to answer any question about any image. Learning this information from any real training set seems unlikely, and representing it in a reasonable number of weights doubly so. We propose instead to approach VQA as a meta learning task, thus separating the question answering method from the information required. At test time, the method is provided with a support set of example questions/answers, over which it reasons to resolve the given question. The support set is not fixed and can be extended without retraining, thereby expanding the capabilities of the model. To exploit this dynamically provided information, we adapt a state-of-the-art VQA model with two techniques from the recent meta learning literature, namely prototypical networks and meta networks. Experiments demonstrate the capability of the system to learn to produce completely novel answers (i.e. never seen during training) from examples provided at test time. In comparison to the existing state of the art, the proposed method produces qualitatively distinct results with higher recall of rare answers, and a better sample efficiency that allows training with little initial data. More importantly, it represents an important step towards vision-and-language methods that can learn and reason on-the-fly.

视觉问答是要求模型能够利用其参数表示出,回答视觉问题所需的所有信息。从任何真实数据集中学习这些信息似乎不太可能。因此本文提出将VQA替换为元学习,从所需的信息中分离出问答的方法。测试时,会给模型提供一个support set以对给定的问题进行推理。该support set不需要修正,不需要重新训练来扩展,因此它能够增强模型的能力。为动态的使用这种信息,我们使用VQA模型并结合两种最新的元学习,即原型网络(prototypical networks)和元网络(meta networks),实验表明这种模型能够完全生成新的答案(即训练集中从未出现过的)。

三、文章详细介绍

VQA是一个典型的纯监督学习(purely supervised learning setting)。所以最大的问题就在于VQA能够回答的问题只能是训练集中所出现过的。为了解决这类问题,本研究提出了一个元学习的方法,使得模型能够学会学习(learns to learn),例如下图所示,在测试的时候,他会从support set学习一些样本来回答给定的问题:

这些样本就是一些VQA的样本。这个support set是不确定的,它可能很大,也可能样本与待预测问题无关,它只是在测试的时候提供给模型,以增加模型的能力。“学会学习”则是指在测试中能够动态地识别和利用support set中的相关样本,以提供给模型更多信息,且不需要重新训练。

所以本研究的最重要的贡献就是将元学习引入到VQA中,所构建的深度学习网络中使用了动态参数,这些参数取决于support set。整篇文章的贡献可以总结如下:

1. We re-frame VQA as a meta learning task, in which the model is provided a test time with a support set of supervised examples (questions and images with their correct answers). 将VQA重构为一个元学习,即在模型测试时会提供一个support set。

2. We describe a neural network architecture and training procedure able to leverage the meta learning scenario. The model is based on a state-of-the-art VQA system and takes inspiration in techniques from the recent meta learning literature, namely prototypical networks [33] and meta networks [24]. 阐述了神经网络结构和训练过程中能够使用元学习的场景。模型基于VQA,引入元学习的两个最好模型,即原型网络和元网络

3. We provide an experimental evaluation of the proposed model in different regimes of training and support set sizes and across variations in design choices. 对提出的模型进行了实验验证,包括训练策略。support set 的大小,交叉验证。

4. Our results demonstrate the unique capability of the model to produce novel answers, i.e. answers never seen during training, by learning from support instances, an improved recall of rare answers, and a better sample efficiency than existing models. 结果表明该模型能够产生新的答案。

1. 相关工作

相关工作部分的VQA和引入外部知识的VQA(VQA with additional data)之前已经介绍很多了,这里不再多说。

元学习和few-shot学习(Meta learning and few shot learning):术语“元学习”泛指让模型学会学习,大部分的元学习都是来自于one-shot或者few-shot。作者用于VQA的元学习也与这些相似,即将VQA视作分类问题,测试的时候额外提供一些参考样本。而大部分的few-shot学习并不适合VQA,因为类别数量多,且类别样本不平衡,因此必须要将其改进整合到VQA中。为了处理这个support set,作者在神经网络中引入了多个记忆单元;同时网络层使用动态权重来参数化;其中的一个记忆单元来存储梯度和loss,这与Meta Network的思路类似;输出阶段,通过答案类别的相似性来计算评分,这与Prototypical Networks的思路相似。

连续性学习(Continuum learning):在元学习环境中对VQA进行框架化的一个重要成果是开发能够随着更多数据可用而改进的模型。这就涉及到了连续性学习(continuum learning),这类工作注重于使用新的训练数据,精校正网络。相比之下,我们的模型不会随着时间的流逝而进行自我修改,也不会经历负面的域偏移或灾难性的遗忘,这是连续学习的核心问题。作者提出该框架的一个重要动机是它有潜力应用于支持与问答示例不同性质的数据。这也是未来工作的一个重要方向。

2. 方法

作者所提出的模型结构如下图所示:

首先,根据文献[34],作者获得问题的嵌入和图像的嵌入,然后将嵌入映射到候选答案的分数上,这部分也是作者的创新之处。该映射的做法如下:首先,用静态和动态权值来参数化一个非线性层(non-linear transformation),这里作者用的是双曲正切(gated hyperbolic tangent layer)。静态权值学习就是传统的权值学习过程,用梯度下降就可以;动态权值学习取决于实际输入和support set中候选动态取值的记忆。之后,对特征向量结果和原型的集合进行相似性度量(similarity measure),每一个原型都表示一个候选答案。静态原型类似传统的权值学习,动态原型则取决于support set的处理。图中的虚线是处理support set的数据流。

文献[34]:Teney, D., Anderson, P., He, X., van den Hengel, A.: Tips and tricks for visual question answering: Learnings from the 2017 challenge. arXiv preprint arXiv:1708.02711 (2017)  (之前读过这篇文章,可参考:【文献阅读】视觉问答VQA中的一些技巧(D. Teney等人,CVPR,2018)

基于文献[34],作者将VQA分为两部分,即嵌入部分(对问题和图像进行编码)和分类部分(预测答案)。这篇文章主要解决的是第二部分。具体的,词嵌入使用的是GloVe和Recurrent Gated Unit (GRU)。图像嵌入使用的是CNN,并结合了bottom-up attention和question-guided attention两个注意力。两个嵌入的融合使用的是对应元素的点积(Hadamard (element-wise) product),记做h。接下来就是将h输入到非线性层和答案映射层了,最终产生一个预测得分的向量。在传统模型中,非线性层往往会跟一个线性的softmax或者sigmoid层,但是作者在此进行了改进,引入了元学习。

2.1非线性变换层f(Non-linear Transformation)

非线性层的作用是将联合嵌入h映射到分类器可用的表示中。这里作者添加了一个使用门机制的双曲正切变换,即:

定义参数θ为权值和偏置连接的向量,即θ=[W;W';b;b'],传统模型来学习参数θ是通过在训练集上后向传播和梯度下降,在测试时这些参数都是静态的。作者对其进行了修改,在测试时引入动态参数θd,所有参数为两种参数的加权和。

动态参数全部被保存在一个联合记忆M中,这个记忆是非常大的key/value对的集合,测试的时候,就可以进行动态参数的关键值匹配检索:

2.2映射候选答案层g(Mapping to Candidate Answers)

g是将非线性层的输出映射到候选答案得分向量上。传统的处理方式就是仿射或者线性变换(比如矩阵相乘),作者定义了gΦ(h),即输入h和代表可能答案的原型Φ之间的相似性度量,在传统模型中,每一个原型都对应一行weight matrix,而这里作者允许每一个可能答案对应一个或多个原型。可能答案的得分就可以表示为,输入的h'和相应可能答案原型之间的相似度。如果有多个原型可用,那得分就是取平均值:

其中,a表示可能的答案,d(·, ·)表示相似性度量,σ是sigmoid函数用于将相似性度量映射到[0 1]之间,b′′是学习到的偏置。传统模型的相似性函数都是采用的点积(dot product)。作为比较,本研究采用了点积,和l-p范数分别作为相似性度量的函数:

作者提出的模型使用了两种原型,一种是静态的Φs,一种是动态的Φd。静态的是在训练过程中用梯度下降和后向传播得到,并在测试的过程中进行修正。动态的取决于测试时的support set。最后,网络的输出使用的是交叉熵损失。

2.3support set 的处理(Processing of Support Set)

前面提到的两个层,即非线性层f和映射答案候选层g都使用了support set。support set在网络的前向和后向传播中的处理如下图所描述。

support set的处理会在测试过程中,先于预测答案发生。而在训练过程中,它会在每个epoch之前重复进行,随着训练的进行而不断改变的网络静态参数。我们将support set记为S,它的每一个元素,它的特征向量h还有loss的梯度,都与静态权值θ有关,然后将h和梯度∇θ添加在记忆M中,记忆M就会保留最后处理的那个元素。

为了确定动态原型φd,作者收集了support set所有样本的特征向量h′,然后,我们计算它们在具有相同正确答案的实例上的平均值。即答案a的动态原型计算:

3.实验

最后就是实验了,实验要验证3个问题:

(1) how effectively the proposed model and its different components can use the support set. 提出模型的效果以及它的不同成分使用support set

(2) how useful novel support instances are for VQA. support set里面样本是否对VQA有用

(3) whether the model learns different aspects of a dataset from classical VQA methods trained in the classical setting. 是否能够从数据集中学习到不同的方面

数据集:VQA 2.0

评价方法:精度和召回度

运行:代码基于文献[34],embedding dimension D=128,mini-batches = 256。

消融实验:文献[34]的记做baseline,相当于作者提出的模型中,每个答案只有一个静态原型,且没有动态参数。support set 都是从训练集中用supersampling方法采样得到的。结果如下表所示,当使用静态原型时,L2范要比L1范或者点积的表现要好,这与别的文献中所说“原型网络最好使用L2范”的结论一致。

另外的数据集和新答案:对support set进行测试过程的评估,训练模型包含7个候选答案的情况,但是训练集只提供其中的部分答案,而support set中则包含所有7个候选答案。从图3就可以看出,提出的模型明显比原模型要好很多,且动态原型是由帮助的。但是仅有动态权值的情况下,效果提升微小,甚至有负面效果。

四、小结

后面是作者的一点展望,找出一些关键的话:

尽管提出的模型使用了support data,但是实验结果明显还有可提升的空间。另外将模型进行大规模实际应用时,应特别注意处理当前随支持集线性增长的动态权重的记忆。聚类也许能够减少它的大小,哈希方法也许能够改善检索的效率。

【文献阅读】将VQA视作元学习(Damien Teney等人,ECCV,2018)相关推荐

  1. 文献阅读总结:网络表示学习/图学习

    本文是对网络表示学习/图学习(Network Representation Learning / Graph Learning)领域已读文献的归纳总结,长期更新. 朋友们,我们在github创建了一个 ...

  2. 【文献阅读】VQA能干啥?VQA相关现实应用和未来挑战(Silvio Barraa等人,ArXiv,2021)

    一.背景 文章题目:<Visual Question Answering: which investigated applications?> 文章下载地址:https://arxiv.o ...

  3. 文献阅读经验--以基于深度学习的医学图像配准为例

    目录 正文 前言 一.应该阅读什么样的论文 二.为什么要阅读论文 三.怎样阅读论文(以期刊和会议论文为准) 总结 正文 前言 大家好,我是一名研一的学生,我的研究方向是基于深度学习的医学图像配准(全脑 ...

  4. 文献阅读笔记:基于深度学习的桥梁裂缝检测算法研究

    论文 | 基于深度学习的桥梁裂缝检测算法研究 作者 | 李良福.马卫飞.李 丽.陆 铖 期刊 | 自动化学报 时间 | 2019年9月 论文目的: 传统的图像处理算法不能很好地对桥梁裂缝进行检测 , ...

  5. 文献阅读(40)—— 深度学习对病理性近视进行分类的同时进行病灶分割

    深度学习对病理性近视进行分类的同时进行病灶分割 Pathological myopia classification with imultaneous lesion segmentation usin ...

  6. 文献阅读(168)强化学习 Routerless NoC

    文章目录 蒙特卡洛树搜索 MCTS layered progressive approach 实现细节 Injection Ejection 活锁 死锁 饥饿 题目:A Deep Reinforcem ...

  7. 【文献阅读】ChangeNet——变化检测网络(A. Varghese等人,ECCV,2018)

    一.背景 文章题目:<ChangeNet: A Deep Learning Architecture for Visual Change Detection> 这篇文章思路非常简单,觉得能 ...

  8. 文献阅读(73)AAAI2022-SAIL: Self Augmented Graph Contrastive Learning

    本文是对<SAIL: Self Augmented Graph Contrastive Learning>一文的总结,如有侵权即刻删除. 朋友们,我们在github创建了一个图学习笔记库, ...

  9. 文献阅读(72)WWW2022-TREND: TempoRal Event and Node Dynamics for Graph Representation Learning

    本文是对<TREND: TempoRal Event and Node Dynamics for Graph Representation Learning>一文的总结,如有侵权即刻删除. ...

最新文章

  1. 陈程杰、夏瑞:数据分析工具TBtools介绍和操作视频+公众号/社群
  2. HTML5从入门到精通(明日科技) 中文pdf扫描版
  3. PHP安装memcache扩展
  4. [ZPG TEST 109] 兔子跳跃【构图】
  5. ACE反应器(Reactor)模式
  6. 【知识星球】为什么图像分类任务要从256*256中裁剪出224*224
  7. CRMEBv3.0版本更新了什么?
  8. 3.2-3 tac、more
  9. 看人家如何拿到腾讯阿里的offer
  10. VC设置CEdit控件背景透明、文字背景也透明
  11. JSP EL表达式使用
  12. 2个js实现图片轮播效果(用)
  13. wampserver 安装phpredis扩展
  14. python数据库去重_python redis连接 有序集合去重的代码
  15. mysql数据库编程第六章试题_2016年计算机二级MySQL数据库试题及答案
  16. Snagit 2020 Windows和macOS苹果版汉化版中文版汉化补丁Snagit中文网Snagit中文官网camsnag.com/snagit
  17. C++静态库与动态库的区别
  18. mysql8 update语句 where块的in方法内子查询不报错
  19. 神威超级计算机配置,神威太湖轻型超级计算机配置和性能列表
  20. LightOJ1079-Just another Robbery

热门文章

  1. 微信小程序云开发实战:网上商城(三)
  2. 什么是数字档案室?纸质档案数字化和数字档案室的区别与联系
  3. 面试题 | java混合基本数据类型运算规则
  4. Cisco路由交换基础配置
  5. 记录使用的安卓开发工具
  6. mac机c4d更改语言,Maxon Cinema 4D for Mac 安装设置中文教程
  7. ce cheat engine打开后报错的原因
  8. Bootstrap的栅格化系统
  9. UG/NX二次开发Siemens官方NXOPEN实例解析—1.2 BlockStyler/EditExpression
  10. 简单自定义安全键盘(只能输入字母,数字,部分符号)