Visual Question Answering with Memory-Augmented Networks
Visual Question Answering with Memory-Augmented Networks
2018-05-15 20:15:03
Motivation:
虽然 VQA 已经取得了很大的进步,但是这种方法依然对完全 general,freeform VQA 表现很差,作者认为是因为如下两点:
1. deep models trained with gradient based methods learn to respond to the majority of training data rather than specific scarce exemplars ;
用梯度下降的方法训练得到的深度模型,对主要的训练数据有较好的相应,但是对特定的稀疏样本却不是;
2. existing VQA systems learn about the properties of objects from question-answer pairs, sometimes indepently of the image.
选择性的关注图像中的某些区域是很重要的策略。
我们从最近的 memory-augmented neural networks 以及 co-attention mechanism 得到启发,本文中,我们利用 memory-networks 来记忆 rare events,然后用 memory-augmented networks with attention to rare answers for VQA.
The Proposed Algorithm :
本文的算法流程如上图所示,首先利用 embedding 的方法,提取问题和图像的 feature,然后进行 co-attention 的学习,然后将两个加权后的feature进行组合,然后输入到 memory network 中,最终进行答案的选择。
Image Embedding:用 pre-trained model 进行特征的提取;
Question Embedding:用双向 LSTM 网络进行语言特征的学习;
Sequential Co-attention:
这里的协同 attention 机制,考虑到图像和文本共同的特征,相互影响,得到共同的注意力机制。我们根据 视觉特征和语言特征的平均值,进行点乘,得到一个 base vector m0 :
我们用一个两层的神经网络进行 soft attention 的计算。对于 visual attention,the soft attention 以及 加权后的视觉特征向量分别为:
其中 Wv, Wm,Wh 都表示 hidden states。类似的,我们计算加权后的问题特征向量,如下:
我们将加权后的 v 和 q 组合,用来表示输入图像和问题对,图4,展示了 co-attention 机制的整个过程。
Memory Augmented Network:
The RNNs lack external memory to maintain a long-term memory for scarce training data. This paper use a memory-augmented NN for VQA.
特别的,我们采用了标准的 LSTM 模型作为 controller,起作用是 receives input data,然后跟外部记忆模块进行交互。外部记忆,Mt,是有一系列的 row vectors 作为 memory slots。
xt 代表的是视觉特征和文本特征的组合;yt 是对应的编码的问题答案(one-hot encoded answer vector)。然后将该 xt 输入到 LSTM controller,如:
对于从外部记忆单元中读取,我们将 the hidden state ht 作为 Mt 的 query。首先,我们计算 搜索向量 ht 和 记忆中每一行的余弦距离:
然后,我们通过 the cosine distance 用 softmax 计算一个 read weight vector wr:
有这些 read-weights, 一个新的检索的记忆 rt 可以通过下面的式子得到:
最后,我们将 the new memory vector rt 和 controller hidden state ht 组合,然后产生 the output vector ot for learning classifier.
我们采用 the usage weights wu 来控制写入到 memory。我们通过衰减之前的 state 来更新 the usage weights :
为了计算 the write weights,我们引入一个截断机制 来更新 the least-used positions。此处,我们采用 m(v, n) 来表示 the n-th smallest element of a vector v. 我们采用 a learnable sigmoid gate parameter 来计算之前的 read weights 和 usage weights 的 convex combination:
A larger n results in maintaining a longer term of memory of scarce training data. 跟 LSTM 内部的记忆单元相比,这里的两个参数都可以用来调整 the rate of writing to exernal memory. 这给我们更多的自由来调整模型的更新。公式(12)中输出的隐层状态 ht 可以根据 the write weights 写入到 memory 中:
Answer Reasoning:
有了 the hidden state ht 以及 那个外部记忆单元中得到的 the reading memory rt,我们将这两个组合起来,作为当前问题和图片的表达,输入到分类网络中,然后得到答案的分布。
--- Done !
Visual Question Answering with Memory-Augmented Networks的更多相关文章
- 论文笔记:Visual Question Answering as a Meta Learning Task
Visual Question Answering as a Meta Learning Task ECCV 2018 2018-09-13 19:58:08 Paper: http://openac ...
- Hierarchical Question-Image Co-Attention for Visual Question Answering
Hierarchical Question-Image Co-Attention for Visual Question Answering NIPS 2016 Paper: https://arxi ...
- 【自然语言处理】--视觉问答(Visual Question Answering,VQA)从初始到应用
一.前述 视觉问答(Visual Question Answering,VQA),是一种涉及计算机视觉和自然语言处理的学习任务.这一任务的定义如下: A VQA system takes as inp ...
- 论文阅读:Learning Visual Question Answering by Bootstrapping Hard Attention
Learning Visual Question Answering by Bootstrapping Hard Attention Google DeepMind ECCV-2018 2018 ...
- Learning Conditioned Graph Structures for Interpretable Visual Question Answering
Learning Conditioned Graph Structures for Interpretable Visual Question Answering 2019-05-29 00:29:4 ...
- 第八讲_图像问答Image Question Answering
第八讲_图像问答Image Question Answering 课程结构 图像问答的描述 具备一系列AI能力:细分识别,物体检测,动作识别,常识推理,知识库推理..... 先要根据问题,判断什么任务 ...
- 论文:Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering-阅读总结
Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering-阅读总结 笔记不能简单的抄写文中 ...
- 论文笔记:Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering
Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering 2019-04-25 21: ...
- SalGAN: Visual saliency prediction with generative adversarial networks
SalGAN: Visual saliency prediction with generative adversarial networks 2017-03-17 摘要:本文引入了对抗网络的对抗训练 ...
随机推荐
- Join The Future (剪枝 + 状态压缩)
一道暴力搜索的恶心剪枝题目. 先处理好某个点确定之后其他点的也确定的是谁,还有分别为什么情况,分别用vis,sta来记录.当然可以直接使用一个3进制数来表示,但是这里需要额外写一个三进制数求值的函数较 ...
- MVC中的Ajax与增删改查(一)
自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...
- 20165305 实验一: Java开发环境的熟悉
实验1-1 建立"自己学号exp1"的目录. 在"自己学号exp1"目录下建立src,bin等目录. javac,java的执行在"自己学号exp1& ...
- sqoop使用经验总结及问题汇总
问题导读1.导入数据到HDFS,需要注意什么?2.在测试sqoop语句的时候,如何限制记录数量?3.sqoop导入时什么情况下会多导入一条数据? 一.sqoop 导入数据到HDFS注意事项 分割符的方 ...
- Njinx配置
参考地址: NGINX的百度百科:https://baike.baidu.com/item/nginx/3817705?fr=aladdin NGINX的中文网站:http://www.nginx.c ...
- Linux基础命令---arch
Arch Arch指令主要用于显示当前主机的硬件结构类型,我们可以看到它输出的结果有:i386.i486.mips.alpha等.此命令的适用范围:RedHat.RHEL.Ubuntu ...
- PHP 取302跳转后真实 URL 的两种方法
1 . 第一种,CURL形式[感觉处理略慢,代码偏多] $url = '将跳转的URL'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url) ...
- oracle 如何将一个字段内容拆分多行显示
例子: select regexp_substr('1,2,3,4,5', '[^,]+', 1, level)from dualconnect by level <= regexp_count ...
- spark与kafka集成进行实时 nginx代理 这种sdk埋点 原生日志实时解析 处理
日志格式202.108.16.254^A1546795482.600^A/cntv.gif?appId=3&areaId=8213&srcContId=2535575&area ...
- 使用隐含参数testMappingSpeed排查GoldenGate抽取慢的步骤
OGG经典抽取模式读取redo慢的检查步骤,可以采用以下几个步骤来排查. 步骤一,确认是否抽取进程的写入有问题 1. 在原有抽取进程上,执行如下命令,统计抽取进程的效率 GGSCI> stats ...