Introduction
特征融合的方法很多.如果数学化地表示,大体可以分为以下几种:
- X + Y \textbf{X}+\textbf{Y} X+Y: X \textbf{X} X、 Y \textbf{Y} Y表示两个特征图, + + +表示元素级相加. 代表如ResNet、FPN
- X c o n c a t Y \textbf{X} \; concat\;\textbf{Y} XconcatY . c o n c a t concat concat表示张量 拼接操作。 代表如GoogleNet、U-Net
- X + G(X) ⋅ X \textbf{X}+\textbf{G(X)}\cdot\textbf{X} X+G(X)⋅X. G ( ⋅ ) \textbf{G}(\cdot) G(⋅)是注意力函数。这里表示自注意力机制。代表如SENet、 CBAM、Non-local
- G(Y) ⋅ X + Y \textbf{G(Y)}\cdot\textbf{X}+\textbf{Y} G(Y)⋅X+Y. 同样是将注意力机制作用在一个特征图上,而权重信息来源于对方。代表如GAU
- G(X) ⋅ X + ( 1 − G(X) ) ⋅ Y \textbf{G(X)}\cdot\textbf{X}+(1-\textbf{G(X)})\cdot\textbf{Y} G(X)⋅X+(1−G(X))⋅Y. 软注意力机制的一种,对特征图进行加权平均。代表如HighwayNetworks
- G ( X , Y ) ⋅ X + Y \textbf{G}(\textbf{X},\textbf{Y})\cdot\textbf{X}+\textbf{Y} G(X,Y)⋅X+Y. 代表如SA
- G ( X , Y ) ⋅ X + ( 1 − G ( X , Y ) ) ⋅ Y \textbf{G}(\textbf{X},\textbf{Y})\cdot\textbf{X}+(1-\textbf{G}(\textbf{X},\textbf{Y}))\cdot\textbf{Y} G(X,Y)⋅X+(1−G(X,Y))⋅Y,代表如SKNet
X+Y
ResNet
X concat Y
GoogleNet
X+G(Y)Y
SENet[1]
SENet使用了通道注意力的模块。
给定特征图
X
∈
R
C
×
H
×
W
X\in \mathbb{R}^{C\times H\times W}
X∈RC×H×W。通道注意力模块中的权重
w
∈
R
C
×
1
×
1
w\in \mathbb{R}^{C\times 1 \times 1}
w∈RC×1×1可表示为:
w
=
σ
(
B
(
W
2
δ
(
B
(
W
1
(
g
(
X
)
)
)
)
)
)
w =\sigma(B(W_2\delta(B(W_1(g(X))))))
w=σ(B(W2δ(B(W1(g(X))))))
其中,
g
(
X
)
=
1
H
×
W
∑
i
=
1
H
∑
j
=
1
W
X
[
:
,
i
,
j
]
,
g
(
X
)
∈
R
C
g(X)=\frac{1}{H\times W}\sum_{i=1}^{H}\sum_{j=1}^WX_{[:,i,j]},g(X)\in \mathbb{R}^C
g(X)=H×W1∑i=1H∑j=1WX[:,i,j],g(X)∈RC是全局池化层,
B
B
B是BN层,
δ
\delta
δ是ReLU层,
W
W
W是全连接层,
W
1
∈
R
C
r
×
C
,
W
2
∈
R
C
×
C
r
W_1\in \mathbb{R}^{\frac{C}{r}\times C},W_2\in \mathbb{R}^{C\times \frac{C}{r}}
W1∈RrC×C,W2∈RC×rC,r是通道缩减倍数。
CBAM[2]
SE模块将特征图中所有位置的权重浓缩为一个实数值,忽略了不同位置间的差异,且更容易关注大目标而忽略小目标。 CBAM(Convolutional Block Attention Module)在通道注意力之后又加上了空间注意力。
这里仅介绍空间注意力模块。空间注意力是以通道为单位进行最大和平均池化,并将两者的结果进行concat,之后再一个卷积降成1wh的特征图空间权重,再将该权重和输入特征进行点积。
权重
w
∈
R
1
×
H
×
W
w\in \mathbb{R}^{1\times H\times W}
w∈R1×H×W的数学表达形式为:
w
=
σ
(
W
(
[
F
a
v
g
c
(
X
)
]
;
F
m
a
x
c
(
X
)
]
)
)
w=\sigma(W([F_{avg}^c(X)];F_{max}^c(X)]))
w=σ(W([Favgc(X)];Fmaxc(X)]))
其中
F
a
v
g
c
F_{avg}^c
Favgc是通道上的平均池化,
F
m
a
x
c
F_{max}^c
Fmaxc是通道上的最大池化,
W
W
W是卷积层。
Non-local[3]
Non-local是为视频分类设计的一个模块,去掉时间维度也可应用到2D图像上。CBAM用卷积生成点的权重值,视野狭窄。而Non-local能捕获全局信息。
图中的乘号表示矩阵相乘。先使用3个1x1x1卷积压缩特征图,其中
θ
\theta
θ和
ϕ
\phi
ϕ分支用来计算每个点与其它所有点的相关系数,用softmax归一化为权重,乘以
g
g
g分支得到拥有全局信息的结果,然后用1x1x1卷积恢复通道数。为了方便插入任何一个网络,将其作为一个residual分支。
同样是对全局信息建模,Non-local相较于全连接层少了很多参数,其核心的计算点与点之间相关系数的部分甚至不需要参数。不过仍然存在计算时间长的问题。
G(Y)X+Y
GAU[4]
PAN是一个为图像分割设计的网络,其使用的GAU(Global Attention Upsample)模块,如下图所示
GAU出现在网络的decoder部分。其中Y是高层特征图,X是底层特征图。高层特征采用了Global Pooling得到权重,底层特征经过一个卷积层实现与高层特征相同数量的map,乘以权重后再和高层相加。
作者认为,decoder部分主要任务是恢复目标类别的像素位置,而高层特征含有丰富的类别信息能够指导底层特征。
G(X)X+(1-G(X))Y
Highway Networks[5]
Highway Network是2015年提出来的,时间上早于ResNet。想要解决的问题就是如何训练深度网络。其解决方案是基于LSTM的门控机制。特征融合公式可表示为:
H
(
x
)
⋅
T
(
x
)
+
x
⋅
(
1
−
T
(
x
)
)
H(x)\cdot T(x)+x\cdot (1-T(x))
H(x)⋅T(x)+x⋅(1−T(x))
它和residual模块比较相似:
H
(
x
)
⋅
T
(
x
)
+
x
⋅
(
1
−
T
(
x
)
)
=
(
H
(
x
)
−
x
)
⋅
T
(
x
)
+
x
=
F
(
x
)
+
x
H(x)\cdot T(x)+x\cdot (1-T(x)) = (H(x)-x)\cdot T(x) + x = F(x) + x
H(x)⋅T(x)+x⋅(1−T(x))=(H(x)−x)⋅T(x)+x=F(x)+x
下图体现了二者结构上的差别。图a是residual模块,图c是Highway
G(X,Y)X+(1-G(X,Y))Y
SKNet[6]
SK(Selective kernel )模块的作用是自适应调整感受野。
模块分为三个部分。Split部分 分别经过3x3卷积和5x5卷积,产生不同感受野的特征图,可看作X和Y。Fuse部分和SE模块类似,区别是最后恢复成两个不同的通道权重。Select部分将X和Y的权重做个Softmax然后加权融合。
由于SK模块的加入提高了模型的复杂度,为了降低参数量作者使用了分组卷积,以及用3x3的带孔卷积替换5x5卷积。
Remarks
- 公式的 Y \textbf{Y} Y可以表示成 f ( X ) f(\textbf{X}) f(X)或 f ( g − 1 ( X ) ) f(g^{-1}(\textbf{X})) f(g−1(X)), f f f和 g g g表示一系列CNN操作。意思是 Y \textbf{Y} Y要么直接来源于 X \textbf{X} X,如ResNet, 要么和 X \textbf{X} X有共同的祖先,如GoogleNet。反之亦可。
- 公式中只体现了两个特征图的融合,可拓展至多个特征图,如DenseNet。
- G ( ⋅ ) \textbf{G}(\cdot) G(⋅)相较于普通的网络层多了元素点乘的操作,在Non-local中还多了矩阵相乘操作。其具体提取的信息也不同,比如通道、空间、时序、全局、局部等,抑或是它们之间的排列组合,篇幅有限相关的算法不一一写出。
Reference
- Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141.
- Woo S, Park J, Lee J Y, et al. Cbam: Convolutional block attention module[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 3-19.
- Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7794-7803.
- Li H, Xiong P, An J, et al. Pyramid attention network for semantic segmentation[J]. arXiv preprint arXiv:1805.10180, 2018.
- Srivastava R K, Greff K, Schmidhuber J. Training very deep networks[C]//Advances in neural information processing systems. 2015: 2377-2385.
- Li X, Wang W, Hu X, et al. Selective kernel networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2019: 510-519.