摘要
卷积神经网络建立在卷积操作的基础上,它通过在局部感受野中将空间和通道信息融合在一起来提取信息特征。为了提高网络的表示能力,最近的几种方法已经显示出增强空间编码的好处。在这项工作中,我们专注于通道关系并提出了一个新的架构单元,我们称之为“Squeezeand-Excitation”(SE)块,它通过显式建模通道之间的相互依赖关系来自适应地重新校准通道特征响应。我们证明,通过将这些块堆叠在一起,我们可以构建 SENet 架构,该架构在具有挑战性的数据集上泛化得非常好。至关重要的是,我们发现 SE 块以最小的额外计算成本为现有的最先进的深度架构带来了显着的性能改进。 SENets 为我们的 ILSVRC 2017 分类提交奠定了基础,该分类获得了第一名,并将 top-5 错误显着降低至 2.251%,相对于 2016 年的获胜条目实现了 ∼25% 的相对改进。代码和模型可在 https:// github.com/hujie-frank/SENet。
1.引言
卷积神经网络 (CNN) 已被证明是处理各种视觉任务的有效模型 [21、27、33、45]。对于每个卷积层,学习一组滤波器来表示沿输入通道的局部空间连接模式。换句话说,通过在局部感受野内将空间和通道信息融合在一起,卷积滤波器有望成为信息组合。通过堆叠一系列与非线性和下采样交错的卷积层,CNN 能够捕获具有全局感受野的分层模式作为强大的图像描述。最近的工作表明,通过显式嵌入学习机制可以提高网络的性能帮助捕获空间相关性,而无需额外的监督。Inception 架构 [16, 43] 推广了一种这样的方法,这表明网络可以通过在其模块中嵌入多尺度过程来实现具有竞争力的准确性。最近的工作试图更好地模拟空间依赖性 [1, 31] 并结合空间注意力 [19]。
在本文中,我们通过引入一个新的架构单元,我们将其称为“挤压和激励”(SE)块,来研究架构设计的不同方面 - 通道关系。我们的目标是通过显式建模其卷积特征的通道之间的相互依赖关系来提高网络的表示能力。为了实现这一点,我们提出了一种允许网络执行特征重新校准的机制,通过它可以学习使用全局信息来选择性地强调信息特征并抑制不太有用的特征。
SE构建块的基本结构如图1所示。对于任何给定的变换 Ftr : X → U, X ∈ RH′×W ′×C′, U ∈ RH×W ×C,(例如一个卷积或一组卷积),我们可以构造一个对应的 SE 块来执行特征重新校准如下。特征 U 首先通过挤压操作,该操作聚合跨空间维度 H × W 的特征图以生成通道描述符。该描述符嵌入了通道特征响应的全局分布,使来自网络全局感受野的信息能够被其较低层利用。随后是激发操作,其中通过基于通道依赖性的自门控机制为每个通道学习的特定于样本的激活控制每个通道的激发。然后对特征图 U 进行重新加权以生成 SE 块的输出,然后可以将其直接馈送到后续层。
SE 网络可以通过简单地堆叠 SE 构建块的集合来生成。 SE 块也可以用作架构中任何深度的原始块的直接替代品。然而,虽然构建块的模板是通用的,但正如我们在第 6.4 节中展示的那样,它在不同深度所扮演的角色适应网络的需要。在早期层,它以与类别无关的方式学会激发信息特征,提高共享的较低级别表示的质量。在后面的层中,SE 块变得越来越专业化,并以高度特定于类的方式响应不同的输入。因此,SE块进行的特征重新校准的好处可以在整个网络中累积。
新 CNN 架构的开发是一项具有挑战性的工程任务,通常涉及选择许多新的超参数和层配置。相比之下,上面概述的 SE 块的设计很简单,可以直接与现有的最先进架构一起使用,其模块可以通过直接替换其 SE 对应物来加强。
此外,如第4节所示,SE 块在计算上是轻量级的,并且只会略微增加模型复杂性和计算负担。为了支持这些主张,我们开发了几个 SENet,并对 ImageNet 2012 数据集 [34] 进行了广泛的评估。为了证明它们的普遍适用性,我们还展示了 ImageNet 之外的结果,表明所提出的方法不限于特定的数据集或任务。
使用 SENets,我们在 ILSVRC 2017 分类竞赛中获得了第一名。我们表现最好的模型集成在测试集上实现了 2.251% 的 top-5 错误。与上一年的获胜者参赛作品(前 5 名错误率为 2.991%)相比,这代表了 25% 的相对改进。
2.相关工作
深层架构。 VGGNets [39] 和 Inception 模型 [43] 展示了增加深度的好处。批量归一化 (BN) [16] 通过插入单元来调节层输入来改进梯度传播,从而稳定学习过程。 ResNets [10, 11] 展示了通过使用基于身份的跳跃连接来学习更深层网络的有效性。高速公路网络 [40] 采用门控机制来调节捷径连接。网络层 [5, 14] 之间连接的重新表述已被证明可以进一步改善深度网络的学习和表示特性。
另一种研究方向已经探索了调整网络模块化组件的功能形式的方法。分组卷积可用于增加基数(变换集的大小)。多分支卷积可以解释为对这一概念的概括,从而能够更灵活地组合运算符 [16、42、43、44]。最近,以自动方式学习的作文 [26, 54, 55] 显示出具有竞争力的性能。跨通道相关性通常被映射为新的特征组合,独立于空间结构 [6, 20] 或通过使用具有 1×1 卷积的标准卷积滤波器 [24] 联合。这项工作的大部分集中在降低模型和计算复杂性的目标上,反映了一个假设,即通道关系可以表述为具有局部感受野的与实例无关的函数的组合。相比之下,我们声称为该单元提供一种使用全局信息显式建模通道之间动态、非线性依赖关系的机制可以简化学习过程,并显着增强网络的表示能力。
Attention和门控机制。广义上,注意力可以被视为一种工具,可以将可用处理资源的分配偏向输入信号中信息量最大的组件[17、18、22、29、32]。从图像中的定位和理解 [3, 19] 到基于序列的模型 [2, 28],这种机制的好处已经在一系列任务中得到体现。它通常结合门控函数(例如 softmax 或 sigmoid)和顺序技术 [12, 41] 来实现。最近的工作表明它适用于图像字幕 [4, 48] 和唇读 [7] 等任务。在这些应用程序中,它通常用于表示更高级别抽象的一层或多层之上,以适应模态。王等人。 [46] 使用沙漏模块 [31] 引入了强大的树干和掩码注意机制。这个高容量单元被插入到中间阶段之间的深度残差网络中。相比之下,我们提出的 SE 块是一种轻量级的门控机制,专门用于以计算有效的方式对通道关系进行建模,旨在增强整个网络中基本模块的表示能力。
3.SE块
Squeeze-and-Excitation 模块是一个计算单元,可以为任何给定的变换构建,Ftr : X → U, X ∈ RH′×W ′×C′, U ∈ RH×W ×C。简单来说,在下面的符号中,我们将 Ftr 视为卷积算子。令 V = [v1, v2, . . . , vC] 表示学习的滤波器内核集,其中 vc 指的是第 c 个过滤器的参数。然后我们可以将 Ftr 的输出写为 U = [u1, u2, . . . , uC], 其中
这里 * 表示卷积,vc = [vc1, vc2, . . . , vcC'] 和 X = [x1, x2, . . . , xC'](为了简化符号,省略了偏置项),而 vcs 是一个 2D 空间核,因此表示作用于 X 的相应通道的 vc 的单个通道。由于输出是通过所有通道的总和产生的,通道依赖关系隐含在 vc 中,但这些依赖关系与过滤器捕获的空间相关性纠缠在一起。我们的目标是确保网络能够提高其对信息特征的敏感性,以便它们可以被后续转换利用,并抑制不太有用的特征。我们建议通过显式建模通道相互依赖性来实现这一点,以便在将滤波器响应送入下一个转换之前分两步重新校准滤波器响应,挤压和激发。 SE 构建块的示意图如图 1 所示。
3.1 Squeeze:全局信息嵌入
为了解决利用通道依赖性的问题,我们首先考虑输出特征中每个通道的信号。每个学习到的过滤器都使用局部感受野进行操作,因此转换输出 U 的每个单元都无法利用该区域之外的上下文信息。这是一个在接受域较小的网络较低层中变得更加严重的问题。
为了缓解这个问题,我们建议将全局空间信息压缩到通道描述符中。这是通过使用全局平均池来生成通道统计信息来实现的。形式上,统计量 z ∈ RC 是通过空间维度 H × W 收缩 U 生成的,其中 z 的第 c 个元素由下式计算:
讨论。转换输出 U 可以解释为局部描述符的集合,其统计信息可表达整个图像。利用这些信息在特征工程工作中很普遍[35,38,49]。我们选择最简单的全局平均池化,并指出这里也可以采用更复杂的聚合策略。
3.2 Excitation:自适应重新校准
为了利用在挤压操作中聚合的信息,我们随后进行了第二个操作,旨在完全捕获通道相关性。为了实现这个目标,函数必须满足两个标准:首先,它必须是灵活的(特别是,它必须能够学习通道之间的非线性交互),其次,它必须学习非互斥关系,因为我们将喜欢确保允许强调多个通道而不是一键激活。为了满足这些标准,我们选择使用带有 sigmoid 激活的简单门控机制:
其中 δ 指的是 ReLU [30] 函数,W1 ∈ RC/r×C 和 W2 ∈ RC×C/r。为了限制模型复杂性和帮助泛化,我们通过在非线性周围形成具有两个全连接(FC)层的瓶颈来参数化门控机制,即具有参数 W1 和缩减比 r 的降维层(讨论了此参数选择在第 6.4 节中),一个 ReLU,然后是一个带有参数 W2 的维数增加层。块的最终输出是通过使用激活重新缩放变换输出 U 获得的:
其中 Xe = [xe1, xe2, . . . , xeC] 和 Fscale(uc, sc) 是指特征图 uc ∈ RH×W 和标量 sc 之间的通道相乘。
讨论。激活充当适应输入特定描述符 z 的通道权重。在这方面,SE 块本质上引入了以输入为条件的动态,有助于提高特征可辨别性。
3.3 示例:SE-Inception 和 SE-ResNet
4. 模型和计算复杂度
为了使提议的 SE 块在实践中可行,它必须在模型复杂性和性能之间提供有效的权衡,这对于可扩展性很重要。我们在所有实验中将减速比 r 设置为 16,除非另有说明(更多讨论见第 6.4 节)。为了说明模块的成本,我们以 ResNet-50 和 SE-ResNet-50 的比较为例,其中 SE-ResNet-50 的准确率优于 ResNet-50,接近更深的 ResNet101 网络(如表 2 所示)。对于 224 × 224 像素的输入图像,ResNet-50 在单次前向传递中需要 ∼3.86 GFLOPs。每个 SE 块在挤压阶段使用全局平均池化操作,在激发阶段使用两个小的全连接层,然后使用廉价的通道缩放操作。总的来说,SE-ResNet-50 需要 ∼3.87 GFLOPs,相对于原始 ResNet-50 增加了 0.26%。
在实践中,使用 256 张图像的小批量训练,通过 ResNet-50 向前和向后单次传递需要 190 毫秒,而 SE-ResNet-50 需要 209 毫秒(这两个时间都在具有 8 个 NVIDIA Titan X GPU 的服务器上执行)。我们认为这代表了合理的开销,特别是因为全局池和小型内积运算在现有 GPU 库中的优化程度较低。此外,由于其对嵌入式设备应用的重要性,我们还对每个模型的 CPU 推理时间进行了基准测试:对于 224 × 224 像素的输入图像,ResNet-50 需要 164 ms,而 SE-ResNet-50 需要 167 ms。 SE 块所需的少量额外计算开销通过其对模型性能的贡献来证明是合理的。
接下来,我们考虑由提议的块引入的附加参数。它们都包含在门控机制的两个 FC 层中,它们仅占网络总容量的一小部分。更准确地说,引入的附加参数的数量由下式给出:
其中 r 表示缩减率,S 表示阶段数(其中每个阶段表示在公共空间维度的特征图上操作的块的集合),Cs 表示输出通道的维度,Ns 表示重复块数对于阶段 s。SEResNet-50 在 ResNet-50 所需的 2500 万个参数之外引入了 250 万个额外的参数,相当于增加了 10%。这些参数中的大部分来自网络的最后阶段,其中激发是在最大的通道维度上执行的。然而,我们发现 SE 块的相对昂贵的最后阶段可以以性能的边际成本(<0.1% 在 ImageNet 上的 top-1 误差)被移除,以将相对参数增加减少到 ~4%,这可能在某些情况下证明是有用的其中参数使用是一个关键考虑因素(参见第 6.4 节中的进一步讨论)。
5. 实施
每个普通网络及其对应的 SE 对应物都使用相同的优化方案进行训练。在 ImageNet 训练期间,我们遵循标准做法并使用随机大小裁剪 [43] 到 224 × 224 像素(Inception-ResNet-v2 [42] 和 SE-Inception-ResNet-v2 为 299 × 299)和随机水平翻转。输入图像通过平均通道减法进行归一化。此外,我们采用[36]中描述的数据平衡策略进行小批量采样。这些网络在我们的分布式学习系统“ROCS”上进行训练,该系统旨在处理大型网络的高效并行训练。使用动量为 0.9 和小批量大小为 1024 的同步 SGD 执行优化。初始学习率设置为 0.6,每 30 个时期减少 10 倍。所有的模型使用[9]中描述的权重初始化策略,从头开始训练100个epoch。
在测试时,我们在验证集上应用中心裁剪评估,其中从首先将短边调整为 256 的每个图像裁剪 224×224 像素(对于 Inception-,对于短边首先调整为 352 的每个图像,裁剪 299×299 像素) ResNet-v2 和 SE-Inception-ResNet-v2)。
6.实验
7.结论
在本文中,我们提出了 SE 块,这是一种新颖的架构单元,旨在通过使其能够执行动态通道特征重新校准来提高网络的表示能力。大量实验证明了 SENet 的有效性,它在多个数据集上实现了最先进的性能。此外,它们提供了一些关于先前架构在建模通道特征依赖关系方面的局限性的一些见解,我们希望这可能对需要强判别特征的其他任务有用。最后,由 SE 块引起的特征重要性可能有助于相关领域,例如网络剪枝以进行压缩。