Squeeze-and-Excitation Networks(SENet)学习笔记

Squeeze-and-Excitation Networks

论文地址:http://openaccess.thecvf.com/content_cvpr_2018/papers/Hu_Squeeze-and-Excitation_Networks_CVPR_2018_paper.pdf

项目地址:https://github.com/hujie-frank/SENet

参考链接:https://blog.csdn.net/qq_36926037/article/details/115569885

出发点:

在深度学习领域,设计高效且具有强大泛化能力的卷积神经网络是一个重要和挑战性的研究任务。虽然很多先进的神经网络结构被提出并取得了很棒的成果,但是很多结构在分类的同时也产生了很多无用的特征通道,这些通道中的信息对分类结果没有贡献。因此,如何在不增加计算量的情况下,增强网络对特征之间相关性的建模能力,进一步优化模型性能,这是SENet的研究动机。

使用SENet模型,可以将具有少量额外计算的模型应用于不同的视觉任务,以改进精度和泛化能力等性能。因此,在SENet中引入Squeeze-and-Excitation Block的目的是引入了一种注意机制在神经网络中,使神经网络能够动态地增强有用的特征通道的响应,从而明确和准确地优化网络的性能。

贡献:

SENet的主要贡献在于提出了一种新的网络结构,可以在不增加计算量的情况下显著提高网络的性能。SENet主要通过引入了一种新的block——Squeeze-and-Excitation block来实现这一点。

Squeeze-and-Excitation block主要包含两个步骤:

  1. Squeeze:通过全局平均池化,将每个通道的特征图缩减成一个数值,表示该通道的重要程度。
  2. Excitation:引入一个全连接层,将上一步中得到的每个通道的重要程度作为输入,经过一些非线性变换得到一个权重向量,表示每个通道的重要性权重。然后将该权重向量作用于原始图像的每个通道,得到加权的特征图。

SENet的实验结果表明,SENet在多个图像分类数据集上都取得了优秀的性能,比如在ImageNet上取得了Top-1错误率为2.25%的最佳结果。同时,SENet的计算量与现有的网络相比基本没有增加,因此具有很好的实际应用价值。

创新点:

SENet论文的创新点主要有以下三点:

  1. 引入注意力机制:SENet首次提出在深度神经网络中引入注意力机制,以自适应地调整每个通道的权重,在学习更具有区分性的特征方面比传统神经网络更加强大。
  2. 全局平均池化:SENet采用全局平均池化来提取每个通道的全局信息,并使用该信息制定权重,从而使注意力模块更具有灵活性。
  3. 小的全连接模型:SENet使用小的全连接模型来学习每个通道的重要性,这一过程添加比较小的额外复杂度和参数,使得实现更加有效和经济。

综上所述,SENet论文的创新点在于提出了一种引人注目的基于注意力机制的模型框架,使得深度神经网络能够更好地对不同通道的特征进行学习,从而极大地提高了分类和检测任务的性能。

基于CNN对SENet的理解:

对于CNN网络来说,其核心计算是卷积算子,其通过卷积核从输入特征图学习到新特征图。从本质上讲,卷积是对一个局部区域进行特征融合,这包括空间上(H和W维度)以及通道间(C维度)的特征融合。

image-20230417155022371

我们可以发现卷积实际上是对局部区域进行的特征融合。 这也导致了普通卷积神经网络的感受野不大,当然你也可以设计出更多的通道特征来增加这个,但是这样做导致了计算量大大的增加。因此为了空间上融合更多特征融合,或者是提取多尺度空间信息。也提出了许多不同的方法如Inception网络的多分支结构。对于channel维度的特征融合,卷积操作基本上默认对输入特征图的所有channel进行融合。而SENet网络的创新点在于关注channel之间的关系,希望模型可以自动学习到不同channel特征的重要程度。为此,SENet提出了Squeeze-and-Excitation (SE)模块,如下图所示:

image-20230417155138497

在这里SENet实际上是对整个输入feature进行操作,感受野可以覆盖到整个输入feature上,这对于网络来说是一个有益的语义信息补充。

Abstract

卷积操作:
  卷积操作是卷积神经网络(CNNs)的核心构造块,它通过融合每一层局部接受域(感受野)内的空间和信道信息使网络构建信息特征。大量先前的研究已经调查了这种关系的空间成分,试图通过在其特征层次中提高空间编码的质量来提升CNN的表征能力。

