关注通道关系,并提出了一种新的架构单元,我们称之为 "压缩-激发"(SE)块,目的是通过明确建模卷积特征通道之间的相互依存关系,提高网络生成的表征质量。为此,提出了一种允许网络执行特征重新校准的机制,通过这种机制,网络可以学会使用全局信息来有选择地强调有信息量的特征,并抑制不那么有用的特征。(SENet网络的创新点在于关注 channel 之间的关系,希望模型可以自动学习到不同 channel 特征的重要程度。)
挤压激励区块是一个计算单元,可以建立在将输入 X∈映射到特征映射 U∈ 的变换 Ftr 上。在接下来的符号中,我们将 Ftr 视为卷积算子,并使用 V = [v1, v2, ... , vC ] 表示学习到的滤波器核集,其中 vC 指的是第 C 个滤波器的参数。然后,我们可以将输出写成 U = [u1, u2, ... , uC ],其中
∗ 表示卷积, ,,。是一个二维空间核,代表 Vc 的单通道,作用于 X 的相应通道。
将全局空间信息压缩到通道描述符中。这是通过使用全局平均池化来生成通道统计来实现的。
将H*W大小的特征图压缩成1*1大小
统计量Zc是由U通过其空间维度H × W收缩生成的,Zc表示第C个统计量,Uc表示第C通道的特征图。
为了利用挤压操作中汇总的信息,我们在挤压操作之后进行了第二次操作,目的是充分捕捉渠道方面的依赖关系。作用是通过Zc学习每个通道的权重。
为了实现这一目标,函数必须满足两个标准:
首先,它必须具有灵活性(必须能够学习通道之间的非线性互动),保证学习到的权重值比较具有价值;
其次,它必须学习一种非相互排斥的关系,确保允许强调多个通道(而不是强制执行单次激活)。为了满足这些标准,我们选择采用一种简单的门控机制,并采用曲线激活方式:
指 ReLU函数,指sigmoid函数,W1∈ ,W2∈ 是两个全连接层的权值矩阵。r是维度衰减因子,论文中是16,C/r是中间层的隐层节点数。
返回到转换输出 U 的通道维度的增维层:
是 某个特征通道的Feature map。 是门控单元S(向量)中的一个标量值。
左图为SE模块嵌入到Inception中的示例,方框旁的维度信息代表该层的输出。只需将转换 Ftr 视为整个 Inception 模块(见Fig.2),并对架构中的每个此类模块做出这一改变,就能得到一个 SE-Inception 网络。SE 模块也可以直接用于残差网络(Fig.3 描述了 SE-ResNet 模块的模式)。在这里,SE 模块变换 Ftr 被视为残差模块的非同一性分支。挤压(Squeeze)和激励(Excitation)都是在与特征分支相加之前起作用的。
在使用了SE模块后,计算量会略有增加,精确度会提高.(SE的优势不局限于ImageNet数据集)
由拟议的 SE 模块引入的额外参数。这些附加参数完全来自门控机制的两个 FC 层,因此只占网络总容量的一小部分。这些 FC 层的权重参数引入的总数量为其中 r 为降维系数,S表示 stage数量,Cs 为第 s 个 stage的通道数,Ns 为第 s 个 stage的重复 block量。
SE 块可以进行图像分类,也能改进场景分类,SE 区块具有通用性,在广泛的架构、任务和数据集上都能实现诱导改进。
缩减率r 是一个超参数,允许我们改变网络中 SE 区块的容量和计算成本。性能对一系列缩减率都很稳定。复杂度的增加并不会单调地提高性能,而较小的比率则会显著增加模型的参数大小。
使用全局平均集合而不是全局最大集合作为压缩运算符的意义(因为这 种方法效果很好,所以我们没有考虑更复杂的替代方法)。虽然最大池化和平均池化都很有效,但平均池化的性能略胜一筹,因此有理由选择它作为挤压操作的基础。
对激发机制的非线性选择进行评估。考虑了另外两种选择:ReLU 和 tanh,并尝试用这两种非线性替代 sigmoid。用 tanh 代替 sigmoid 会略微降低性能,而使用 ReLU 则会大幅降低性能,实际上会导致 SE-ResNet-50 的性能低于 ResNet-50 基线。这表明,要使 SE 块有效,必须仔细构建激励算子。
在架构的每个阶段引入 SE 块都能带来性能优势。此外,不同阶段的 SE 区块所带来的收益是互补的,它们可以有效地结合在一起,进一步提高网络性能。
评估将 SE 区块整合到现有架构中时 SE 区块位置的影响。该实验表明,只要在分支聚合之前应用 SE 单元,SE 单元所产生的性能改进对其位置相当稳健。
SENets 在多个数据集和任务中都取得了最先进的性能。此外,SE 块还揭示了以前的架构无法充分模拟信道特征依赖性的问题。最后,SE 块产生的特征重要性值可能会用于其他任务,如模型压缩的网络剪枝。