《SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning》论文笔记

CVPR 2017

人类的视觉不会立即关注图像的整体,只在需要的时间和地点关注于整个视觉空间的选择性部分。CNN通过层叠的视觉抽象提取图像特征,3D特征图的2D切片编码由一个过滤器信道收集的空间视觉响应。每个过滤器作为一个模式检测器,底层检测边、角特征,高层检测语义特征。因此,CNN提取的图像特征有三个特点:Spatial、channe-wise、muli-layer。

《SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning》结合这三个特点,提出SCA-CNN学习注意多层3D特征图的每个特征条目。首先,由于通道特征图本质上对应过滤器的检测器响应图,所以通道注意力可以看作根据句子上下文的要求选择语义属性的过程。其次,由于特征图依赖他更低层的特征图,所以在多层上应用注意力可以获得多个语义抽象的视觉注意力。

假设要生成图像描述的第t个单词,已知在LSTM内存中编码的最后一个句子上下文,d是隐藏状态的维度。在第层,空间和通道注意力权重和当前CNN特征的函数:

其中,是调制的特征,是先前卷积层输出的特征图(卷积,然后池化,下采样或卷积)。是线性加权函数,采用基于元素的相乘。接下来:

其中,L是卷积层总数。由于有相同的尺寸,计算量庞大,对GPU内存要求高。因此作者提出了分别学习空间注意力权重和通道注意力权重

扫描二维码关注公众号,回复: 5822587 查看本文章

(1)空间注意力

不丢失时一般性的情况下,丢弃分层上标,压扁原始V的宽度和高度,重塑,可以认为是第i个位置的视觉特征。给定LSTM的,使用一个单层神经网络接一个softmax函数生成在图像区域上的注意力分布,函数定义为:

其中,是变换矩阵将图像视觉特征和隐藏状态映射到相同维度。将定义为矩阵和向量之间的加法,矩阵的每一列加向量。是模型偏置。

不太懂这里的维度问题,Ws是k*c,Vi是c维,那V应该是c*m,结果应该是k*m?

(2)通道注意力

首先重塑V为表示特征图V的第i个通道,c是通道总数,然后在每个通道上应用均值池化以获得通道特征v:

其中,标量是向量的均值,表示第i个通道的特征。遵循的定义,为:

其中是变换矩阵,表示向量的外积,是模型偏置。

这里也是维度问题,Wc是k*1,v是c*1,这俩怎么求向量的外积?那求完是k*c?……好像可以。


通道注意力与空间注意力有两种实现顺序:

1、C-S:

2、S-C:

猜你喜欢

转载自blog.csdn.net/qq_29396337/article/details/88642082