计算机视觉中的注意力机制
Squeeze-and-Excitation Networks
《Squeeze-and-Excitation Networks》发表于CVPR 2018,是CV领域将注意力机制应用到通道维度的代表作,后续大量基于通道域的工作均是基于此进行改进的。
Squeeze-andExcitation (SE) 块,其目标是通过显式建模卷积特征通道之间的相互依赖性来提高网络产生的表示质量。为此,我们提出了一种机制,允许网络执行特征重新校准,通过它可以学习使用全局信息来选择性地强调信息特征并抑制不太有用的特征。
SQUEEZE-AND-EXCITATION BLOCKS
Squeeze-and-Excitation 块是一个计算单元,它先通过变换 F t r F_tr Ftr将输入 X ∈ R H ′ × W ′ × C ′ X ∈ R^{H^{'}×W^{'}×C^{'}} X∈RH′×W′×C′ 映射到特征图 U ∈ R H × W × C U∈ R^{H×W×C} U∈RH×W×C 上。在接下来的符号中,我们将 F t r F_tr Ftr 设为卷积算子并使用 v = [ v 1 , v 2 , . . . , v C ] v= [v_1,v_2, . . . ,v_C] v=[v1,v2,...,vC]表示学习到的滤波器内核集,其中 v c v_c vc 指的是第 c 个滤波器的参数。然后我们可以将输出写为 U = [ u 1 , u 2 , . . . , u C ] U = [u_1,u_2, . . . ,u_C] U=[u1,u2,...,uC],
u
c
=
v
c
∗
X
=
∑
s
=
1
C
′
v
c
s
∗
x
s
u_c=v_c*X=\sum_{s=1}^{C^{'}}v^s_c*x^s
uc=vc∗X=s=1∑C′vcs∗xs
这里 ∗ 表示卷积,
v
c
=
[
v
c
1
,
v
c
2
,
.
.
.
,
v
c
C
′
]
v_c = [v_c^1,v_c^2, . . . ,v_c^{C^{'}}]
vc=[vc1,vc2,...,vcC′],
X
=
[
x
1
,
x
2
,
.
.
.
,
x
C
′
]
X=[x^1,x^2,...,x^{C^{'}}]
X=[x1,x2,...,xC′]且
u
c
∈
R
H
×
W
u_c∈R^{H×W}
uc∈RH×W,
v
c
s
v_c^s
vcs表示第c个卷积核作用于X的第s个通道上。
Squeeze:全局信息嵌入
为了解决利用通道依赖性的问题,我们首先考虑输出特征中每个通道的信号。每个学习到的过滤器都使用局部感受野进行操作,因此转换输出 U 的每个单元都无法利用该区域之外的上下文信息。
为了缓解这个问题,我们建议将全局空间信息压缩到通道描述符中。这是通过使用全局平均池化生成通道统计数据来实现的。即把H×W的单个通道图压缩为一个实数。
z
c
=
F
s
q
(
u
c
)
=
1
/
(
H
×
W
)
∑
i
=
1
W
∑
j
=
1
W
u
c
(
i
,
j
)
z_c=F_{sq}(u_c)=1/(H×W)\sum_{i=1}^{W}\sum_{j=1}^{W}u_c(i,j)
zc=Fsq(uc)=1/(H×W)i=1∑Wj=1∑Wuc(i,j)
Excitation: 自适应重新校准
为了利用在挤压操作中聚合的信息,我们跟随它进行第二个操作,旨在完全捕获通道方面的依赖关系。即通过参数来为每个特征通道生成一个权重值,论文中是通过2个全连接层组成一个Bottleneck结构去建模通道间的相关性,并输出和输入特征同样数目的权重值。
我们选择使用带有 sigmoid 激活的简单门控机制:
F
e
x
(
z
,
W
)
=
σ
(
g
(
z
,
W
)
)
=
σ
(
W
2
δ
(
W
1
z
)
)
F_ex(z,W)=σ(g(z,W))=σ(W_2\delta(W_1z))
Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
其中σ指的是ReLU 函数,
W
1
∈
R
C
r
×
C
W_1∈R^{\frac Cr×C}
W1∈RrC×C,
W
2
∈
R
C
×
C
r
W_2∈R^{C×\frac Cr}
W2∈RC×rC。为了限制模型复杂性和帮助泛化,我们通过在非线性周围形成具有两个完全连接(FC)层的瓶颈来参数化门控机制,即具有缩减比 r 的降维层(该参数选择在第6.1),一个ReLU,然后一个维度增加层返回到变换输出U的通道维度。该块的最终输出是通过使用激活 s 重新缩放 U 获得的:
x
~
c
=
F
s
c
a
l
e
(
u
c
,
s
c
)
=
s
c
u
c
\tilde x_c=F_{scale}(u_c,s_c)=s_cu_c
x~c=Fscale(uc,sc)=scuc
其中
X
~
=
[
x
~
1
,
x
~
2
,
.
.
.
,
x
~
C
]
\tilde X=[\tilde x_1,\tilde x_2,...,\tilde x_C]
X~=[x~1,x~2,...,x~C]且
F
s
c
a
l
e
(
u
c
,
s
c
)
F_{scale}(u_c,s_c)
Fscale(uc,sc)指的是标量
s
c
s_c
sc 和特征图
u
c
∈
R
H
×
W
u_c∈R^{H×W}
uc∈RH×W之间的通道乘法.
激励算子将输入特定描述符 z 映射到一组通道权重。在这方面,SE 块本质上引入了以输入为条件的动态,这可以被视为通道上的自注意力函数,其关系不限于卷积滤波器响应的局部感受野。