本文是对《ON THE CONNECTION BETWEEN LOCAL ATTENTION AND DYNAMIC DEPTH-WISE CONVOLUTION》的分析,作者在cnn领域找到了和local attention模块相似的机制,以此构建出了可以和swin transformer分庭抗礼的CNN架构
作者提出局部自注意力网络如swin transforme和深度可分离卷积及其动态变体在稀疏连接这一思路上有相似之处,他们的主要区别在于以下两点:
对于局部自注意力机制,作者主要从 网络正则化策略包括稀疏连接和参数共享以及动态权重预测三个方面来研究。首先假定局部窗口的大小为
N
k
N_k
Nk,即计算局部注意力的序列为
[
x
i
1
,
x
i
2
,
x
i
N
k
]
[x_{i1},x_{i2},{x_{iN_k}}]
[xi1,xi2,xiNk],给出局部自注意力机制的计算公式如下。
y
i
=
∑
j
=
1
N
k
a
i
j
x
i
j
a
i
j
=
e
x
p
(
Q
i
K
i
j
T
D
)
Z
i
,
Z
s
=
∑
j
=
1
N
k
e
x
p
(
Q
i
K
i
j
T
D
)
(1)
\bold{y}_i=\sum^{N_k}_{j=1}a_{ij}\bold{x}_{ij}\tag{1}\\ a_{ij}=\frac{exp(\frac{\bold{Q}_i\bold{K}^{T}_{ij}}{D})}{Z_i},Z_s=\sum_{j=1}^{N_k}exp(\frac{\bold{Q}_i\bold{K}^{T}_{ij}}{D})
yi=j=1∑Nkaijxijaij=Ziexp(DQiKijT),Zs=j=1∑Nkexp(DQiKijT)(1)
其中
y
i
∈
R
D
,
x
i
j
∈
R
D
,
a
i
j
∈
R
\bold{y}_i\in R^D,\bold{x}_{ij}\in R^D,a_{ij}\in R
yi∈RD,xij∈RD,aij∈R,实际上就是由
Q
,
K
Q,K
Q,K计算出的输入向量和窗口内向量的归一化权重
a
i
j
a_{ij}
aij,再乘上对应向量的嵌入值得出该位置的输出。同样可以写成如下点积的形式:
y
i
=
∑
j
=
1
N
k
w
i
j
⊙
x
i
j
\bold{y}_i=\sum^{N_k}_{j=1}\bold{w}_{ij}\odot\bold{x}_{ij}
yi=j=1∑Nkwij⊙xij
其中
w
i
j
=
[
a
i
j
,
a
i
j
,
.
.
.
,
a
i
j
]
∈
R
D
\bold{w}_{ij}=[a_{ij},a_{ij},...,a_{ij}]\in R^D
wij=[aij,aij,...,aij]∈RD,从这中形式的局部注意力我们可以分析出以下几条性质:
首先介绍一下深度卷积,它指的是对与输入的每个通道都分开进行卷积,假定输入为
H
×
W
×
C
H\times W\times C
H×W×C那就用
C
C
C个
W
×
W
×
1
W\times W\times 1
W×W×1的卷积D对每个通道分开处理得到
H
×
W
×
C
H\times W\times C
H×W×C的输出,给出窗口大小为
N
K
N_K
NK的一维形式的深度卷积计算公式如下:
y
i
=
∑
j
=
1
N
k
w
o
f
f
s
e
t
(
i
,
j
)
⊙
x
i
j
\bold{y}_i=\sum^{N_k}_{j=1}\bold{w}_{offset(i,j)}\odot\bold{x}_{ij}
yi=j=1∑Nkwoffset(i,j)⊙xij
同样是从以上几个角度分析:
给出性质对比图如下:
其中Local MLP指用MLP而非注意力来求输出 y i \bold{y}_i yi,D-DW-Conv指深度卷积的动态变体。可以看出深度卷积和局部注意力是非常相似的,同样是具有空间和通道层面的稀疏性,同样存在权重共享,而深度卷积的变体更进一步的拥有了相同的动态权重预测性质。
作者使用深度卷积及其变体来代替swin transformer中注意力模块,前置和后置的线性变换层被替换成了1*1卷积,在多项视觉任务上进行了实验,结果如下:
可以看到在分类任务上基础的DW-Conv已经取得了和swin transformer相近的结果,而且参数和计算量更少;引入了变体之后准确率更是超过了swin transformer,其余任务上的结果类似,基础版深度卷积和swin transformer效果接近,改进版更好。
正如之前说的,稀疏连接和参数共享以及动态权重预测是swin transformer非常重要的三个性质。稀疏连接的重要性通过swin trans和vit以及DW-CONV和CONV的结果对比就可以见得,作者通过实验来验证其余两项的重要性:
作者对local-mlp和local-attention共享参数的通道数目对性能的影响进行了研究,对后者而言,共享参数的通道数目通过控制head的数目来改变,结果如下:
结论是适当设置共享参数的通道数目,可以涨点。(这个实验说了和没说一样,没有明确结论。)
作者也研究了通道层面的参数共享和空间层面参数共享的影响,但结果也没什么说服力,加了通道层面参数共享后,DW的结果反而更差。
类似的,动态权重的有效性在前表中就可见得,作者在这里讨论了动态权重计算方式以及窗口移动方式(滑动或者是平移)的影响:
对attention机制而言,窗口移动方式影响不大;同样使用sliding的情况下,线性映射的效果要优于attention,但作者又说大模型的情况下基本没差别,也是没用的实验。
local attention和深度卷积很像,且非同质动态深度卷积要优于local attention,但消融实验属实做的不咋地。