SENet
学习参考资料:https://blog.csdn.net/qq_39297053/article/details/130676316?spm=1001.2014.3001.5502
前言
SENet,胡杰(Momenta)在2017.9提出,通过显式地建模卷积特征通道之间的相互依赖性来提高网络的表示能力,即,通道维度上的注意力机制。SE块以微小的计算成本为现有的最先进的深层架构产生了显著的性能改进,SENet block和ResNeXt结合在ILSVRC 2017赢得第一名。
背景
-
提出背景:卷积核通常被看做是在局部感受野上,在空间上和通道维度上同时对信息进行相乘求和的计算。现有网络很多都是主要在空间维度方面来进行特征的融合(如Inception的多尺度)。
-
通道维度的注意力机制:在常规的卷积操作中,输入信息的每个通道进行计算后的结果会进行求和输出,这时每个通道的重要程度是相同的。而通道维度的注意力机制,则通过学习的方式来自动获取到每个特征通道的重要程度(即feature map层的权重),以增强有用的通道特征,抑制不重要的通道特征。
-
说起卷积对通道信息的处理,有人或许会想到逐点卷积,即kernel大小为1X1的常规卷积。与1X1卷积相比,SENet是为每个channel重新分配一个权重(即重要程度)。而1X1卷积只是在做channel的融合计算,顺带进行升维和降维,也就是说每个channel在计算时的重要程度是相同的。
1 * 1卷积等价于全连接层
SE模块
SENet是一种基于注意力机制的卷积神经网络架构。其主要思想是通过自适应地重新校准卷积特征的通道响应。SENet中的"Squeeze"和"Excitation"操作分别对应着该过程的两个主要步骤。
Squeeze:压缩操作是全局信息嵌入的过程,主要用于对空间维度进行全局平均池化,得到每个通道的全局空间信息,形成一个通道描述符。(即下图中 F s q F_{sq} Fsq的操作,得到 1 × 1 × C 1 \times 1 \times C 1×1×C 大小的)
换句话说,通过这个操作,我们可以获得每个特征通道的全局上下文信息。
Excitation:激励操作是通过一个全连接(Fully Connected, FC)层来学习非线性交互,以便捕获特征通道之间的依赖关系。具体来说,首先通过一个全连接层(FC)对通道描述符进行降维(通常通过一个收缩因子进行降维,例如16),然后通过ReLU激活函数进行非线性变换,接着再通过一个全连接层(FC)恢复到原始维度,并通过sigmoid激活函数将其映射到0到1之间,得到每个通道的权重。这个权重就可以用来重新校准原始特征通道。
通过这种方式,SENet可以有效地模拟特征通道之间的依赖关系,并且能够动态地调整每个特征通道的权重,从而提高模型的表现。
-
输入经过一系列传统卷积得到特征图,对先做一个Global Average Pooling,输出的数据,这个特征向量一定程度上可以代表之前的输入信息,论文中称之为压缩(Squeeze)操作。
-
再经过两个全连接来学习通道间的重要性,用Sigmoid限制到[0, 1]的范围,这时得到的输出可以看作每个通道重要程度的权重,论文中称之为扩展(Excitation)操作。
- 最后,把这个的权重乘到对应通道上,这时就根据权重对的通道进行了重要程度的重新分配
模型效果
SE 模块可以嵌入到现在几乎所有的网络结构中,而且都可以得到不错的效果提升,用过的都说好。
在大部分模型中嵌入SENet要比非SENet的准确率更高出1%左右,而计算复杂度上只是略微有提升,具体如下图所示。 而且SE块会使训练和收敛更容易。CPU推断时间的基准测试:224×224的输入图像,ResNet-50 164ms,SE-ResNet-50 167ms。
总结
SENet模型是一种通过自适应地重新加权输入特征图的通道来增强模型表达能力的卷积神经网络结构。由胡杰等人在2018年提出。
SENet的核心思想是通过一个“Squeeze-and-Excitation”模块来学习输入特征图的通道之间的关系,从而自适应地调整特征图中每个通道的权重。具体来说,“Squeeze-and-Excitation”模块包含两个步骤。
“Squeeze”:通过全局池化操作,将输入特征图的每个通道压缩成一个标量,用于表示该通道的重要性。
“Excitation”:使用一个小型的全连接神经网络,学习一个激活函数,将上一步中得到的每个通道的重要性进行自适应调整,并重新加权输入特征图的通道。
通过这样的操作,SENet可以自适应地增强模型的表达能力,减少冗余信息的传递,并且在不增加网络复杂度的情况下提高模型的准确率。此外,SENet可以很容易地嵌入到其他深度卷积神经网络结构中,使得其更容易应用于实际的计算机视觉任务中。
SENet模型在许多视觉任务中都取得了出色的表现,比如在ImageNet图像分类任务中,SENet-154取得了迄今为止最好的单模型结果。同时,SENet还被广泛应用于各种其他视觉任务中,如目标检测、语义分割等。