《Attention on Attention for Image Captioning》

Tiám青年 2019-11-17 23:21:10 2108 收藏 5

分类专栏: 计算机视觉 VQA
最后发布:2019-11-17 23:21:10 首次发布:2019-11-17 19:32:31
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xiasli123/article/details/103112133

版权

目录

一、文献摘要介绍

二、网络框架介绍

三、实验分析

四、结论


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

一、文献摘要介绍

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 vector and 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使用注意力结果和注意力查询生成信息向量和注意力门,并通过将门应用于信息来添加另一个注意并获得关注信息。

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

2.1Attention on Attention

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

其中,是第个查询,是第个键/值对;是一个计算每个相似性分数的函数;是查询的关注向量。

但是经典的注意力模块存在一个问题,就是无论是否相关,关注模块都会为每个查询输出加权平均值。即使没有相关向量,注意力模块仍会生成加权平均向量,该向量可能不相关,甚至会误导信息。

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

其中 ,的维数;是注意力结果,是注意力模块,表示sigmoid型激活函数。

然后,AoA通过使用逐元素乘法将注意力门应用于信息向量来增加另一个注意力,并获得关注信息:

其中, 表示逐元素相乘。AoA模型整体计算公式如下:

2.2AoANet for Image Captioning

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

1.Encoder with AoA

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

编码器中的AOA模块,称为,采用多头注意函数,其中是特征向量的三个单独的线性投影。AOA模块之后是残差连接和层规范化:

其中,是三个线性变换矩阵。是多头注意函数,它沿通道维度将分为个切片,并对每一切片采用注意函数计算注意力,然后将每一片的结果连在一起,形成最终的关注向量。

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

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

2.Decoder with AoA

解码器(如下图所示)使用优化的特征向量来生成描述序列。

我们对上下文向量建模,以计算词汇表上的条件概率:

其中,是要学习的权重参数,是词汇表的大小。

上下文向量保存了解码状态和新获取的信息,这些信息是由关注的特征向量的输出生成的,其中是来自注意模块的关注结果,该模块可以具有一个或多个头。

解码器中的LSTM对描述解码过程进行建模。它的输入包括当前时间步的输入词的嵌入,以及一个视觉向量,其中表示 表示上一时间步长的上下文向量(初始步长初始化为零):

其中,是用于词汇表的词嵌入矩阵,而是在时间步长t处输入单词的one-hot编码。

如图5所示,对于AoA解码器,从AoA模块获得,标记为

其中,是LSTM和的隐藏状态用作注意查询。

3.Training and Objectives

我们首先通过优化交叉熵(XE)损失来训练AoANet:

其中表示目标ground truth 序列。

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

其中,奖励使用某个指标的得分(例如CIDEr-D )。 梯度可以近似为:

表示从概率分布中采样的结果,而表示贪婪解码的结果。

三、实验分析

我们在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。

下表是模型的性能表现。

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

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

下图是模型的可视化。

四、结论

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模型应用与编码与解码阶段,带来了最新的性能。并且具有优越性和普适性,方法和思路值得借鉴。


http://www.taodudu.cc/news/show-6952742.html

