《SCA-CNN:Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning》论文笔记
1. 前言
视觉领域的attention已经成功地被应用于结构预测任务中
视觉领域的attention已经成功地被应用于结构预测任务中

文中指出:基于卷积神经网络(CNN)的基本原理,在其提取出的特征图中包含了空间信息、语义通道特性和多层次表示特性。然而,在现有的许多图像捕获方法中,主要关注于空间方面的特征,并且其中通常采用的是基于空间注意力权重的方法。鉴于此,在此基础上本文提出:充分挖掘并综合运用卷积神经网络中的空间特征、语义通道特征以及多层表示特性,并在此基础上提出了将空间注意力与语义通道注意力相结合的方法。该方法通过巧妙地融合这些不同类型的注意力机制而展现出良好的性能,并命名为SCA-CNN模型
2. SCA-CNN网络
2.1 网络结构

其网络架构由图示可知,在每一层特征图上依次实施通道注意力机制和空间注意力机制。通过结合卷积操作后的特征图中的通道特性和空间特性进行加权融合。对于单个尺度的空间注意力机制和通道注意力机制的理解较为直观,请问如何将这一策略扩展至多层架构呢?论文采用模块化的方式进行堆叠实现。如前所述,在第l-1、第l以及第l+1层特征图中可见这一设计模式。掌握了整体架构后,请继续深入探究其中具体的工作原理。
2.2 spatial attention
首先,来看一下整个attention的更新方式,其更新方式如下:

其中,在第l-1层中使用的是卷积特征层;在SCA-CNN架构中所述模块运算过程中所涉及的关键变量可以被看作是中间变量;在时间序列t-1处的LSTM隐藏状态是一个d维向量;经过注意力机制后的第l层权重参数用于后续操作;通过加权操作将卷积核进行重新分配。最终通过整个网络处理后得到图像对应的描述文字序列:

其中,y_t代表最后输出的图片描述单词。那么转回主题,spatial模块中权重分布是如何具体计算得到的呢?也就是下面需要解决的问题:

该方法在空间域上的权重计算(即图3所示)的具体实现过程如下:
a = \tanh\left( (W_s V + b_s) \oplus W_{hs} h_{t-1} \right)
\alpha = \text{softmax}(W_i a + b_i)
其中参数a即为attention机制中的得分函数;向量V=[v_1,v_2,\dots,v_m]由m=W\times H个元素组成(此处W和H分别代表feature map的宽度与高度),每个元素的长度均为C(即feature map中各通道的数量);权重矩阵包括三个部分:\bm{W_s}\in\mathbb{R}^{k\times C}、\bm{W_{hs}}\in\mathbb{R}^{k\times d}以及\bm{W_i}\in\mathbb{R}^{k};符号\oplus表示的是向量与矩阵之间的运算
2.3 channel-wise attention
在channel-wise层面上的注意力机制与spatial层面具有相似性。随后,在经过 reshape 处理后会生成向量 U = [u_1, u_2, \dots, u_C] ,其中该向量的数量等于通道的数量,并且每个元素的空间维度为 W×H 。随后呢,在对每个元素执行 average Pooling 操作后会生成向量 v = [v_1, v_2, \dots, v_C] 。从而最终的权重计算方式可表示为:

在论文中还探讨了spatial与channel-wise attention之间差异的先后顺序,并表明其实验结果。

在通道层面优先级分配上表现出明显优势。文章详细阐述了这一技术方案的核心内容,并对其表现进行了深入分析。该方法的表现全面超越了现有的先进方法的主要原因在于其充分利用了卷积神经网络(CNN)的三个关键特征。这些特征对于语义理解的作用尤为显著,在实际应用中能够实现较好的性能水平。通过整合多种有效的技术手段可以达到良好的效果这一方案为我们提供了许多重要的启示。但需要指出的是这种方法对计算资源的需求量较大
