用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

《Attention on Attention for Image Captioning》

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 2019-11-17 23:21:10 用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 2108 用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 收藏 5 分类专栏: 计算机视觉 VQA 最后发布:2019-11-17 23:21:10 首次发布:2019-11-17 19:32:31 版权

目录

一、文献摘要介绍

二、网络框架介绍

三、实验分析

四、结论


本文有点长,请耐心阅读,定会有收货。如有不足,欢迎交流, 另附:论文下载地址

一、文献摘要介绍

Attention mechanisms are widely used in current encoder/decoder frameworks of image captioning, where a weighted average on encoded vectors is generated at each time step to guide the caption decoding process. However, the decoder has little idea of whether or how well the attended vector and the given attention query are related, which could make the decoder give misled results. In this paper, we propose an “Attention on Attention” (AoA) module, which extends the conventional attention mechanisms to determine the relevance between attention results and queries. AoA fifirst generates an “information vectorand an “attention gate” using the attention result and the current context, then adds another attention by applying element-wise multiplication to them and fifinally obtains the attended information”, the expected useful knowledge. We apply AoA to both the encoder and the decoder of our image captioning model, which we name as AoA Network (AoANet). Experiments show that AoANet outperforms all previously published methods and achieves a new state-of-the-art performance of 129.8 CIDEr-D score on MS COCO “Karpathy” offlfline test split and 129.6 CIDEr-D (C40) score on the offificial online testing server.

作者认为注意力机制在当前的图像描述编码器/解码器框架中广泛使用,其中在每个时间步生成编码矢量的加权平均值以指导描述的解码过程。但是,解码器几乎不了解相关向量和给定注意力查询之间的关系或关联程度如何,这可能会使解码器给出错误的结果。在本论文中,作者提出了一个“Attention on Attention”(AoA)模块,该模块扩展了常规的注意力机制,以确定注意力结果和查询结果的相关性。AoA首先使用注意力结果和当前的上下文生成一个“信息向量”和一个“注意力门”,然后通过对它们进行逐元素乘法来增加另外一个注意力,最终获得“关注信息”,即预期的有用知识。我们将AoA应用于描述模型的编码器和解码器中,将其命名为AoA Network(AoANet)。实验表明,AoANet的性能优于以前发布的所有方法。

二、网络框架介绍

下图展示了“Attention on Attention”(AoA)模块,AoA使用注意力结果和注意力查询生成信息向量和注意力门,并通过将门应用于信息来添加另一个注意并获得关注信息。

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

将AoA应用于编码器和解码器,以组成AoANet,在编码器中,AoA有助于更好地建模图像中不同对象之间的关系,在解码器中,AoA过滤掉无关的注意力结果,仅保留有用的结果,下面进行详细分析该框架。

2.1Attention on Attention

        经典的注意力模块用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 对某些查询(queries),键(keys)和值(values) 进行操作,并生成一些加权平均向量(分别由用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 和用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 表示),如图2(a)所示。它首先测量QK之间的相似性,然后使用相似度分数计算V上的加权平均向量,这些向量可以表述为:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是第用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》个查询,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是第用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》个键/值对;用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是一个计算每个用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》相似性分数的函数;用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是查询用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》的关注向量。

          但是经典的注意力模块存在一个问题,就是无论用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是否相关,关注模块都会为每个查询输出加权平均值。即使没有相关向量,注意力模块仍会生成加权平均向量,该向量可能不相关,甚至会误导信息。

         因此,作者提出了AoA模块,如图2(b)所示。来测量关注结果和查询之间的相关性。AoA模块通过两个单独的线性变换生成一个“信息向量” 用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 和一个“注意力门”用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》,它们都以注意力结果和当前的上下文(即查询)为条件:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 ,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》的维数;用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是注意力结果,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是注意力模块,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》表示sigmoid型激活函数。

          然后,AoA通过使用逐元素乘法将注意力门应用于信息向量来增加另一个注意力,并获得关注信息用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》 表示逐元素相乘。AoA模型整体计算公式如下:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

2.2AoANet for Image Captioning

作者基于编码器/解码器框架(下图)构建图像描述模型AoANet,其中编码器和解码器都与AoA模块结合在一起。

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