相关文章:

  • 论文翻译 —— Disambiguation-Free Partial Label Learning 非消歧偏标记学习(PL-ECOC)
  • MapReduce词频统计编程
  • 过审AppStore到底有多痛,经历过就知道了!
  • SQL Tuning Guide
  • 【英语】大学英语CET考试,口语部分2(课程笔记)
  • POJ 2020 MisLED 笔记
  • 网络安全四大合规-“3保1评”
  • 大陆银行核心业务系统国内厂商
  • 安全四大点会
  • 四大类商业银行实力特点大对比(下)
  • 四大类银行实力特点大对比(上)
  • 转 -- 网上投简历的技巧
  • 网上投递简历的要诀!
  • 网上投递简历技巧
  • 如何用手机HTML制作哆啦a梦,CSS3绘制哆啦A梦(带鼠标动画)
  • 用python画一个哆啦A梦
  • Python-turtle绘画旅程第一站:哆啦a梦
  • 哆啦a梦css html,用css画一个哆啦A梦
  • FPGA基础知识 2(Xilinx/Altera FPGA 中的逻辑资源--Slices VS LE 比较)
  • FPGA学习——基本结构
  • 日本的九所帝国大学
  • 耶鲁大学开放课程:《1648-1945年的欧洲文明》
  • 伯明翰大学
  • 让你的淘宝网店每天增加500~1000个流量的方法
  • 每天坚持做这几件事,淘宝店铺慢慢火
  • 马云幸福,与情人节无关
  • iOS在图片上添加文字 图片
  • 怎么在图片上添加文字?这几种添加文字方法非常简单
  • IT职场人,切不要一辈子靠技术生存
  • IT职场人,切不要一辈子靠技术生存(转载)

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

  1. bim展示 java_一个用于在浏览器上展示bim模型的vue插件

    # wl-bim-viewer 一个用于在浏览器上展示bim模型的vue插件,可以预览转化后的CAD文件. 基于vue和autodesk forge viewer写成. 目前支持单模型加载及多模型顺序 ...

  2. model-viewer(模型观察者),可用于查看 Web 上的 3D 模型并与之交互

    我做的Demo链接(pc或手机都可以看): 模型观察者model-viewer 码云demo地址: javascriptWeb3D: 模型观察者-model-viewer Demo 手机+PC效果图: ...

  3. 一个用于在浏览器上展示bim模型的vue插件

    wl-bim-viewer 一个用于在浏览器上展示bim模型的vue插件,可以预览转化后的BIM.CAD文件. 基于vue和autodesk forge viewer写成. 目前支持单模型加载及多模型 ...

  4. 在Cuda上部署量化模型

    在Cuda上部署量化模型 介绍TVM自动量化.自动量化是TVM中的一种量化方式.将在ImageNet上导入一个GluonCV预先训练的模型到Relay,量化Relay模型,然后执行推理. import ...

  5. 1750亿参数,史上最大AI模型GPT-3上线:不仅会写文章、答题,还懂数学

    「我们训练了 GPT-3,一种具有 1750 亿参数的自回归语言模型,这个数字比以往任何非稀疏语言模型都多 10 倍.我们在 few-shot 情况下测试了它的性能.」 本周五,OpenAI 提出的 ...

  6. 【炼丹技巧】指数移动平均(EMA)【在一定程度上提高最终模型在测试数据上的表现(例如accuracy、FID、泛化能力...)】

    本文中心: 1.指数移动平均(Exponential Moving Average)EMA作用: ema不参与实际的训练过程,是用在测试过程的,相比对变量直接赋值而言,移动平均得到的值在图像上更加平缓 ...

  7. (六)使用Coral USB Accelerator在Raspberry Pi上部署YOLOv5模型

    目录 介绍 Raspberry Pi的初始步骤 准备目录并创建虚拟环境 在Raspberry Pi上安装TFLite解释器和PyTorch 在Raspberry Pi上安装Coral USB Acce ...

  8. 边缘设备上的实时AI人员检测:在Raspberry Pi上测试SSD模型

    下载数据-19.3 MB 下载模型-43.5 MB 下载结果-36.66 MB 在本系列的上一篇文章中,我们已经在Raspberry Pi设备上启动了人体检测软件.在这一本文中,我们将比较Raspbe ...

  9. 在Windows10上编译SWASH模型

    在Windows10上编译SWASH模型 SWASH模型简介 编译准备 源代码下载 Microsoft Visual Studio安装 Intel Visual Fortran安装 Perl安装 MP ...

最新文章

  1. Block abstraction view(Create Reference)
  2. SharePoint 2010 列表项代码绑定附件心得 (FileUpload上传附件)
  3. android USB
  4. 时间序列模式识别_空气质量传感器数据的时间序列模式识别
  5. py2exe打包pyqt程序
  6. python 解析pb文件_利用Python解析json文件
  7. 基于内容的视频标注——关键帧图象层标注
  8. 青鸟影院的最后一部分
  9. 微信机器人接口,微信ipad协议
  10. 【Python】pandas计算DataFrame各列相关系数以及显著性检验
  11. 空洞卷积详解(输入输出大小分析)
  12. rocketMQ启动
  13. c语言小游戏 贪吃蛇
  14. 计算机相关美文摘抄,半途而废的人生很美美文摘抄
  15. 西方情人节前一天的话
  16. 未来交通 | 中国二十城出行者“MaaS及共享出行体验”初探索
  17. DDSM数据处理之PngWithOverlay 框出病灶区域
  18. matlab仿真电磁波的产生,电磁场与电磁波Matlab仿真
  19. 企业微信报错,提示无权限访问
  20. 阿尔伯塔大学计算机科学专业课程,[阿尔伯塔大学]计算机/计算机工程专业

热门文章

  1. 简单易懂的解释什么是WebAssembly
  2. linux内核-系统调用nanosleep()与pause()
  3. 树莓派Linux挂载硬盘提示只读问题解决
  4. 数据库有哪些常见的对象?
  5. VTK:频率处理——高通滤波(巴特沃斯高通滤波)
  6. CSS position定位之static
  7. 计算机的大小在哪里比较合适,一般电脑桌尺寸 电脑桌尺寸多少合适
  8. C语言(itoa函数)
  9. 读书·2022(20)
  10. 软件测试--用例测试方法综合选择(教育APP案例分析)