题目:SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning

作者: Long Chen等(浙大、新国立、山大)

期刊:CVPR 2017

1       背景

  注意力机制已经在自然语言处理和计算机视觉领域取得了很大成功,但是大多数现有的基于注意力的模型只考虑了空间特征,即那些注意模型考虑特征图像中的局部更“重要”的信息,忽略了多通道信息的重要性关系。这篇文章介绍了一种新型的卷积神经网络——SCA-CNN,它融合了空间和信道的关注。

2      方法

  本文提出的方法针对图像和文字的匹配问题(neural image/video captioning (NIC))和视觉问答(visual question answering (VQA))。图1说明了在多层特征图中引入通道注意力机制的动机。首先,由于通道方向的特征映射本质上是对应滤波器的检测器响应映射,因此通道方向的保持可以看作是根据句子上下文的需求选择语义属性的过程。例如,当我们要预测蛋糕的时候,我们的通道会更关注根据蛋糕、火、光和蜡烛的语义,在过滤器生成的通道方向的特征图。

概述:

网络采用编码-解码框架生成图像标题,如图2所示,SCA-CNN通过多层面的信道注意和空间注意,赋予了原CNN多层地物图对句子上下文的自适应能力。

空间注意(Spatial Attention):

  一般来说,一个词只与图片的一小部分有关,空间注意机制试图将注意力更多地放在语义相关区域,而不是平均考虑每个图像区域。对于第l层特征图V = [v1, v2,…,v m], v∈RC×m,其中m为图像被划分的区域数,C为信道数,因此vi∈RC是第i个位置的视觉特征。空间注意力分布因子α如下:

通道注意力(Channel-wise Attention):

对每个通道应用空间均值池化,得到通道特征v:

通道注意力因子β:

框架结构1 通道-空间:

如图2所示,现在通道特征上应用注意力机制,然后再空间特征上应用。

  其中fc()为特征映射通道与对应通道权值的乘机。

框架结构2 空间-通道:

框架结构3 空间、通道集成到一个结构:

  每个标量特征都有一个概率权重,可以显著增加特征表示的变化量,但是计算量大。

3       结果

对通道注意力机制的评估:

  根据表1,我们得出以下结论:1)使用VGG-19,S比SAT好;使用ResNet-152,SAT性能要优于S。这是因为VGG-19网络具有完全连接的层,可以保留空间信息,但是,ResNet-152最初是平均池化的,因此无法保存空间信息。 2)比较C ans S的性能,ResNet-152可以比VGG-19网络显着改善C性能,这表明更多的通道数可以提高通道的注意性能,因为ResNet-152比VGG-19具有更多的通道数。 3)在VGG-19和ResNet-152中,S-C和S-C的性能非常相似。通常,C-S比S-C稍好一些,这可能是由于通道方向的特征更加关注。 4)在ResNet-152中,C-S或S-C可以明显改善S的性能。这表明,通过增加按通道注意,可以在通道数量较大时显着提高性能。

多层注意力机制评价:

  另外实验证明,通过在两个模型(S和C-S)中添加层可以获得更好的结果,这是因为多层注意有助于获得对多种语义抽象的视觉关注,但是添加的层数过多会引起过拟合的问题。

从表4和表5的结果可以看出,在大多数情况下,SCA-CNN都优于其他两种模型(数据集:MS COCO Image Challenge set)。

与当前较好的结果的比较:

  我们可以看到,在大多数情况下,SCA-CNN优于其他模型。 这是由于SCA-CNN利用空间,通道和多层注意力,而大多数注意力模型仅关注一种注意力类型。这是因为SCA-CNN利用了空间、频道和多层的注意力,而大多数注意力模型只关注一种注意力类型。请注意,我们不能超越ATT和谷歌NIC的原因是他们声称使用集成模型。然而,作为一个单一的模型,SCA-CNN仍然可以达到与集成模型相比较的结果。

相关结果展示:

4       结论

提出了一种新的注意力结构,称为SCA-CNN。SCA-CNN充分考虑了CNN的特点,并将其转化为细致的图像特征:空间性、频道性和多层性,实现了跨越流行基准的最新性能。

SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning的更多相关文章

  1. 【注意力机制】Attention Augmented Convolutional Networks

    注意力机制之Attention Augmented Convolutional Networks 原始链接:https://www.yuque.com/lart/papers/aaconv 核心内容 ...

  2. 《Attention Augmented Convolutional Networks》注意力的神经网络

    paper: <Attention Augmented Convolutional Networks> https://arxiv.org/pdf/1904.09925.pdf 这篇文章是 ...

  3. Paper Reading - CNN+CNN: Convolutional Decoders for Image Captioning

    Link of the Paper: https://arxiv.org/abs/1805.09019 Innovations: The authors propose a CNN + CNN fra ...

  4. 深度学习论文翻译解析(九):Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    论文标题:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 标题翻译:用于视觉识别的深度卷积神 ...

  5. 目标检测--Spatial pyramid pooling in deep convolutional networks for visual recognition(PAMI, 2015)

    Spatial pyramid pooling in deep convolutional networks for visual recognition 作者: Kaiming He, Xiangy ...

  6. 【论文笔记】Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition

    Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition 2018-01-28  15:4 ...

  7. (zhuan) Attention in Neural Networks and How to Use It

    Adam Kosiorek About Attention in Neural Networks and How to Use It this blog comes from: http://akos ...

  8. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Kaiming He, Xiangyu Zh ...

  9. SPPNet论文翻译-空间金字塔池化Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    http://www.dengfanxin.cn/?p=403 原文地址 我对物体检测的一篇重要著作SPPNet的论文的主要部分进行了翻译工作.SPPNet的初衷非常明晰,就是希望网络对输入的尺寸更加 ...

随机推荐

  1. mathematica练习程序(第一章 Mathematica的基本量)

    虽然过去有用Mathematica解过一些问题,不过对这个语言并没有系统学习过. 所以最近想重新把Mathematica系统的学一遍. 偶然在B站上找到了这样一组教程:https://www.bili ...

  2. 有关vector元素的取地址

    1--原则上,最好不要对vector的元素取地址,除非所有的vector元素已经填充完毕,这样vector的元素不会发生位置移动,地址才不会变,这样才能确保取得的地址的有效性.PS:即使在可以用已经分 ...

  3. lnmp1.5安装swoole

    php7.2安装swoole-4.0.1.tgz     php5.6安装swoole-1.10.4.tgz wget http://pecl.php.net/get/swoole-4.0.1.tgz ...

  4. C# 篇基础知识10——多线程

    1.线程的概念 单核CPU的计算机中,一个时刻只能执行一条指令,操作系统以“时间片轮转”的方式实现多个程序“同时”运行.操作系统以进程(Process)的方式运行应用程序,进程不但包括应用程序的指令流 ...

  5. Unity添加小米游戏SDK

    因为游戏要上线小米的平台,所以游戏就要添加小米SDK,整了3天总算是把小米SDK添加上了~~ 多亏找到了这个帖子:Unity3D接入小米盒子SDK. (小米人家论坛有官方贴出来的其他开发者的接入经验~ ...

  6. 今日份学习:写一些代码 (Spring+AOP+Redis+MySQL练习)

    笔记 Spring+AOP+Redis+MySQL练习 1. 启动docker->mysql docker run --name mysql -v e:\docker:/var/lib/mysq ...

  7. Ubuntu操作系统编写zabbix的启动管理脚本

    Ubuntu操作系统编写zabbix的启动管理脚本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.修改zabbix的pid存放路径 1>.创建存放zabbix的pid目录 ...

  8. java 垒骰子

    垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的 ...

  9. bsearch的使用

    懒得写二分查找,结果发现stdlib里自带了二分查找. C 库函数 void *bsearch(const void *key, const void *base, size_t nitems, si ...

  10. 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)详细教程重要

    前言 SSM(Spring+SpringMVC+Mybatis)是目前较为主流的企业级架构方案,不知道大家有没有留意,在我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能:而且在大部分教 ...