Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering 心得体会

近日研读了一篇文章,题目:《Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering》这篇文章是CVPR2019的文章,作者主要来自港中文。文章链接如下:Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering

一.文章引入

VQA旨在自动回答与给定图像内容相关的自然语言问题。它在实践中有着广泛的应用,如辅助盲人 以及幼儿教育,因此近年来成为一个热门的研究课题。而学习多模态特征的有效融合是视觉问答的核心。
近年来,VQA的性能有了很大的提高,有三点原因:一,有了更好的语言特征表示和视觉特征表示,视觉特征比如从VGG到ResNet再到bottom-up & top-down;二、不同类型的attention机制能够自适应地选择特征;三、更好的多模态融合方法被提出,比如双线性融合Bilinear Fusion,MCB和MUTAN
近年来VQA的研究重点在两个方面:一是关注模态之间的关系,比如双线性特征融合(Bilinear feature fusion),协同注意力(co-attention);二是关注模态内部的关系,比如BERT算法。然而却从没有在一个统一的框架内共同研究模态内和模态间的情态关系,而这些关系大多被忽略了。如对于图像模态,每个图像区域不仅应该从问题的关联词/短语中获取信息,还应该从相关的图像区域获得信息判断问题的答案;对于问题模态,可以通过推断其他词语来对句子有更好的理解。这种情况就促使作者提出一种新的框架来模拟这两种情况——模态内与模态间的信息交流。
作者提出了一种利用外部和内部模态信息流(在视觉和语言模态中动态传递信息)的多模态特征融合方法。它能够捕捉视觉模态和语言模态之间的高层次信息,因此能够有效提高VQA的性能,另外该模型也包含有一定条件约束的其他模态融合,实验是基于VQA2.0数据集,结果表明该模型达到了state-of-the-art艺术级的效果。

二.基础铺垫

文章中,模态间的注意流基于co-attention(协同关注)来进行交互建模,而模态内部的注意流通过self-attention(自我关注)来进行交互建模,这里稍作提点:
协同注意力方法(Co-attention-based methods):协同注意力能够在两个模态交互建模,对于每一个单词,图像区域特征都会根据协同注意力与其对应。常见的模型包括Dense Symmetric Co-attention(DCN)。
自注意力方法(Self-attention-based methods):self-attention则是求自己对自己的权重,其特征转换为三种:查询特征(query),关键特征(key),值特征(value):
在这里插入图片描述
(不同特征之间的注意力矩阵可以通过query and key features的内积计算。获得注意力矩阵之后,特征可以被聚合为原始特征的注意力加权之和。基于自注意力机制提出的模型比如Non-local neural network,Relation Network。这里稍作展示一下self-attention的具体过程以便更加理解论文中的模型:
图一:self-attention图解图一:self-attention图解
self-attention分为三个阶段,其中阶段1中的F是计算Q与每一个K的相似度得分的函数,阶段2中的SoftMax()归一化将阶段1中求得的得分处理成一个0~1之间的概率,而阶段3即是将相应的得分与相应的权重相乘再相加,即加权求和得到原Q增加了注意力机制的特征向量。其中SoftMax()值与V相乘的图示公式如下:

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这等式是聚类分析中常见的方程,被称为“方差和公式”。下面是证明过程: 假设有n个数据点,它们被分成k个聚类,每个聚类有n1, n2, ..., nk个数据点。 总偏差可以表示为所有数据点到其所属聚类中心的距离平方和: Total Deviation = ∑(xi - x̄)^2 其中,xi是数据点的值,x̄是所有数据点的平均值。 将上式展开,可以得到: Total Deviation = ∑xi^2 - 2∑xi x̄ + n(x̄)^2 第一项 ∑xi^2 表示所有数据点的平方和,第二项 -2∑xi x̄ 表示所有数据点与平均值的乘积之和的两倍,第三项 n(x̄)^2 表示平均值的平方乘以数据点的个数。 现在考虑将总偏差分解为簇内偏差和簇间偏差之和。 簇内偏差可以表示为每个聚类内数据点到聚类中心的距离平方和之和: Intra-cluster Deviation = ∑∑(xi - ci)^2 其中,ci是聚类i的中心点。 将上式展开,可以得到: Intra-cluster Deviation = ∑xi^2 - 2∑xi ci + ∑ci^2 第一项 ∑xi^2 表示所有数据点的平方和,第二项 -2∑xi ci 表示所有数据点与聚类中心的乘积之和的两倍,第三项 ∑ci^2 表示所有聚类中心的平方和。 簇间偏差可以表示为每个聚类中心与全局平均值之间的距离平方和: Inter-cluster Deviation = ∑nk(ci - x̄)^2 将上式展开,可以得到: Inter-cluster Deviation = n1(ci1 - x̄)^2 + n2(ci2 - x̄)^2 + ... + nk(cik - x̄)^2 该式表示每个聚类中心与全局平均值之间的距离平方乘以该聚类中数据点的个数之和。 现在将簇内偏差和簇间偏差相加: Intra-cluster Deviation + Inter-cluster Deviation = ∑xi^2 - 2∑xi ci + ∑ci^2 + n1(ci1 - x̄)^2 + n2(ci2 - x̄)^2 + ... + nk(cik - x̄)^2 将所有项相加,得到: Intra-cluster Deviation + Inter-cluster Deviation = ∑xi^2 - n(x̄)^2 注意到 ∑xi^2 - n(x̄)^2 就是总偏差,所以有: Intra-cluster Deviation + Inter-cluster Deviation = Total Deviation 因此,上述方差和公式成立。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值