Improving Convolutional Networks with Self-Calibrated Convolutions
- 一、引言
- 二、方法实现
- 一、Self-Calibrated Convolutions
- 二、Instantiations
- 三、实验
- 一、消融实验
- 二、目标检测
- 三、关键点检测
论文: http://mftp.mmcheng.net/Papers/20cvprSCNet.pdf
代码: https://github.com/MCG-NKU/SCNet
一、引言
CNN的最新进展主要集中在设计更复杂的体系结构以增强其表示学习能力。在本文中,通过不调整模型架构的情况下改进CNN的基本卷积特征转换过程。本文提出了一种新的自校准卷积,通过内部通信显式扩展每个卷积层的感受野,从而丰富了输出特征。特别是,与使用小内核(例如,3 × 3)融合空间和通道信息的标准卷积不同,自校准卷积通过一种新的自校准操作,自适应地围绕每个空间位置构建远程空间和通道间依赖关系。因此,它可以通过显式地合并更丰富的信息来帮助CNN生成更具鉴别性的表示。自校准卷积设计简单而通用,可以很容易地应用于标准卷积层,而无需引入额外的参数和复杂性。
在之前的工作中,生成丰富特征表示的一种有效方法是使用强大的手工设计的网络架构,如残差网络(ResNets)及其各种变体或基于AutoML技术设计网络。最近,一些方法试图通过将注意力机制或非局部块纳入成熟网络来建模空间位置或通道之间的相互依赖关系。上述方法背后的共同思想是调整网络架构以产生丰富的特性。
在本文中没有设计复杂的网络架构来加强特征表示,而是引入自校准卷积作为一种有效的方法,通过增加每层的基本卷积变换来帮助卷积网络学习判别表示。类似于分组卷积,它将特定层的卷积滤波器分离为多个部分,但不均匀,每个部分中的滤波器以异构的方式利用。具体来说,自校准卷积不是在原始空间中对输入进行均匀的卷积,而是先通过下采样将输入转换为低维嵌入。采用一个滤波器部分所变换的低维嵌入来标定滤波器在另一个滤波器部分中的卷积变换。利用这种异构卷积和过滤间通信,可以有效地扩大每个空间位置的感受野。
作为标准卷积的增强版本,自校准卷积提供了两个优势。首先,它使每个空间位置能够自适应地编码来自一个远距离区域的信息上下文,打破了在小区域(如3x3)内进行卷积运算的传统,这使得自校准卷积产生的特征表示更具鉴别性。在下图中,可视化了ResNets使用不同类型的卷积生成的特征激活映射。可以看出,带有自校准卷积的ResNet可以更准确、更完整地定位目标物体。其次提出的自校准卷积是通用的,可以很容易地应用于标准卷积层,而无需引入任何参数和复杂性开销或改变超参数。
二、方法实现
传统的二维卷积层
F
F
F与一组滤波器集
K
=
[
k
1
,
k
2
,
…
,
k
C
]
K = [k_1, k_2,…, k _C]
K=[k1,k2,…,kC]相关联。其中k_i表示第i组大小为C的滤波器,并将输入
X
=
[
x
1
,
x
2
,
…
,
x
C
]
∈
R
C
×
H
×
W
X = [x_1, x_2,…, x_C]∈R^{C×H×W}
X=[x1,x2,…,xC]∈RC×H×W变换到输出
Y
=
[
y
1
,
y
2
,
…
,
y
c
^
]
R
C
^
×
H
^
×
W
^
Y = [y_1, y_2,…,\hat{y_c}]R^{\hat{C}× \hat{H}×\hat{W}}
Y=[y1,y2,…,yc^]RC^×H^×W^。注意,为了便于标记,省略了滤波器的空间大小和偏置项。根据上面的符号,通道i的输出特征映射可以写成:
其中’ * '表示卷积,
k
i
=
[
k
i
1
,
k
i
2
,
…
k
i
C
]
ki = [k_i^1,k_i^2,… k_i^C]
ki=[ki1,ki2,…kiC],从上面可以看出,每个输出特征图都是通过所有通道的求和来计算的,并通过多次重复上式来统一生成所有输出特征图。通过这种方式,卷积滤波器可以学习相似的模式。此外,卷积特征变换中每个空间位置的感受野主要由预定义的内核大小控制,由这样的卷积层堆栈组成的网络也缺乏大的感受野来捕获足够的高级语义。以上两个缺点都可能导致特征图的鉴别能力降低。为了缓解上述问题,本文提出了自校准卷积,具体内容如下:
一、Self-Calibrated Convolutions
在分组卷积中,特征转换过程在多个并行分支中均匀地单独执行,每个分支的输出被连接起来作为最终输出。与分组卷积类似,提出的自校准卷积也将可学习的卷积滤波器分成多个部分,但不同的是,滤波器的每个部分不是平等对待的,而是负责特定的功能。
工作流程如上图所示。当输入通道数C与输出通道数C相同,即C = C。因此,在下面,为了方便起见,用C来代替C。给定一组形状为
(
C
,
C
,
k
h
,
k
w
)
(C, C, k_h, k_w)
(C,C,kh,kw)的滤波器K,其中
k
h
k_h
kh和
k
w
k_w
kw分别为空间高度和宽度,首先将其均匀地分为四部分,每一部分负责不同的功能。在不失一般性的前提下,假设C能被2除。分离后,我们有四个部分的滤波器,用
{
K
i
}
i
=
1
4
\{K_i\}_{i=1}^4
{Ki}i=14表示,每个部分的形状分别为
(
c
2
,
c
2
,
k
h
,
k
w
)
(c_2, c_2, k_h, k_w)
(c2,c2,kh,kw)。
给定滤波器的四个部分,然后将输入X统一分成两个部分
X
1
,
X
2
{X_1, X_2}
X1,X2,然后将每个部分发送到一个专门的路径中,用于收集不同类型的上下文信息。在第一条途径中,利用
{
K
2
,
K
3
,
K
4
}
\{K_2, K_3, K_4\}
{K2,K3,K4}对X_1进行自校准操作,得到
Y
1
Y_1
Y1。在第二种路径中,执行一个简单的卷积运算:
Y
2
=
F
1
(
X
2
)
=
X
2
∗
K
1
Y_2 = F_1(X_2) = X_2 * K_1
Y2=F1(X2)=X2∗K1,其目标是保留原始的空间上下文。然后将两个中间输出{Y1, Y2}连接在一起作为输出y。接下来将详细描述了如何在第一个路径中执行自校准操作。
为了高效有效地收集每个空间位置的信息性上下文信息,建议在两个不同的尺度空间中进行卷积特征转换:一个是特征映射与输入共享相同分辨率的原始尺度空间,另一个是下采样后的小潜在空间。小潜伏空间中变换后的嵌入,由于其大的感受野,可以作为参考,指导原始特征空间中的特征变换过程。
自校准:给定输入
X
1
X_1
X1,采用卷积核大小r × r,步幅r的平均池化,如下所示:
基于
K
2
K_2
K2上的
T
1
T_1
T1特征转换:
其中Up(·)是一个双线性插值算子,它将中间参考从小尺度空间映射到原始特征空间。现在,校准操作可以表述如下:
其中
F
3
(
X
1
)
=
X
1
∗
K
3
F_3(X_1) = X_1 * K_3
F3(X1)=X1∗K3, σ为sigmoid函数,“·”表示逐元素的乘法。如上式所示,使用
X
1
′
X^{'}_1
X1′作为残差来形成校准的权重,这是有益的。校准后的最终输出如下:
所提出的自校准操作的优点有三方面。首先,与传统卷积相比,通过采用校准操作,每个空间位置不仅可以自适应地将其周围的信息上下文视为潜在空间的嵌入,作为原始尺度空间响应中的标量,而且还可以建模通道间依赖关系。因此,自校准卷积层的感受野可以有效扩大。如下图示,具有自校准的卷积层编码更大但更准确的判别区域。其次,自校准操作不收集全局上下文,只考虑每个空间位置周围的上下文,在一定程度上避免了一些来自不相关区域的污染信息。
从下图的右边两列可以看出,在可视化最终得分层时,带有自校准的卷积可以准确定位目标对象。第三,自校准操作对多尺度信息进行编码,是目标检测相关任务的重要要求。
二、Instantiations
为了证明所提出的自校准卷积的性能,以残差网络的几种变体为例。同时考虑了50层和101层瓶颈结构。为了简单起见,只将每个构建块中的3 × 3卷积层中的卷积运算替换为的自校准卷积,并保持所有相关的超参数不变。默认情况下,自校准卷积中的下采样率r设置为4。
与分组卷积的关系:分组卷积采用split-transform-merge策略,单个卷积变换在多个并行分支或分级中均匀进行。与分组卷积不同,自校准卷积可以以异构的方式利用卷积的不同部分。因此,转换过程中的每个空间位置都可以通过自校准操作融合来自两个不同空间尺度空间的信息,这在很大程度上增加了应用于卷积层的感受野,从而产生更具鉴别性的特征表示。
与注意模块的关系:我们的工作也不同于现有的依赖于附加注意力块的方法,如SE块,GE块,或CBAM。这些方法需要额外的可学习参数,而自校准卷积内部改变了利用卷积层的卷积的方式,因此不需要额外的可学习参数。此外,尽管GE块像我们一样在低维空间中编码空间信息,但它并没有显式地保存原始尺度空间中的空间信息。
三、实验
输入图像的大小为224×224。使用SGD优化所有模型。权重衰减和动量分别设置为0.0001和0.9。使用4个Tesla V100 GPU, mini-batch大小设置为256(每个GPU 64个)。默认情况下,训练所有模型100个epoch,初始学习率为0.1,每30个epoch后除以10。在测试中,报告了从短边调整为256的图像中单个224 × 224中心裁剪的精度结果。注意,除了网络结构本身,所有消融比较中的模型都共享相同的运行环境和超参数。下表中的所有模型都在相同的策略下进行训练,在相同的设置下进行测试。
一、消融实验
泛化能力:为了证明所提出结构的泛化能力,考虑了三种广泛使用的分类架构作为基线,包括ResNet, ResNeXt和SE-ResNet。具有自校准卷积的相应网络分别被命名为SCNet、SCNeXt和SE-SCNet。遵循ResNeXt (32 × 4d)的默认版本,在SCNeXt中将瓶颈宽度设置为4。根据我们的结构,对每组卷积的基数进行计算,确保SCNeXt的容量接近ResNeXt。对于SE-SCNet,将SE模块应用于SCNet。在上表中,展示了每个模型的50层和101层版本产生的结果。与原始ResNet-50架构相比,SCNet-50的准确率提高了1.4% (77.8% vs. 76.4%)。此外,SCNet-50的改善率(1.4%)也高于ResNeXt-50(1.0%)和SE-ResNet-50(0.8%)。这表明自校准卷积比增加基数或引入SE模块表现得更好。当网络深入时,也可以观察到类似的现象。
**Self-Calibrated Convolution vs. Vanilla Convolution:**为了进一步研究所提出的自校准卷积与香草卷积相比的有效性,在ResNet-50和SCNet-50中间阶段res3之后,侧监督(辅助损失)添加到ResNet-50和SCNet-50中。侧输出的结果可以反映深度变化时网络的表现,以及不同层次上的特征表示有多强。下图描述了在res3处的侧监督的top-1精度结果。显然,SCNet-50的结果比ResNet-50的结果好得多。这一现象间接地表明,与普通卷积相比,具有所提出的自校准卷积的网络可以生成更丰富和更具鉴别性的特征表示。
在下图中显示了侧面输出的分数层的一些可视化结果。显然,即使在较低的网络深度,SCNet也能更精确地、完整地定位目标物体。在第4.3节中,我们将通过将这两种卷积应用于不同的视觉任务来对此进行更多的演示。
注意力比较:为了说明为什么提出的自校准卷积有助于分类网络,采用Grad-CAM作为注意力提取工具,以可视化ResNet-50、ResNeXt-50、SE-ResNet-50和SCNet-50产生的注意力,如下图所示。可以清楚地看到,SCNet-50产生的注意力可以更精确地定位目标物体,不会过多地扩展到背景区域。当目标对象较小时,与其他三种网络相比,我们的网络的注意力也更好地局限在语义区域。这表明自校准卷积有助于发现更多的完整目标物体,即使它们的尺寸很小。
**设计选择:**引入了下采样操作来实现自校准,这已被证明对改进CNN有用。校准卷积中的下采样率如何影响分类性能。在下表中,展示了自校准卷积中使用的不同下采样率的性能。可以看出,当不进行下采样操作时(r = 1),结果已经比原始ResNet-50好很多(77.38% vs . 76.40%)。随着下采样率的增加,可以获得更好的性能。特别地,当下采样率设置为4时,我们的top-1准确率为77.81%。注意,我们没有使用更大的下采样率作为分辨率。最后的残差块已经很小了(例如7 × 7)。此外,将低分辨率(F2之后)的特征图作为残差,也有助于提高性能。丢弃额外的身份连接会导致性能下降到77.48%。
**平均池化与最大池化:**除了上面的设计选择之外,还研究了不同池化类型对性能的影响。在实验中,尝试将自校准卷积中的所有平均池化运算符替换为最大池运算符,并查看性能差异。在保持所有其他配置不变的情况下,如上表所示,使用最大池化操作符会导致top-1精度的性能下降约0.3%(77.81对77.53)。这可能是因为,与最大池化不同,平均池化在整个池化窗口内的位置之间建立连接,这可以更好地捕获本地上下文信息。
Comparisons with Attention-Based Approaches: