论文笔记38:SA-Net: Shuffle Attention for Deep Convolutional Neural Networks(考虑引进论文)

参考

GCNet: Non-local networks meet squeeze-excitation networks and beyond
CBAM: convolutional block attention module
ECA-Net: Efficient channel attention for deep convolutional neural networks
SGE: Spatial group-wise enhance: Improving semantic feature learning in convolutional networks
Shufflenet: An extremely efficient convolutional neural network for mobile devices
Shufflenet V2: practical guidelines for efficient CNN architecture design
DANet: Dual attention network for scene segmentation
SENet: Squeeze-and-excitation networks

方法

在这里插入图片描述
Feature Grouping:将X沿着通道维数分组, X = [ X 1 , ⋯   , X G ] , X k ∈ R C / G × H × W X=\left[X_{1}, \cdots, X_{G}\right], X_{k} \in \mathbb{R}^{C / G \times H \times W} X=[X1,,XG],XkRC/G×H×W,然后,我们通过注意力模块为每个子特征生成相应的重要系数。具体来说,在每个注意单元的开始, X k X_k Xk的输入沿着通道维度被分成两个分支 X k 1 , X k 2 ∈ R C / 2 G × H × W X_{k 1}, X_{k 2} \in \mathbb{R}^{C / 2 G \times H \times W} Xk1,Xk2RC/2G×H×W,一个分支用于通过利用通道的相互关系来产生通道注意力映射,而另一个分支用于通过利用特征的相互空间关系来产生空间注意力映射,使得模型可以关注“什么”和“哪里”是有意义的。

Channel Attention:首先通过简单地使用全局平均池化(GAP)来嵌入全局信息,以生成通道方式的统计信息 s ∈ R C / 2 G × 1 × 1 s\in \mathbb{R}^{C / 2 G \times 1 \times 1} sRC/2G×1×1,即 s = F g p ( X k 1 ) = 1 H × W ∑ i = 1 H ∑ j = 1 W X k 1 ( i , j ) s=\mathcal{F}_{g p}\left(X_{k 1}\right)=\frac{1}{H \times W} \sum_{i=1}^{H} \sum_{j=1}^{W} X_{k 1}(i, j) s=Fgp(Xk1)=H×W1i=1Hj=1WXk1(i,j)

此外,还创建了一个紧凑的特征,以便为精确和自适应的选择提供指导。这是通过sigmoid激活的简单门控机制实现的。然后,可以通过以下方式获得通道注意的最终输出 X k 1 ′ = σ ( F c ( s ) ) ⋅ X k 1 = σ ( W 1 s + b 1 ) ⋅ X k 1 X_{k 1}^{\prime}=\sigma\left(\mathcal{F}_{c}(s)\right) \cdot X_{k 1}=\sigma\left(W_{1} s+b_{1}\right) \cdot X_{k 1} Xk1=σ(Fc(s))Xk1=σ(W1s+b1)Xk1

其中 W 1 ∈ R C / 2 G × 1 × 1 W_{1} \in \mathbb{R}^{C / 2 G \times 1 \times 1} W1RC/2G×1×1 b 1 ∈ R C / 2 G × 1 × 1 b_{1} \in \mathbb{R}^{C / 2 G \times 1 \times 1} b1RC/2G×1×1为用于缩放和移动s的参数。

Spatial Attention:空间注意力侧重于“何处”这一信息性部分,是对通道注意力的补充。首先,我们使用 X k 2 X_{k 2} Xk2上的群归一化(Group normalization)来获得空间方式统计。然后,采用 F c ( ) \mathcal{F}_{c}() Fc()来增强 X k 2 {X}_{k 2} Xk2的表示。空间注意力的最终输出通过以下方式获得 X k 2 ′ = σ ( W 2 ⋅ G N ( X k 2 ) + b 2 ) ⋅ X k 2 X_{k 2}^{\prime}=\sigma\left(W_{2} \cdot G N\left(X_{k 2}\right)+b_{2}\right) \cdot X_{k 2} Xk2=σ(W2GN(Xk2)+b2)Xk2

其中 W 1 ∈ R C / 2 G × 1 × 1 W_{1} \in \mathbb{R}^{C / 2 G \times 1 \times 1} W1RC/2G×1×1 b 1 ∈ R C / 2 G × 1 × 1 b_{1} \in \mathbb{R}^{C / 2 G \times 1 \times 1} b1RC/2G×1×1.

然后将两个分支连接起来,使通道数与输入的相同, X k ′ = [ X k 1 ′ , X k 2 ′ ] ∈ R C / G × H × W X_{k}^{\prime}=\left[X_{k 1}^{\prime}, X_{k 2}^{\prime}\right] \in \mathbb{R}^{C / G \times H \times W} Xk=[Xk1,Xk2]RC/G×H×W.

Aggregation:之后,所有子特征被聚集。最后,与ShuffleNet v2类似,我们采用了一个“通道shuffle”操作符,使跨组信息流能够沿着通道维度流动,来进行不同子特征之间的信息交流。SA模块的最终输出与X相同大小,使得SA相当容易与现代架构集成。单个SA模块中,每个分支的通道数为C/2G,因此总参数是3C/G(G通常是32或64)。
在这里插入图片描述
可视化与解释见图4和5.

实验

输入图像:224×224,G=64,权重衰减1e-4,动量0.9,小批量(mini-batch)大小256,100个epochs,从初始学习速率0.1开始,每30个epochs减少10倍。对于验证集的测试,首先将输入图像的短边调整到256,并使用224×224的中心裁剪进行评估。

分类:表1

消融:表2

目标检测:表3

实例分割:表4

未来,我们将进一步探索SA的空间和通道注意力模块,并将其应用到更多CNN架构中,包括ShuffleNet family,SKNet和MobileNet V3.

代码测试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值