本文SE模块:
  将重点放在通道关系上提出一个新的架构单元——“Squeeze-and-Excitation”(SE)块。通过显式地建模通道之间的相互依赖,自适应地重新校准信道特征响应。

实验结果:
  (1)SE模块可以堆叠在一起,形成SENet架构,在不同的数据集上非常有效地泛化。
  (2)SE模块以略微增加的计算成本为现有最先进的CNN带来了显著的性能改进。SENet为2017年ILSVRC分类第一名,并将前5名误差降低到2.251%,比2016年的获奖作品相对提高了25%。

1、Introduction

卷积神经网络:

已被证明是处理广泛的视觉任务的有用模型。

在网络的每个卷积层,一系列的卷积核表示沿输入通道的邻域空间连通性模式——在局部接受域(感受野)内融合空间和通道信息。通过交错一系列带有非线性激活函数和下采样操作的卷积层,CNN能够产生捕获层次模式的图像表示,并获得全局的理论接受域(感受野)。

计算机视觉的研究中心主题:

寻找更强大的特征表示,这种特征表示只捕捉给定任务中最显著的图像属性,从而提高性能。CNN作为一种广泛应用于视觉任务的模型,新神经网络架构设计的发展代表计算机视觉研究的一个关键前沿。

最近研究:

最近研究表明,通过将学习机制整合到有助于捕捉特征间空间相关性的网络中,CNN产生的表征可以得到加强。例:Inception架构将多尺度处理合并到网络模块以提升性能。进一步工作,寻求更好的模型空间依赖,并将空间注意力融入网络结构。

本文:

(1)研究了网络设计的一个不同方面——通道之间的关系。

(2)设计一种新的架构单元——“Squeeze-and-Excitation” (SE)块,其目标是通过显式建模卷积特征通道之间的相互依赖来提高网络产生的表征的质量。

(3)为此本文提出了一种机制,允许网络进行特征重新校准,通过该机制网络可以学习使用全局信息,选择性地强调信息特征和抑制无用的特征。

SE构建块:

image-20230417155138497

对于任意给定变换 F t r F_{tr} Ftr(例,卷积),将输入映射到特征图U( U ∈ R H × W × C U∈R^{H×W×C} URH×W×C),我们构造一个相应的SE模块来进行特征重新校准:

  1. 特征U首先通过“squeeze”操作,通过在空间维度(H ×W)聚合特征图生成通道描述符,该描述符的功能是产生一个通道特征相应的全局分布的嵌入,允许所有层使用来自网络的全局接受域(感受野)的信息。
  2. 聚合之后是“ excitation”操作,它采取一个简单的“self-gating”机制的形式,以嵌入作为输入,并产生每个通道调制权值的集合,这些权值被应用到特征图U上,以生成SE模块的输出,该输出可以直接输入到网络的后续层。

SE模块特点:

  1. 简单地堆叠一组SE块就可以构建一个SE网络(SENet)。
  2. SE块可用作网络架构中一定深度的原始块的替代品(6.4节)。
  3. SE构建块的模板是通用的,但SE模块在整个网络的不同深度所扮演的角色不同,在较早的层中,它以与类无关的方式提供信息特性,增强共享的低级表征。在后续层中,SE块变得越来越专门化,并以高度类特定的方式响应不同的输入(7.2节)。因此,由SE模块执行的特征重新校准的好处可以通过网络累积。新的CNN架构的设计和开发是一项困难的工程任务,通常需要选择许多新的超参数和层配置。
  4. SE模块的结构很简单:可以直接在现有的最先进的架构中使用,通过将组件替换为SE模块组件有效地提高性能。
  5. SE块在计算上是轻量级的:只稍微增加模型的复杂性和计算负担。

实验:

开发设计了几个SENet,并在ImageNet数据集、ImageNet之外的数据集上的评估结果,表明本文方法的好处并不局限于特定的数据集或任务。

利用SENets,在ILSVRC 2017分类竞赛中获得了第一名。最佳模型集成在测试集上达到了2.251%的top-5误差,与前年的优胜者相比,大约有25%的相对改进(top-5 error为2.991%)。

2、Related Works

Deep architectures:

(1)VGGNet和Inception模型表明,增加网络深度可以显著提高其学习的表征质量。通过调节输入到每一层的分布,批处理归一化(BN)增加了深度网络学习过程的稳定性、产生更平滑的优化表面。

(2)ResNets:在上述工作的基础上证明,通过使用identity-based的跳跃连接 ,可以学习相当深和强大的网络。

