Attention机制
soft attention:更关注区域或通道,是一种确定性的注意力。软注意力是可微的,也就是说可以通过算出梯度并进行前向传播和后向传播来获得学习得到的注意力权重。
hard attention:强注意力是随机的预测过程,更强调动态变化。强注意力不可微。
CV中的Attention机制
CV中的Attention机制大多集中于**掩码(mask)**来形成。掩码通过另一层新的权重从而将图中关键数据标识出来进行训练,从而获得注意力。
Attention机制的本质:通过特征图学习权重分布,再将学出来的权重施加再原特征图上,最终进行加权求和。
- 加权何以保留所有分量进行加权(soft),也可以采用某种采样策略进行部分分量的加权(hard)。
- 加权可以在空间(spatial)、通道(channel)以及不同时刻的特征上。
而加权方式的不同,又可以对应空间域(spatial domain)、通道域(channel domain)以及混合域。
- 其中,需要解释的是混合域作用在于,由于spatial domain忽略了通道域中的信息,将不同通道中的信息进行同等处理,导致spatial domain的变换方法局限在原始图片特征提取阶段,进而在其他层可解释性不强。
CNN中常用Attention机制
- spatial attention:CNN中回获得Channel × Height × Width的特征图,而spatial attention是对所有通道,在二维平面上,对Height × Width特征图的每一个像素学习到一个权重,而对每个channel来说同一像素的不同channel的权重是一样的。
- channel attention:在每个channel上,能学习到不同的权重,但是平面维度上则是一样的权重。故channel attention一般是对一个通道内所有的信息直接进行全局平均池化,忽略局部信息。
- mixed attention:利用两者的优点,主要代表是CBAM。
SENet
- Sequeeze:通过对C × W × H进行global average pooling,然后得到了具有全局感受野的1 × 1 × C大小的特征图。
- Excitation:将Sequeeze输出的特征图经两个全连接神经网络后,用类似RNN中门机制。通过参数来生成特征通道权重。
- Scale:将Excitation中的结果作为权重,通过乘法逐通道加权到C个通道上,完成重标定。
这种结构的原理是想通过控制scale的大小,把重要的特征增强,不重要的特征减弱,从而让提取的特征指向性更强。
论文中的对应操作:
- Squeeze通过global average pooling实现。
- 第一个全连接层将特征维度降为输入的1/16。
- 经过ReLu激活后,在通过一个全连接层,回升到原来的维度。
操作相比只用一个全连接层的好处:
- 拥有更多的非线性,更好的你和通道间的复杂相关性。
- 极大减少了参数量以及计算量;通过一个Sigmoid的门获得0 - 1之间归一化的权重,最后通过一个Scale的操作来将归一化后的权重加权到每个通道的特征上。