MCAN:Deep Modular Co-Attention Networks for Visual Question Answering——2019 CVPR 论文笔记

        这是一篇2019年CVPR的论文。作者认为VQA任务需要对图像中的视觉内容和问题中的文本内容进行细粒度和同步的理解。因此,设计一个有效的“共同注意”模型将问题中的关键词与图像中的关键对象相关联是 VQA 性能提升的核心。

论文链接:CVPR 2019 Open Access Repository

code:GitHub - MILVLG/mcan-vqa: Deep Modular Co-Attention Networks for Visual Question Answering

背景

        在注意力机制提出后,首先引入VQA模型的是让模型学习视觉注意力,后来又引入了学习文本注意力,然后是学习视觉和文本的共同注意力,但是以往的这种浅层的共同注意力模型只能学习到模态间粗糙的交互,所以就出现了深度共同注意力的模型,但是效果提升并没有太多。   

        这篇文章的作者受到了Transformer中自注意力结构的影响,然后构建了自注意力单元和引导注意力单元,通过它们之间的组合、堆叠,构造了一个新的深度共同注意力网络,叫做MCAN。

MCA

两种注意力

         上图所示为两种注意力单元,分别是自注意力单元——跟Transformer中的自注意力差不多,另一个是引导注意力单元——输入是两个模态的特征,要实现两个模态的交互。

三种MCA组合

         通过对这两种注意力单元进行组合,可以得到多种MCA组合,这里作者用了这三种。(a) 是只有一个GA单元;(b) 是在 (a) 的基础上对问题添加了自注意力单元;(c) 是在 (b) 的基础上还对图像添加了自注意力单元。

MCAN

        然后看MCAN的整体架构,图像和问题的表征部分跟其他经典的模型差不多,后续融合和分类网络也都差不多。核心是在中间这个深度共同注意力网络上。

        这里是通过把刚刚的三种MCA结构进行级联,就可以得到深度MCA网络。因为实验中 (c) 的效果最好,所以这个图用的就是 (c) 的结构,这里的级联方式有两种,一种的堆叠,另一种是Encoder-Decoder的方式,这也是参考了Transformer的结构。

        两者的不同点在于,堆叠的方式:在每个子模块中问题的自注意力输出都传给对应的GA模块;而Encoder-Decoder的方式:是把最后的那个自注意力的输出传给所有的GA模块。

实验

        作者做了多个消融实验。

MCA Variants

        第一是,分别用那三种MCA结构构建网络。第二个模型比第一个模型高,说明对问题特征进行自注意力建模有利于 VQA 性能提高;第三个模型又比第二个模型高,说明为图像特征建模自注意力也是有意义的。

Stacking vs. Encoder-decoder

        第二个实验是,探究堆叠方式和Encoder-Decoder方式那种效果更好,可以发现,无论使用多少层的模型,Encoder-Decoder的方式都是稳定得比堆叠得方式要好的。说明与最后一个自注意力单元相比,从早期的自注意力单元学习到的自注意力是不准确的。直接将其传给GA单元可能会误导对图像的注意力。

MCA vs. Depth

        第三个实验是MCAN网络不同深度的实验效果。随着深度的增加,三种类型的MCA网络之间的性能差距也会增加。

        另一个比较有意义的现象是,当L=6时,前两个模型在计数问题上的精度几乎相同,而最后这个模型提高了4.5个点。 这说明图像的自注意力建模在对象计数中起着关键作用。

参考文献

[1] Yu Z, Yu J, Cui Y, et al. Deep modular co-attention networks for visual question answering[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019: 6281-6290.

猜你喜欢

转载自blog.csdn.net/qq_40481602/article/details/125533226