(3)Highway networks:引入了一种‘gating’机制,以调节shortcut 连接的信息流动。

(4)上述工作之后,一些网络对深度网络的学习和表征特性进行了改进。

网络中计算元素的函数形式:

另一个密切相关的研究关注于改进网络中计算元素的函数形式:

(1)分组卷积:已被证明是一种流行的增加学习转换基数的方法。

(2)多分支卷积:可以实现更灵活的算子组合,可以看作是分组操作符的自然扩展。

在之前的工作中,跨通道相关性通常映射为特征的新组合,要么独立于空间结构,要么通过使用具有1×1卷积的标准卷积。这方面的研究主要集中在降低模型和计算复杂度上,反映了一个假设,即通道关系可以被表述为具有局部接受域(感受野)的实例不可知函数的组合。相比之下我们认为,为单元提供一种机制,使用全局信息对通道之间的动态、非线性依赖关系进行显式建模,可以简化学习过程,并显著增强网络的表示能力。

架构搜索算法:

除了上述工作,还有一个旨在放弃手工架构设计,寻求自动学习网络架构的丰富的研究历史。这一领域的大部分早期工作是在"neuro-evolution(神经进化)"群落中进行的,使用进化方法建立跨网络拓扑搜索的方法。虽然这些方法通常需要很大的计算代价,但进化搜索已经取得了显著的成功,包括为序列模型找到好的记忆单元、为大规模图像分类学习复杂的体系结构。为减少这些方法的计算负担,基于Lamarckian继承和可微架构搜索提出了有效的替代方法。

通过将架构搜索制定为超参数优化、随机搜索和其他更复杂的基于模型的优化技术也可以用来解决这个问题。拓扑选择(一个通过所有可能设计的路径)和直接架构预测已被提议为其他可行的架构搜索工具。 通过强化学习的技术已经获得了特别强劲的结果。SE模块可以作为这些搜索算法的原子构建块,并且在并发工作中被证明是非常有效的。

注意力和“gating ”(闸门)机制:

注意力可以被解释为一种将可用的计算资源分配偏向于信号中信息含量最高的部分的方法。注意机制已经在许多任务中展示了它们的效用,包括序列学习 、图像定位和理解 、图像字幕和唇读,在这些应用程序中,它可以被合并为在一个或多个层之后的操作符,代表更高级的抽象,以适应模式之间的差异。一些工作对空间和通道注意力的结合使用提供了有趣的研究。
  Wang等人在深度残差网络的中间阶段插入沙漏模块,引入了一种强大的trunk-and-mask注意机制;本文SE模块包含一个轻量级的门控机制,该机制通过以计算效率高的方式建模通道关系来增强网络的表示能力。

3、 Squeeze-and-Excitation Blocks

