当前位置:   article > 正文

[论文评析]ArXiv,2021, CrossFormer技术分析_cross-scale patchembedding layer

cross-scale patchembedding layer

动机

当前的Vision Transformer在进行Attention时并没有考虑特征的多尺度信息,而考虑多尺度特征信息在CV中非常重要。

Existing methods没有考虑的原因:(1) 在CV这块,Sequence of embeddings一般是通过将Figure划分为相同尺寸的Patchs来产生的, 换句话说,每一层的Feature的尺度是单一的。(2) 在Attention计算中,相邻Embedding的计算通常会进行合并操作,这样引来的问题是: 即使两个embeddings的feature的尺度scale不同,合并操作本身也会牺牲小尺度(fine grained)特征。

Motivating examples:
在这里插入图片描述
如图展示的是两个Embeddings的不同尺度的representations, 可以看到: 仅从小尺度的representation来看,很难判断这两个embeddings之间的关系,因此很难在这两个Embeddings之间建立依赖。 相反,大尺度的representation可以提供丰富的语义信息来为这二者之间建立关联,这说明了考虑多尺度特征的重要性。

解决思路

为了解决上述问题,作者从Embedding操作和Attention操作分别着手,提出了所谓的Cross-scale Embedding layer (CEL)Long-Short Distance Attention (LSDA), 其中CEL是LSDA的前置操作,作用是通过考虑多尺度的patches来构建Embedding, LSDA通过两个模块SDA、LDA来分别Capture 近邻位置的embeddings间、距离远embeddings间的依赖关系。
此外, 作者改进了 relative position bias (RBP)提出所谓的dynamic position bias (DBP), 从而克服了原始RBP 输入 image/group大小固定这一限制。

CEL

在这里插入图片描述
简单来说, CEL就是多尺度卷积再聚合。如图, 输入Figure同一中心位置除有4个不同scale的patches, 对这四个patches分别进行投影然后Concat即可得到最终的embedding, 每个投影操作对应一个Convolution操作。 换句话说,对每个中心位置,用不同尺度的卷积核分别与该中心位置的不同尺度的patches进行卷积,然后合并Concat 。其中不同卷积的Stride相同,大卷积核的维度设置的比较小 D = 128 D=128 D=128, 因此最终聚合的维度为 D 2 + D 4 + D 8 + D 8 = 128 \frac{D}{2}+\frac{D}{4}+\frac{D}{8}+\frac{D}{8}=128 2D+4D+8D+8D=128

形式化定义
假设输入 X ∈ R H x W x D X \in R^{H {\rm x} W {\rm x} D} XRHxWxD,
O i ( X ) = C o n v i ( X ) , i ∈ { 1 , . . , 4 } O_{i}(X)=Conv_{i}(X), i \in \{1,..,4\} Oi(X)=Convi(X),i{1,..,4},
S E L ( X ) = C o n c a t ( O 1 ( X ) , O 2 ( X ) , O 3 ( X ) , O 4 ( X ) ) SEL(X)=Concat(O_{1}(X), O_{2}(X), O_{3}(X), O_{4}(X)) SEL(X)=Concat(O1(X),O2(X),O3(X),O4(X))
最终 S E L ( X ) ∈ R H ′ x W ′ x d ′ SEL(X) \in R^{H^{'} {\rm x} W^{'} {\rm x} d^{'}} SEL(X)RHxWxd

LSDA

LSDA包含Reshape, Attention with DBP, reverse Reshape三部分, 其中Reshape的作用是把大的Feature map变形为一个个小的patches, 然后对每个flattened patch分别进行attention,attention的本质是对patch内的信息进行重组, 最后在通过reverse Reshape还原到原始的尺寸。
在这里插入图片描述

Reshape

假设输入Feature map的尺寸为 X ∈ R S x S X \in R^{S {\rm x} S } XRSxS, 按照惯例,LSDA也是把feature map划分一个个patches, 然后分别进行Attention。 具体来说:
对于SDA X X X被划分为尺寸为 G x G G{\rm x} G GxG的小方格,每个小方格包含相邻的 G x G G{\rm x} G GxG个Embedding pixel的值, 这个过程记为Reshape, 形式化定义为:
X ′ = R e s h a p e ( X ) ∈ R ( S G ⋅ S G ) x G x G X^{'}=Reshape(X) \in R^{(\frac{S}{G} \cdot \frac{S}{G}) {\rm x} G {\rm x} G} X=Reshape(X)R(GSGS)xGxG,

对于LDA, 设置采样间隔 I I I I I I实际上相当于控制分辨率的参数,然后对某一位置间隔 T T T进行采样,最终会得到尺寸为 G x G G {\rm x} G GxG的patch, patch中任意连个相邻元素的间隔为 T T T, G = S I G=\frac{S}{I} G=IS, 这个Reshape过程与SDA中的Reshape过程不同,但卒子红输出的尺寸完全相同

Attention计算

相对位置偏差(RPB)通过向嵌入物的注意添加偏差来表示嵌入物的相对位置, 如下:
A t t e n t i o n = S o f t m a x ( Q ⋅ K T d + B ) V Attention=Softmax(\frac{Q \cdot K^{T}}{\sqrt{d}}+B)V Attention=Softmax(d QKT+B)V
其中 Q , K , V ∈ R G 2 x d Q,K,V \in R^{G^{2} {\rm x} d} Q,K,VRG2xd, B ∈ R G 2 x G 2 B \in R^{G^{2} {\rm x} G^{2}} BRG2xG2,
B i , j = D B P ( △ x i , j , △ y i , j ) B_{i,j}=DBP(\bigtriangleup x_{i,j}, \bigtriangleup y_{i,j}) Bi,j=DBP(xi,j,yi,j)

伪代码

在这里插入图片描述
代码很直观。

DBP

与RBP不同,作者提出了一个基于MLP的模块,即DPB来动态生成相对位置偏差, DBP示意图如下:
在这里插入图片描述
其中 △ x i , j , △ y i , j \bigtriangleup x_{i,j}, \bigtriangleup y_{i,j} xi,j,yi,j表示第 i , j i, j i,j个嵌入embeddings之间的坐标距离,

CrossFormer

在这里插入图片描述
CrossFormer的结构如上图所示,CrossFormer有多个Stage堆砌组成,每个Stage由一个CEL以及多个CrossFormer Block组成, CEL位于每个Stage之前,其主要使得作用是减小spatial size, 增大channel dimension, 因此整个网络类似空间金字塔结构, 每个Stage中的多个CrossFormer Block以SDA-LDA交替的方式进行堆砌。

通过设置不同的Stage配置参数,作者展示了4中不同的网络配置:
在这里插入图片描述

总结

感觉这篇与Focal Self attention类似, 动机相同,做法也有类似的地方, 不过这篇写作似乎没有另一篇清晰。

Focal Self attention 这篇文章中Patch Embedding依然是single scale, 创新点在于对于每个Query, 基于不同粒度的层次化的windows得到tokens,继而计算Key和Value。方法上非常简单

这篇在Patch Embedding中考虑了多尺度Embedding, Attention这块提出LDA+SDA,但是无法控制粒度

该领域的研究人员动动脑想出这些似乎并不是很难, 一个非该研究领域的reader的感觉…

Refernece

1.ArXiv,2021, CrossFormer: A versatile vision transformer based on cross-scale attention

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/354025?site
推荐阅读
相关标签
  

闽ICP备14008679号