SENet论文理解

参考博客:https://blog.csdn.net/wfei101/article/details/79672944

https://blog.csdn.net/u014380165/article/details/78006626

pytorch代码:https://github.com/miraclewkf/SENet-PyTorch

1. 为什么提出该网络?

普通的卷积网络通常是在特征图上的局部区域和特征维度上的信息进行聚合,使用一系列的卷积操作便可以使网络感受到全局信息。目前的研究大都从空间维度上来提升网络性能,本文作者提出一种考虑通道数方面的关系来提升性能的方法。

本文主要包括两个方面:Squeeze 和 Excitation。首先提取每一个通道上特征图的全局感受野,然后对其进行“特征重标定”,即通过学习的方法来提取每个通道的学习程度,从而提升程度大的抑制程度小的特征。

2. SENet模型

2.1 Squeeze

首先对原图做Ftr转换操作,这一步只是通过一个卷积,严格来讲并不属于SENet部分。

Squeeze 操作:

对上一步的输出uc做全局特征信息的提取,也就是对每一个特征图做全局平均池化( global average pooling),得到1x1xC的张量。

2.2 Excitation

Excitation操作相当于进行了两次全连接操作,第一次用W1(C/r x C)与z(1 x 1 x C)相乘得到1 x 1 x C/r的张量,对其进行ReLU操作,后再与W2(C x C/r)相乘得到(1 x 1 x C)张量。最后通过sigmoid函数输出。详细的公式和示意图如下。

2.3 Scale

s得到的是(0,1)区间的数,对于每一个通道,都会有一个对应的权值,可以看做是进行特征学习之后每个通道的重要性,将uc中每个通道的二维矩阵中的每个数都与对应的sc相乘,即得到最终输出。

猜你喜欢

转载自blog.csdn.net/ruoruojiaojiao/article/details/89055318