“Squeeze-and-Excitation”模块是一个计算单元,它可以建立在变换 F t r F_{tr} Ftr上,将输入 X ∈ R H ′ × W ′ × C ′ X∈R^{H'×W'×C'} XRH×W×C映射为特征图 U ∈ R H × W × C U∈R^{H×W×C} URH×W×C

F t r F_{tr} Ftr为卷积算子;$ V = [v_1,v_2,…v_c] 表示学习到的卷积核集合,其中 表示学习到的卷积核集合,其中 表示学习到的卷积核集合,其中v_c$表示第 c c c 个卷积核的参数; 输出为 U = [ u 1 , u 2 , … u c ] U = [u_1,u_2,…u_c] U=[u1,u2uc]

image-20230417163442524

其中∗表示卷积, 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\in \mathbb{R}^{H\times W } , , v_c^s$ 表示 2 D 2D 2D空间卷积核,代表 v c v_c vc的单个通道作用于x的对应通道。为了简化表示,省略偏置项。由于输出是通过所有通道求和产生的,通道依赖关系隐式嵌入到 v c v_c vc中,但与卷积核捕获的局部空间相关性纠缠在一起。

通过卷积建模的通道关系是固有的、隐式的和局部的(除了最顶层的),本文期望通过显式建模通道相互依赖来增强卷积特征的学习,使网络能够提高其对可被后续的转换 利用的信息特征的敏感性。因此我们希望为它提供获取全局信息的途径,在被送入下一个变换之前,通过“squeeze”和“excitation”两步重新校准卷积核的响应。

3.1、Squeeze: Global Information Embedding

通道依赖问题:

为了解决利用通道依赖的问题,首先考虑输出特征中每个通道的信号。每一个学习到的卷积核,有一个局部接受域(感受野),因此转换输出 U U U的每个单元无法利用该区域(感受野)以外的上下文信息。

方法:

为了缓解上述问题,建议将全局空间信息压缩( squeeze)到一个通道描述符——使用全局平均池化来生成通道(channel-wise)统计量。在形式上,统计量 z ∈ R C z∈R^C zRC是由U通过其空间维数 H × W H\times W H×W收缩产生的, z z z 的第 c c c 项元素由以下方式计算:

image-20230417164522548

讨论:
  转换 U U U的输出可以被解释为局部描述符的集合,这些描述符的统计量表示整个图像。利用这些信息在以前的特征工程工作中很普遍,我们使用最简单的聚合技术——全局平均池化(注意:也可以使用更复杂的策略)

3.2、Excitation: Adaptive Recalibration

目的:

为了利用在"squeeze"操作中聚合的信息,接着进行第二个操作(Excitation操作),来完全捕获通道(channel-wise)依赖关系。

方法:

为实现上述目标,函数必须符合两个标准:

  1. 灵活:特别是它必须能够学习通道之间的非线性交互
  2. 必须学习一种非互斥关系:因为我们希望确保允许强调多个通道(而不是强制一个one-hot激活)。

为了满足这些标准,我们选择使用一个简单的门控(gating)机制和sigmoid激活函数:

image-20230417165939172

其中δ为ReLU函数, W 1 ∈ R C r × C W_1∈R^{\frac{C}{r}\times C} W1RrC×C W 2 ∈ R C × C r W_2∈R^{C\times\frac{C}{r}} W2RC×rC

为了限制模型的复杂性、有助于推广,在非线性周围形成包含两个全连接层(FC)的瓶颈(降维比为r)来参数化门控(gating)机制,一个ReLU、一个维度增加的层用于返回到变换输出U的通道维度。块的最终输出通过激活s重新缩放U得到:

image-20230417170225108

其中 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} ucRH×W的通道(channel-wise)乘法。

讨论:

这里的激活作为通道权重来适应输入特征描述符z,因此SE块内在地引入了与输入有关的动态,有助于提高特征的可区分性。可以将其视为通道上的自注意力函数,这些通道的关系不限于卷积滤波器响应的局部接收场。(感受野)

3.3、Exemplars: SE-Inception and SE-ResNet

通过在每次卷积后的非线性后插入,SE块可以集成到VGGNe等标准架构中。此外SE块的灵活性意味着它可以直接应用于标准卷积之外的转换。为了说明这一点,我们通过将SE块合并到几个更复杂架构的示例中来开发SENets,下面将对此进行描述:

(1) Inception 网络的SE块的构建: 简单地将转换 F t r F_{tr} Ftr作为一个完整的Inception模块(见图2),通过对架构中的每个这样的模块进行更改,获得了一个SE-Inception网络。

image-20230417170837390

(2)SE模块可以直接与Res网络一起使用:(图3 SE- resnet模块)。SE块变换 F t r F_{tr} Ftr被认为是残差模块的非恒等分支。挤压和激励都是在同分支相加之前起作用的。

image-20230417170941262

(3)将SE块与ResNeXt、Inception-ResNet、MobileNet和ShuffleNet整合的进一步变体可以通过类似的方案构建。

image-20230417171049598

SE块灵活性的一个结果是,有几种可行的方法将其集成到各种体系结构。

4、Model and Computational Complexity

为了使提议的SE块设计具有实际用途,它必须在改进性能和增加模型复杂性之间提供良好的平衡。

(1)计算复杂度:

为了说明与模块相关的计算负担,以ResNet-50和SE-ResNet-50之间的比较为例。对于224 × 224像素的输入图像,Renet -50在单次向前传递中需要~ 3.86 GFLOPs。每个SE块在squeeze阶段使用一个全局平均池化操作,在Excitation阶段使用两个小的FC层,随后是一个廉价的通道缩放操作。 总的来说,当将衰减率r设置为16时,SE-ResNet-50需要约3.87 GFLOPs,相对原始ResNet-50增加了0.26%,除了这一点额外的计算负担SE-ResNet-50的精度超过了ResNet-50,接近更深层的ResNet-101网络(7.58GFLOPs),(表2)。

image-20230420105639859