1.Encoder with AoA

          对于图像,我们首先使用基于CNN或R-CNN的网络提取一组特征向量用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》,其中用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》中的向量数,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是每个向量的维度。我们没有直接将这些向量输送给解码器,而是构建了一个包含AoA模块的网络,以优化它们的表示,如下图所示。

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

          编码器中的AOA模块,称为用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》,采用多头注意函数,其中用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是特征向量用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》的三个单独的线性投影。AOA模块之后是残差连接和层规范化:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是三个线性变换矩阵。用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是多头注意函数,它沿通道维度将用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》分为用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》个切片,并对每一切片用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》采用用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》注意函数用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》计算注意力,然后将每一片的结果连在一起,形成最终的关注向量。

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

          在这个优化模块中,自注意多头注意模块(self-attentive muti-head attention module)在图像中的对象之间寻找相互作用,并使用AoA来衡量它们之间的关联程度。优化后,更新特征向量用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》。优化模块不会更改用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》的尺寸,因此可以堆叠N次(本文中N=6)。

注意,优化模块采用与Transformer编码器不同的结构,因为前者前馈层被丢弃,而我们前馈层是可选择丢弃的,作出这一改变的原因有以下两个:1)增加前馈层以提供非线性表示,这也是通过应用AoA实现的;2)丢弃前馈层不会改变AoANet的性能,但会简化操作。

2.Decoder with AoA

        解码器(如下图所示)使用优化的特征向量用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》来生成描述用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》序列。

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

我们对上下文向量用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》建模,以计算词汇表上的条件概率:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是要学习的权重参数,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是词汇表的大小。

        上下文向量用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》保存了解码状态和新获取的信息,这些信息是由关注的特征向量用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》的输出用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》生成的,其中用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是来自注意模块的关注结果,该模块可以具有一个或多个头。

        解码器中的LSTM对描述解码过程进行建模。它的输入包括当前时间步的输入词的嵌入,以及一个视觉向量用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》,其中用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》表示 用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》表示上一时间步长的上下文向量(用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》初始步长初始化为零):

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是用于词汇表用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》的词嵌入矩阵,而用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是在时间步长t处输入单词用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》的one-hot编码。

如图5所示,对于AoA解码器,从AoA模块获得用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》,标记为用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中,用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》是LSTM和用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》的隐藏状态用作注意查询。

3.Training and Objectives

我们首先通过优化交叉熵(XE)损失用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》来训练AoANet:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》表示目标ground truth 序列。

然后,我们使用自我关键序列训练(SCST)直接优化不可微指标:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

其中,奖励用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》使用某个指标的得分(例如CIDEr-D )。 梯度可以近似为:

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》表示从概率分布中采样的结果,而用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》表示贪婪解码的结果。

三、实验分析

我们在ImageNet和VisualGenome上使用一个预训练Faster R-CNN模型来提取图像的自下而上的特征向量。原始向量的维数为2048,我们预测 它们以D=1024的维数映射到一个新的空间,这也是LSTM在解码器中隐藏的尺寸。对于训练过程,我们在XE损失下训练AoANet 30周期,最小批处理大小为10个,使用ADAM 优化器以2e-4初始化的学习率,每3周期进行0.8的衰减。 每5个周期我们将计划的采样概率提高0.05 。 我们使用SCST对CIDEr-D分数进行了优化,以初始学习率为2e-5的另外15个时期进行了优化,当在某些训练步骤中验证拆分的分数没有改善时,将其衰减0.5。

下表是模型的性能表现。

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

下表是AoANet生成的描述示例和基线模型以及相应的ground truths

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

下表是消融研究的设置和结果

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

下图是模型的可视化。

用于图像描述的注意上的注意模型《Attention on Attention for Image Captioning》

四、结论

In this paper, we propose the Attention on Attention (AoA) module, an extension to conventional attention mechanisms, to address the irrelevant attention issue. Furthermore, we propose AoANet for image captioning by applying AoA to both the encoder and decoder. More remarkably, we achieve a new state-of-the-art performance with AoANet. Extensive experiments conducted on the MS COCO dataset demonstrate the superiority and general applicability of our proposed AoA module and AoANet.

在这篇文章中,作者改善了以往的注意力机制,以解决不相关的注意问题,将AoA模型应用与编码与解码阶段,带来了最新的性能。并且具有优越性和普适性,方法和思路值得借鉴。

上一篇:Linux用户管理


下一篇:Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering