当前位置:网站首页>5种2D Attention整理(Non-Local、Criss-Cross、SE、CBAM、Dual-Attention)
5种2D Attention整理(Non-Local、Criss-Cross、SE、CBAM、Dual-Attention)
2022-07-17 05:10:00 【byzy】
一、Non-local
原文链接:Non-local Neural Networks | IEEE Conference Publication | IEEE Xplore
1.公式

其中
。
的形式可以不同,如
(1)Gaussian:


(2)Embedded Gaussian:


自注意力(self-attention)是non-local在Embedded Gaussian中的特例。因为
就是对给定的
,沿着维度
作softmax操作。
(3)点积(embedded):


(4)拼接:
![f(x_i,x_j)=\mathrm{ReLU}(w^\mathrm{T}_f[\theta(x_i),\phi(x_j)])](http://img.inotgo.com/imagesLocal/202110/05/20211005130515664C_15.gif%28x_i%2Cx_j%29%3D%5Cmathrm%7BReLU%7D%28w%5E%5Cmathrm%7BT%7D_f%5B%5Ctheta%28x_i%29%2C%5Cphi%28x_j%29%5D%29)

其中
表示拼接操作;
是将拼接后的向量转换为标量的权重向量。
2.Non-local块


上图为Non-local(embedded Gaussian)的结构。图中蓝色方块为
卷积;
和
分别表示矩阵加法和矩阵乘法。1024和512代表通道数。softmax操作是对每一行做的。
如果去掉上图中的
和
,就变为Gaussian结构;将softmax操作替换为乘以
,就变为点积结构。
实际实施时,不改变性能,但减小计算量的方法:在
和
后加入最大池化层。
二、Criss-Cross
原文链接:CCNet: Criss-Cross Attention for Semantic Segmentation | IEEE Conference Publication | IEEE Xplore
网络结构:
1.Criss-Cross模块结构

图中softmax在通道维度做。
2.Affinity操作
对于
中每个位置
,可以得到其特征
;同时可以得到
中对应位置所在行和列的所有向量集合
。设
为
的第
个元素,则Affinity操作定义为

记
为Affinity操作的输出矩阵(或
在softmax前的矩阵;其位置
处的第
个元素为
),则

上图中,左边的矩阵为
,上边的矩阵为
,下边的矩阵为
,右边的矩阵为
;
表示Affinity操作。
3.Aggregation操作
对于
中每个位置
,可以得到其特征
和集合
(所在行和列的所有向量集合)。则Aggregation操作为

实际上就是线性组合(以
的
位置向量(
维)的每个元素作为系数/权重,作用于
中每一个位置的向量(
维),相乘相加,作为
的
位置元素向量(
维))。
三、Squeeze and Excitation(SE)
原文链接:Squeeze-and-Excitation Networks | IEEE Journals & Magazine | IEEE Xplore

上图中:
为卷积、特征提取操作(不属于SE模块);
为均值池化操作,输出为
维向量;
为2层全连接层加sigmoid操作:

即
的每个元素作为权重乘上
的对应通道得到输出的每个通道:

将SE嵌入到ResNet中:

四、CBAM
原文链接:https://arxiv.org/pdf/1807.06521.pdf
CBAM模块结构:

1.通道注意力模块结构


其中
表示sigmoid函数,
,
;
后有ReLU激活函数。
2.空间注意力模块结构

![\begin{aligned} M_s(F)&=\sigma(f^{7 \times 7}([\textup{AvgPool}(F);\textup{MaxPool}(F)]))\\ &=\sigma(f^{7 \times 7}([F^c_{avg};F^c_{max}])) \end{aligned}](http://img.inotgo.com/imagesLocal/202207/19/202207170508422261_53.gif)
其中
表示核为
的卷积操作。
将CBAM嵌入ResNet中:

五、Dual-Attention
原文链接:Dual Attention Network for Scene Segmentation | IEEE Conference Publication | IEEE Xplore
网络结构:

1.位置注意力模块结构

图中
的维度与
相同;
的reshape表示将
的矩阵变为
(其中
);
为attention map;
表示矩阵乘法;最后的reshape表示将
的矩阵变为
。最终
其中
为缩放因子,初始化为0,然后逐渐学习到更大的值;可知
的每个位置是所有位置特征和原始特征的加权和。
2.通道注意力模块结构

图中A的reshape表示将
的矩阵变为
;
表示矩阵乘法; 最后的reshape表示将
的矩阵变为
。最终
其中缩放参数
从0开始逐渐学习;可知
的每个通道是所有特征通道和原始通道的加权和。
3.Sum Fusion操作
使用卷积层变换两个注意力模块的输出,然后进行矩阵求和。
注:self attention的permutation equivalent


如上图所示,输入交换次序,输出也会相应交换次序。
边栏推荐
- Livedata analysis
- 8种视觉Transformer整理(下)
- SnackBar源码解析及封装
- MySQL 服务正在启动 . MySQL 服务无法启动
- JVM learning
- Pointnet++ code explanation (VII): pointnetsetabstractionmsg layer
- 11. DWS layer construction of data warehouse construction
- 运行基于MindSpore的yolov5流程记录
- Android realizes truly safe exit from App
- Dlib library and Dat file address
猜你喜欢

Pointnet++ code explanation (V): Sample_ and_ Group function and samle_ and_ group_ All function

软件过程与管理复习(六)

SGM: Sequence Generation Model for Multi-Label Classification(用于多标签分类的序列生成模型)

Custom components of wechat applet

CV-Model【1】:Mnist

8. ODS layer construction of data warehouse

MySQL learning notes (4) - (basic crud) operate the data of tables in the database

gradle自定义插件

微信小程序中的WXML模板语法

Pointnet++代码详解(一):farthest_point_sample函数
随机推荐
Pointnet++ code explanation (III): query_ ball_ Point function
12. Ads layer construction of data warehouse construction
SnackBar源码解析及封装
Configure tabbar and request network data requests
JNA loading DLL and its application in jar
C language - bubble sort
Simple application of COAP in andorid
记录:YOLOv5模型剪枝轻量化
PyTorch学习笔记【1】:使用张量表征真实数据
Flutter Intl的使用
DEEP JOINT TRANSMISSION-RECOGNITION FOR POWER-CONSTRAINED IOT DEVICES
Dlib library and Dat file address
2021-04-18
Time difference calculation
VS 中 error C4996: ‘scanf‘: This function or variable may be unsafe. 的解决方法。
CV-Model【2】:Alexnet
Subtotal of pytorch installation of cuda11.0
简单Web服务器程序设计与实现
安卓实现真正安全的退出app
Pointnet++代码详解(七):PointNetSetAbstractionMsg层

作softmax操作。
和
,就变为点积结构。
维)的每个元素作为系数/权重,作用于
中每一个位置的向量(
的