在实际操作中,通过ResNet-50一次来回传递需要190 ms,而SE-ResNet-50只需要209 ms(在带有8个NVIDIA Titan X gpu的服务器上执行)。对每个模型的CPU推断时间进行基准测试,ResNet-50需要164毫秒,而SE-ResNet-50需要167毫秒。由于SE块对模型性能的贡献,它所产生的少量额外计算成本是合理的。

(2)参数量:

接下来考虑SE块引入的附加参数,额外的参数仅仅来自门控(gating)机制的两个FC层,因此构成了整个网络容量的一小部分。 具体而言,各FC层权重参数引入的总个数为:

image-20230420103212073

r r r 表示减衰减率, S S S 是指阶段的数量(阶段是指一个共同的空间维度的特征图上操作的块的集合), C s C_s Cs表示输出通道的尺寸, N s N_s Ns代表阶段 s s s 中重复的块的数量(当在 F C FC FC层中使用偏置时,引入的参数和计算成本通常可以忽略不计)。

S E − R e s N e t − 50 SE-ResNet-50 SEResNet50 引入了超过250万个额外参数 R e s N e t − 50 ResNet-50 ResNet50所需要的参数约为2500万个,对应的增长约为10%。在实践中额外参数中的大部分来自于网络的最后阶段,在这一阶段 e x c i t a t i o n excitation excitation 操作是在最大数量的通道中执行。然而后续实验发现这种相对昂贵的最后阶段的SE块可以删除,性能代价很小。

5、Experiments

本节进行实验来研究在一系列任务、数据集和模型架构中SE块的有效性。

5.1、ImageNet Classification

**(1)数据集:**为了评估SE块的影响,首先在ImageNet 2012数据集上进行实验,该数据集包括来自1000个不同类的128万张训练图像和50K的验证图像。在训练集上训练网络,并在验证集上报告top-1和top-5错误。

**(2)训练设置:**每个基线网络结构及其SE对等体都用相同的优化方案进行训练;遵循标准做法,使用大小为224 × 224像素的比例和宽高比随机裁剪数据执行数据增强,并执行随机水平翻转;每个输入图像通过平均rgb通道减法进行归一化;所有模型都在分布式学习系统ROCS上进行训练,该系统旨在处理大型网络的高效并行训练;优化器使用具有动量0.9和1024小批量大小的SGD;初始学习率设置为0.6,每30个epoch降低10倍;使用权值初始化策略,从零开始训练模型100个epoch。缩减比r默认设置为16;

**(3)评估设置:**应用中心裁剪,使每幅图像裁剪224 × 224像素它的短边首先被调整为256(对于Inception-ResNet-v2和SE-Inception-ResNet-v2,每个图像的短边被调整为352)。

(4)网络深度:

比较SE-ResNet和不同深度的ResNet架构,如表2:

  1. **SE块在不同深度上一致地提高了性能,同时计算复杂度上有非常小的增加:**SE-ResNet-50获得6.62%的 single-crop top-5验证误差,比ResNet-50(7.48%)高0.86%,接近深度更大的ResNet-101 (6.52% top-5误差),而总计算量只有其一半(3.87 GFLOPs vs. 7.58 GFLOPs);这一模式在更大的深度上重复,其中与SE-ResNet-101(6.07%的top-5误差)不仅匹配,而且比更深的ResNet-152 (6.34% top-5误差)性能高0.27%。
  2. SE块本身增加了深度,但它们以一种极其高效的计算方式这样做,并且即使在扩展基本架构的深度达到收益递减的情况下也会产生良好的收益。
  3. 增益在一系列不同的网络深度上是一致的,这表明SE块所引起的改进可能是通过简单地增加基础架构的深度所获得的改进的补充。

(5)与当代架构的融合:

image-20230421085005185

1)**研究将SE模块与另外两种最先进的架构整合的效果:**incept - resnet -v2和ResNeXt,这两种架构都将额外的计算构建模块引入到基本网络中,构建了这些网络的SENet等价物SE-Inception-ResNet-v2 和 SE-ResNeXt(配置如表1),表2实验结果表明: **在两个体系结构中引入SE块带来显著性能改进。**其中,SE-ResNeXt-50的top-5误差为5.49%,优于直接对应的ResNeXt-50 (5.90% top-5误差)和更深层次的ResNeXt-101 (5.57% top-5误差),后者的参数总数和计算开销几乎是前者的两倍。SE对等物(4.79% top-5误差)比重新实施的Inception-ResNet-v2baseline基线(5.21% top-5误差)结果高出0.42%。
  2)**评估SE块在非残差网络上运行时的影响:通过使用VGG-16 和BN-Inception架构 进行实验 。**为了便于VGG-16的从头训练,我们在每次卷积后都添加批处理归一化层。对VGG-16和SE-VGG-16使用相同的训练方案。对比结果如表2: 与Res基线架构报告的结果类似,SE块在非Res架构设置上带来性能改进。
  3)SE块对模型优化的影响,图4描述基线架构和它们各自SE对等体运行的示例训练曲线。 SE块在整个优化过程中产生了稳定的改进,这种趋势在一系列被视为基线的网络架构中是相当一致的。

