赞
踩
当前的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就是多尺度卷积再聚合。如图, 输入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}
X∈RHxWxD,
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)∈RH′xW′xd′,
LSDA包含Reshape, Attention with DBP, reverse Reshape三部分, 其中Reshape的作用是把大的Feature map变形为一个个小的patches, 然后对每个flattened patch分别进行attention,attention的本质是对patch内的信息进行重组, 最后在通过reverse Reshape还原到原始的尺寸。
假设输入Feature map的尺寸为
X
∈
R
S
x
S
X \in R^{S {\rm x} S }
X∈RSxS, 按照惯例,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(GS⋅GS)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过程不同,但卒子红输出的尺寸完全相同。
相对位置偏差(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
Q⋅KT+B)V
其中
Q
,
K
,
V
∈
R
G
2
x
d
Q,K,V \in R^{G^{2} {\rm x} d}
Q,K,V∈RG2xd,
B
∈
R
G
2
x
G
2
B \in R^{G^{2} {\rm x} G^{2}}
B∈RG2xG2,
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)
代码很直观。
与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有多个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的感觉…
1.ArXiv,2021, CrossFormer: A versatile vision transformer based on cross-scale attention
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。