1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks

 CODE:https://github.com/wofmanaf/SA-Net

ABSTRACT:

在计算机视觉研究中主要有两种广泛使用的注意机制,空间注意和通道注意,它们分别旨在捕获像素级的成对关系和通道依赖性。虽然将它们融合在一起可能会比它们各自的实现更好的性能,但这将不可避免地增加计算开销。→Shuffle Attention(SA)模块

(1)分组:SA首先将通道尺寸分组为多个子特征,然后并行处理它们。

(2)Attention:然后,对于每个子特征,SA利用Shuffle Unit来描绘空间和通道维度上的特征依赖性。

(3)Concat:之后,将所有子功能进行聚合,并采用“Channel Shuffle”算子,以实现不同子功能之间的信息通信。

Attention:

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第1张图片

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第2张图片

Feature Grouping.

特征图被分块(紫色块),接着分组后的每个子组继续被分组已用于不同的attention(绿色块、蓝色块)

Channel Attention.(绿色部分)

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第3张图片

改进的SE,把SE的全连接换成了F(c)

Spatial Attention.(蓝色部分)

Spatial attention focuses on “where” is an informative part.

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第4张图片

(1)GN:使用Group Norm(GN)来获得空间统计。

GroupNorm:将channel方向分group,然后每个group内做归一化,算(C//G)*H*W的均值。

在每个Channel内归一化,获得特征图在每个Channel的特征信息,即空间统计。

F(c):增强特征表示。

Sigmoid

GN计算解析:【AI基础】图解手算BatchNorm、LayerNorm和GroupNorm_nn.groupnorm与nn.layernorm-CSDN博客

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第5张图片

GN与BN的优劣比较:
1、BN会受到batchsize大小的影响。如果batchsize太小,算出的均值和方差就会不准确,如果太大,显存又可能不够用。
2、GN算的是channel方向每个group的均值和方差,和batchsize没关系,自然就不受batchsize大小的约束。
随着batchsize的减小,GN的表现基本不受影响,而BN的性能却越来越差。

SA的性能结果:

可视化

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第6张图片

Comparisons of different attention methods on ImageNet-1k

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第7张图片

消融实验

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第8张图片

疑问:

这个F(c)=Wx+b到底是什么呢?为什么可以用来替换SE中的全连接呢?

回答:

神经网络中w,b参数的作用(为何需要偏置b的解释)_神经网络的w和b-CSDN博客

1.信号处理顶会-ICASSP:SA-Net: shuffle attention for deep convolutional neural networks_第9张图片

神经网络的神经元处的计算:output =g[sum (weights * inputs) + bias]。g(z)为激活函数,本文为sigmoid。

output = sum (weights * inputs) + bias。偏置实际上是对神经元激活状态的控制。

在神经网络中,以sigmoid函数为例,加入偏置后也是增加了函数的灵活性,提高了神经元的拟合能力。

你可能感兴趣的:(Attention文献阅读,论文阅读)