(6)移动设置:

image-20230421085146253

考虑两种典型的移动优化网络架构:MobileNet 和ShuffleNet 。 实验使用256的批量大小和稍微不那么激进的数据增强和正则化 ;使用带有动量(设置为0.9)的SGD在8个gpu上训练模型,初始学习率为0.1,当验证损失趋于稳定时,学习率降低10倍。整个训练过程需要400个epoch。实验结果如表3: SE块以极小的计算成本持续增加精度。

(7)额外数据集:

image-20230421085311017

  1. 目的:研究SE块的好处是否适用于ImageNet以外的数据集。

  2. 实验架构、数据集:用几种流行的基线架构和技术(ResNet-110 , ResNet-164 , WideResNet-16-8, Shake-Shake和Cutou)在CIFAR-10和CIFAR-100数据集 上进行实验,包括一个50k训练和10k测试的集合,32 × 32像素的RGB图像,分别标记为10和100类。

  3. 实验设置:将SE块集成到上述网络,每个基线和它的SENet对等物都用标准的数据增强策略进行训练;在训练过程中图像被随机水平翻转,每边用4个像素进行零填充,然后随机抽取32 × 32的crop;应用平均值和标准偏差;训练超参数设置(如小批量大小、初始学习率、权值衰减)与原始论文的建议一致。

    表4,每个基线及其SENet对等物在CIFAR-10上的性能,表5报告CIFAR-100上的性能:

    SENet优于基线架构,表明SE块的好处并不局限于ImageNet数据集。

5.2、Scene Classification

Places365-Challenge数据集:
  Places365-Challenge数据集上进行了场景分类实验,包含800万张训练图像和36500张验证图像,跨越365个类别。相对于分类,场景理解的任务提供了另一种评估模型的能力,以很好地概括和处理抽象,这是因为它通常要求模型处理更复杂的数据关联,并对更大级别的外观变化具有鲁棒性。

实验设计与结果:

image-20230421085542680

我们选择使用ResNet-152作为一个强基线来评估SE块的有效性。实验中模型从零开始训练。表6与之前工作比较的实验结果:
   SE-ResNet-152 (11.01% top-5误差)的验证误差低于ResNet-152 (11.61% top-5误差),表明SE块也可以改善场景分类,SENet超过了之前最先进的模型 Places-365-CNN(11.48%的 top-5错误)

5.3、Object Detection on COCO

评估COCO数据集目标检测任务上SE模块的泛化。

实验设置:

  1. 数据集:在之前的工作中使用minival策略,即在80k的训练集和35k的val子集的并集上训练模型,并在其余5k的val子集上评估。
  2. 权重(预训练模型):权重由在ImageNet数据集上训练的模型参数初始化。
  3. 检测架构:使用Faster R-CNN检测框架,并遵循原文描述的超参数设置。

实验目标:

评估用SE-ResNet替换目标检测器中的主干架构(ResNet)的效果,以便性能上的任何变化都可以归因于更好的表示。

实验结果:

image-20230421085732875

表7使用ResNet-50、ResNet-101及其SE对等体作为架构的目标检测器的验证集性能。

SE-ResNet-50比ResNet-50的COCO标准AP指标高出2.4%(相对提高6.3%),比AP@IoU=0.5高出3.1%。SE块也受益于更深层次的ResNet-101架构,在AP度量上提高了2.0%(相对提高了5.0%)。

结论:

综上所述,实验证明了SE模块的普遍性。改进可以在广泛的架构、任务和数据集上实现。

5.4、ILSVRC 2017 Classification Competition

SENets在ILSVRC2017竞赛获得了第一名,获奖作品由一小群SENets组成,采用了标准的 multi-scale 和 multi-crop融合策略,在测试集上获得了2.251%的top-5误差。

