假设输入为
X
∈
R
C
×
H
×
W
X \in R^{C\times H \times W}
X∈RC×H×W,它首先平展为一系列词
{
X
i
R
C
∣
i
=
1
,
c
…
,
N
}
,
N
=
H
W
\{X_i \R^C | i=1,c\dots, N\}, N= HW
{XiRC∣i=1,c…,N},N=HW并送入到网络中。视觉网络通常采用堆叠带残差连接的模块方式,可定义如下:
Y
=
F
(
X
,
{
W
i
}
)
+
X
Y = \mathcal{F}(X, \{W_i\}) + X
Y=F(X,{Wi})+X 我们首先定义关联矩阵
A
∈
R
N
×
N
\mathcal{A} \in R^{N \times N}
A∈RN×N用于表示用于上下文集成的近邻,上述工时可以重写如下:
Y
=
(
A
V
)
W
1
+
X
Y = (\mathcal{A}V)W_1 + X
Y=(AV)W1+X 其中
V
∈
R
N
×
C
V\in R^{N\times C}
V∈RN×C表示X的变换:
V
=
X
W
2
V = XW_2
V=XW2。
W
1
,
W
2
W_1, W_2
W1,W2均为可学习参数。
A
i
,
j
\mathcal{A}_{i,j}
Ai,j表示
X
i
X_i
Xi与
X
i
X_i
Xi之间的关联值。V与关联矩阵相乘则在特征值之间进行的信息流动。这种上下文集成模块(Context Aggregation Block, CAB)的建模能力可以通过引入多个关联矩阵提升,使得网络可以在X之间构建多个上下文关联路径。上式的多头版本定义如下:
Y
=
C
o
n
c
a
t
(
A
1
V
1
,
⋯
,
A
M
1
V
M
)
W
2
+
X
Y = Concat(\mathcal{A}_1V_1, \cdots, \mathcal{A}M1V_M)W_2 + X
Y=Concat(A1V1,⋯,AM1VM)W2+X
A
m
\mathcal{A}_m
Am表示不同头的关联矩阵,不同的关联矩阵可以捕获不同的相关性,进而可以提升上下文集成的表达能力。注:上下文集成过程中仅仅产生了空间信息流动,而未发生跨通道信息交互,同时不存在非线性激活函数。
The Transformer, Depthwise Convolution and MLP-Mixer
Transformer 在Transformer的自注意力机制中,关联矩阵通过投影query-key对之间的相似性建模。以带M头为例,m头的关键矩阵
A
m
s
a
\mathcal{A}_m^{sa}
Amsa可以写成如下形式:
A
m
s
a
=
S
o
f
t
m
a
x
(
Q
m
K
m
T
/
C
/
M
)
\mathcal{A}_m^{sa} = Softmax(Q_m K_m^T/\sqrt{C/M})
Amsa=Softmax(QmKmT/C/M) 其中,
K
m
,
Q
m
K_m, Q_m
Km,Qm分别表示m头的key与query。自注意力中的关联矩阵可以动态生成并可以捕获实例级信息。然而,这种表达方式会带来二阶计算复杂度,对于高分辨率特征而言,计算量尤其大。
Depthwise Convolution 卷积操作可以同时进行空域与通道信息集成。这与上述上下文集成模块不同。然而,深度卷积是组卷积的极限特例。考虑到CAB的头数等于通道数C,我们定义如下卷积关联矩阵:
A
m
i
j
c
o
n
v
=
{
K
e
r
[
m
,
0
,
∣
i
−
j
∣
]
,
∣
i
−
j
∣
≤
k
0
,
∣
i
−
j
∣
>
k
\mathcal{A}_{mij}^{conv} = \begin{cases} Ker[m,0,|i-j|], |i-j| \le k \\ 0, |i-j| > k \end{cases}
Amijconv={Ker[m,0,∣i−j∣],∣i−j∣≤k0,∣i−j∣>k 其中,
A
m
i
j
\mathcal{A}_{mij}
Amij表示m头时
X
i
X_i
Xi与
X
j
X_j
Xj之间的关联值。注:不同于自注意力中的关联矩阵随输入动态变化,卷积中的关联矩阵时静态的。
MLP-Mixer 近期新提出的MLP-Mixer不依赖于任何卷积或者自注意力模块,MLP-Mixer的核心为转置MLP操作,它可以表示为:
X
=
X
+
(
V
T
W
M
L
P
)
T
X=X + (V^TW_{MLP})^T
X=X+(VTWMLP)T。对此我们可以定义如下关联矩阵:
A
m
l
p
=
(
W
M
L
P
)
T
\mathcal{A}^{mlp} = (W_{MLP})^T
Amlp=(WMLP)T 其中
W
M
L
P
W_{MLP}
WMLP表示可学习参数。这种简单的工时表明:转置MLP操作本身即视一种上下文集成操作。相比自注意力与深度卷积,转置MLP关联矩阵是静态的、稠密的、参数不共享。
正如前面所提到:不同的架构或采用静态,或采用动态关联矩阵进而具有了各自不同的优势。我们所提模块CONTAINER通过可学习参数组合两种两类型的关联矩阵。单头CONTAINER定义如下:
Y
=
(
(
α
A
(
X
)
⏞
Dynamic
+
β
A
⏞
Static
)
V
)
W
2
+
X
Y = ((\alpha \overbrace{\mathcal{A}(X)}^\text{Dynamic} + \beta \overbrace{\mathcal{A}}^\text{Static})V)W_2 + X
Y=((αA(X)Dynamic+βAStatic)V)W2+X 其中,
A
(
X
)
\mathcal{A}(X)
A(X)表示由X动态生成,而
A
\mathcal{A}
A表示静态关联矩阵。接下来,我们呈现几个关于CONTAINER模块的特例。
α
=
1
,
β
=
0
,
A
(
X
)
=
A
s
a
\alpha = 1, \beta=0,\mathcal{A}(X)=\mathcal{A}^{sa}
α=1,β=0,A(X)=Asa:带自注意力的朴素Transformer模块;
α
=
0
,
β
=
1
,
M
=
C
,
A
=
A
c
o
n
v
\alpha=0, \beta=1, M=C, \mathcal{A} = \mathcal{A}^{conv}
α=0,β=1,M=C,A=Aconv:深度卷积模块。在深度卷积中,每个通道具有不同的静态关联矩阵。
α
=
0
,
β
=
1
,
M
=
1
,
A
=
A
m
l
p
\alpha=0, \beta=1, M=1, \mathcal{A} = \mathcal{A}^{mlp}
α=0,β=1,M=1,A=Amlp: MLP-Mixer模块。当
M
≠
1
M \ne 1
M=1时,我们称之为为MH-MLP:即将通道拆分为M个组,每个组实行不同的MLP以捕获静态关联。
α
=
L
,
β
=
L
,
A
(
X
)
=
A
s
a
,
A
=
A
m
l
p
\alpha=\mathcal{L}, \beta=\mathcal{L},\mathcal{A}(X) = \mathcal{A}^{sa}, \mathcal{A} = \mathcal{A}^{mlp}
α=L,β=L,A(X)=Asa,A=Amlp:该模块同时融合了动态与静态信息,但静态关联集成了MLP-Mixer矩阵。我们称之为CONTAINER-PAM。
α
=
L
,
β
=
L
,
A
(
X
)
=
A
s
a
,
A
=
A
c
o
n
v
\alpha=\mathcal{L}, \beta=\mathcal{L},\mathcal{A}(X) = \mathcal{A}^{sa}, \mathcal{A} = \mathcal{A}^{conv}
α=L,β=L,A(X)=Asa,A=Aconv:该模块同时融合了动态与静态信息,但静态关联集成了深度卷积矩阵。该静态关联矩阵包含了平移不变局部约束,使其更适用于视觉任务。此为我们实验中的默认配置。
在该文中,我们固定通道融合模块为2层MLP;设计一种更佳的空域集成模块时本文的主要聚焦点。这四个阶段分别包含2-3-8-3个级联模块;每个阶段采用块嵌入融合
p
×
p
p\times p
p×p的块为向量。对于这四个阶段,p值分别为4-4-2-2。不同阶段的特征维度则为128-26-320-512。该架构具有与DeiT-S相近的参数量。