Attention augmented convolutional networks
目录
一、Introduction
传统的卷积操作是一个固定的filter在图片上扫过,对于(i,j)点,只能关注到filter大小的邻域中的内容,即使进行多次卷积,感受野依旧较小,丢失了global information。
最近的self-attention(都好几年了应该不算最近了吧)依靠注意力机制能够捕获长距离interaction,得到(i,j)这个点在全局的语义特征,正如论文中所说的,input signals间的interaction取决于它们自己,而不是像卷积中取决于它们之间的相对位置关系。
在论文中,使用self-attention机制来增强卷积算子,将强调局部性的convolutional feature maps与能够捕获长距离依赖性的self-attention feature maps concat到一起。
二、Self-attention over images
输出tensor的形状为(H,W,Fin),将其展平为(HW,Fin),在最经典的《attention is all you need》文章中,提到了multihead-attention,其中的single head如下:
将多个single head结果进行拼接,然后进行线性变换得到最终结果:
三、Two-dimensional Positional Encodings
当self-attention中不使用位置编码时,就会出现如下的情况(π为对X中像素位置进行任何的排列),此时比如说有一个句子:You can’t buy apples for free even if you work for Apple,没有了位置信息,前面一个apple与后面的apple只知道这个句子里的其他单词是什么,但不知道其相对位置,就会导致在self-attention中对两个apple计算出的语义信息一致(想了半天想出来的一个例子,就不要在意大小写与复数了,明白啥意思就好,呜呜呜~)
之前有几个编码方式,一为Image Transformer,将原始Transformer中引入的正弦波扩展到二维输入;二为CoordConv,将位置通道与激活映射连接到一起。然而这些encodings对图像分类和物体检测都没什么帮助,推测是这些位置编码虽然不是排列等变,但是不满足平移等变,而平移等变是处理图像时需要的特性。于是乎,作者们提出将relative position encodings扩展到二维中,并提出了一种基于Music Transformer 的高效内存实现方法。
Relative positional encodings
relative self-attention通过relative position encodings增强了self-attention,并且能够在满足非排列等变的情况下实现平移等变,通过独立添加相关高度信息与相关宽度信息实现二维relative self-attention。
像素i关注像素j的attention logit计算如下,i=(ix,iy),j=(jx,jy),将相对高度信息与相对宽度信息融入其中以实现二维relative self-attention。
Head h的输出为:
Attention Augmented Convolution
论文中的方法:
1)使用注意力机制共同关注空间和特征子空间(每个head对应一个特征子空间)
2)引入额外的feature maps,而不是细化它们
Concatenating convolutional and attentional feature maps
将卷积特征映射与self-attention特征映射concat到一起
总结
Attention相关的论文日常好难看懂,一直查资料翻文献,要走的路还有很长~~