image-20230421090004950

SENet-154整合SE块和修改后的ResNeXt,将此模型与表8中使用标准crop size的ImageNet验证集的先前工作进行了比较(224×224和320×320)发现SENet-154的top-1误差为18.68%,top-5误差为4.47%,在报告结果中是最强的。

image-20230421090047983

包含目前知道的最强有力的结果。AmoebaNet方法:在训练过程中使用强化学习来开发新的数据增强策略,以提高搜索体系结构的性能;ResNeXt-101 32 × 48d 架构:通过在大约10亿张弱标记图像上预训练他们的模型并在ImageNet上进行微调来实现最佳的总体性能。

更复杂的数据增强(AmoebaNet)和广泛的预训练(ResNeXt-101 32 × 48d)产生的改进可能是对我们提出的网络架构变化的补充。

6、ABLATION STUDY

本节进行消融实验,以更好地了解使用不同构型对SE模块的影响。

实验设置:

  1. 数据集与环境:所有消融实验都是在一台机器上(8个gpu)的ImageNet数据集上进行的。
  2. 骨干架构:采用ResNet-50,根据经验在ResNet架构中,在激励操作中消除FC层的偏差,有助于通道依赖关系的建模,并在以下使用此配置实验。
  3. 数据增强策略:遵循5.1节中描述的方法。
  4. 学习率:为了研究每个变体的性能上限,学习率初始化为0.1,并继续训练,直到验证损失达到平稳水平(总计约300个时代)。然后将学习速率降低到原来的10倍,重复这个过程(总共三次)。
  5. 损失:在训练过程中使用标签平滑正则化 。

6.1、Reduction ratio

image-20230421090400146

公式5中引入的衰减率r是一个超参数,它允许我们改变网络中SE块的容量和计算成本。 为了研究性能和计算成本之间的平衡,使用SE-ResNet-50在不同的r值范围内进行实验,如表10,结果表明:

  1. 性能在一定范围的衰减率下是稳健的。
  2. 增加复杂性并不会单调地提高性能,而较小的比例会显著地增加模型参数大小。设置r = 16可以很好地平衡准确性和复杂性。
  3. 在实践中,在整个网络中使用相同的衰减率可能不是最优的(由于不同的层执行不同的角色),因此可以通过调整衰减率来满足给定基础架构的需求,从而实现进一步的改进。

6.2、Squeeze Operator

image-20230421090504260

验证使用全局平均池化而不是全局最大池化作为Squeeze操作符的意义。结果如表11:

  1. max 和 average pooling都是有效的,但是 average pooling 的性能稍好,证明了选择 average pooling 作为Squeeze操作。
  2. SE块的性能对于特定聚合操作符的选择是相当健壮的。

6.3、Excitation Operator

image-20230421091103232

评估Excitation机制的非线性选择,考虑了两种进一步的选择:ReLU和tanh,并尝试用这些可替代的非线性代替sigmoid。结果见表12:

用sigmoid替换tanh会略微恶化性能,而使用ReLU会显著恶化。实际上会导致SE-ResNet-50的性能低于ResNet-50基线。这表明为了使SE块有效,仔细地构造Excitation是重要的。

6.4、Different stages

image-20230421111540037

通过将SE块整合到ResNet-50中来探索不同网络阶段SE模块块的影响。具体来说,将SE块添加到中间网络阶段:阶段2、阶段3和阶段4,并在表13中报告结果:

我们观察到,在架构的每个阶段引入SE块都会带来性能上的好处,而且不同阶段的SE块所产生的增益是互补的,可以有效地结合在一起,进一步提高网络性能。

6.5、Integration strategy

image-20230421111607540

image-20230421091129696

(1)评估将SE块整合到现有架构中时,SE位置对结果的影响:

除提出的SE设计,考虑了三种变体:

  1. SE-PRE块:其中SE块被移动到残差单元之前;
  2. SE-POST块:SE单元移动到identity分支(ReLU之后)相加后
  3. SE- identity块:其中SE单元平行于残差单元放置在identity连接上。

图5说明了这些变体,表14报告了每种变体的性能:SE-PRE、SE- identity和提议的SE块在使用时都表现得相似,使用SE-POST块的情况下会导致性能下降——表明SE单元产生的性能改进对于它们的位置来说是相当健壮的,前提是在分支聚合之前应用这些改进。

image-20230421111745096

(2)评估将SE块放置在残差单元结构内,对结果的影响:

