最近看到了这个推送,将transformer和CNN是如何相互借鉴的
里面T2T-ViT没太关注,感觉就是在PE(patch embedding)之前加入了特征提取和融合提高了计算量
主要好奇BoTNet里的这幅插图,里面的Rh和Rw是什么,这种空间位置编码挺奇特的
然后最主要的是,作者是从什么角度出发相信MHSA的方法能够work的
有关这样设计的原因
在引言是这么说的
现在在对transformer在使用上有了两个分支,分别是将MHSA替代原有的block,这种引入self-attention的方式包括local, global, vector, axial,etc。另外一种就是像VIT一样的直接把图像放在transformer里计算的,但是这两种情况是有关联的。
首先要用convnet提取特征,这样做的好处是可以灵活的缩减特征图的尺寸,convnet在学习低级和抽象的语义特征有优势
后面用self-attention在高层的特征图上处理,这些特征图尺寸较小
这样的网络设计就可以取长补短了。
有关空间位置编码
这里的空间位置编码参考了Stand- alone self-attention in vision models.这篇文章
公式是这样的
其中
也就是说 Q和k 以及空间位置编码都算了一遍,分别是 content-content 和content-position
这样也和最上面的那张图对应起来了
Rh和Rw使用的是相对位置编码