构造了一个变种的设计,将SE块移动到残差单元内,直接放置在3 × 3卷积层之后,由于3 × 3的卷积层拥有较少的通道,相应的SE块引入的参数数量也减少了。 表15中的比较表明,SE 3×3 变体在参数比标准SE块少的情况下获得了相当的分类精度。我们猜测通过针对特定架构调整SE块的使用,可以进一步提高效率。

7、ROLE OF SE BLOCKS

SE块已被证明在多个视觉任务中改善网络性能,了解squeeze 操作的相对重要性以及excitation机制在实践中如何运作。

7.1、Effect of Squeeze

image-20230421111932448

评估Squeeze操作产生的全局嵌入是否在性能上起重要作用

试验SE块的一个变体,它添加了相同数量的参数,但不执行全局平均池化——具体去掉池化操作,在excitation中将两个FC层替换为对应的通道维数相同的1 × 1卷积,即NoSqueeze,其中excitation输出保持与输入相同的空间维数 。

与SE块相反,这些点向卷积只能作为局部运算符输出的函数重新映射信道。而在实践中,深层网络的后几层通常具有(理论上的)全局接受场,全局嵌入不再是直接通过网络的NoSqueeze变量。

表16两种模型的精度、计算复杂度与标准ResNet-50模型的比较。我们观察到全局信息的使用对模型的性能有显著的影响,强调了 squeeze操作的重要性。此外与NoSqueeze设计相比,SE块允许以一种计算节俭的方式使用全局信息。

7.2、Role of Excitation

为了更清楚地了解SE块中Excitation的功能,研究SE- resnet -50模型的激活,并检查它们在网络中不同深度的不同类别和不同输入图像方面的分布。特别地想要了解excitation如何在不同类的图像之间,以及在一个类中的图像之间变化。

image-20230421112023615

首先考虑不同类的 excitation 分布:具体来说从表现出语义和外观多样性的 ImageNet 数据集中采样了四个类,即goldfish、pug、plane和cliff ;然后从验证集中为每个类别抽取50个样本,并计算每个阶段最后一个SE区块(下采样之前)中50个均匀采样通道的平均激活情况,并将其分布绘制在图6中。为了便于参考还绘制了1000个类中平均激活的分布。

对excitation操作的作用有以下三方面的观察:
  (1)首先 不同类之间的分布在网络的早期层非常相似,如SE 2-3。这表明在早期阶段,特征通道的重要性可能会被不同的类别所分享。
  (2)第二个观察是,在更大的深度,每个通道的值变得更特定于类,因为不同的类对特征的鉴别值表现出不同的偏好,例如SE4-6和SE 5-1。(观察结果与之前的研究结果一致 即较早的层次特征通常更普遍 ,而较晚的层次特征则表现出更高层次的特异性 )
  (3)在网络的最后阶段观察到一个有点不同的现象:SE5-2表现出一种有趣的趋向于饱和状态的趋势,在这种状态下大多数的激活接近于1,当所有激活的值都为1时,SE块将简化为identity操作符。SE 5-3中的网络末端(紧接其后的是在分类器之前的全局池),类似的模式出现在不同的类上,直到规模上的适度变化(可以由分类器调整)。这表明SE 5-2和SE 5-3 在向网络提供重新校准方面不如以前的区块重要。该结果表明,通过去除最后阶段的SE块,可以显著减少附加参数计数,而性能只会有边际损失。

image-20230421112206143

图7为两个样本类(金鱼和飞机)在同一类内的图像实例激活的均值和标准差,可以观察到一个与类间可视化一致的趋势,表明SE块的动态行为在类和类内实例中都有所变化。特别是在网络的后几层中,当一个类内的表示具有相当大的多样性时,网络学习利用特征重新校准来提高其判别性能 。

总之,SE块产生特定于实例的响应,然而这些响应在体系结构的不同层上支持模型日益增长的特定于类的需求。

8、CONCLUSION

本文:

提出SE模块,这是一个架构单元,旨在通过使网络能够执行动态通道特征重新校准来提高网络的表征能力。

实验:

  1. 大量实验证明了SENet的有效性,它在多个数据集和任务中实现了最先进的性能。
  2. SE模块揭示了以前的架构无法充分建模通道方面的特征依赖关系。
  3. 由SE块产生的特征重要度值可以用于其他任务,如用于模型压缩的网络剪枝。

我们希望这一见解能够被证明对其他需要强烈区分特征的任务有用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值