5种2D Attention整理(Non-Local、Criss-Cross、SE、CBAM、Dual-Attention)

一、Non-local

原文链接:Non-local Neural Networks | IEEE Conference Publication | IEEE Xplore

1.公式

y_i=\frac{1}{C(x)}\sum_{\forall j}f(x_i,x_j)g(x_j)

其中g(x_j)=W_gx_j

        f的形式可以不同,如

        (1)Gaussian:

f(x_i,x_j)=e^{x_i^\mathrm{T}x_j}

C(x)=\sum_{\forall j}f(x_i,x_j)

        (2)Embedded Gaussian:

f(x_i,x_j)=e^{\theta(x_i)^\mathrm{T}\phi(x_j)}

C(x)=\sum_{\forall j}f(x_i,x_j)

自注意力(self-attention)是non-local在Embedded Gaussian中的特例。因为

\frac{1}{C(x)}f(x_i,x_j)

就是对给定的i,沿着维度j作softmax操作。

        (3)点积(embedded):

f(x_i,x_j)=\theta(x_i)^\mathrm{T}\phi(x_j)

C(x)=N

        (4)拼接:

f(x_i,x_j)=\mathrm{ReLU}(w^\mathrm{T}_f[\theta(x_i),\phi(x_j)])

C(x)=N

其中[\cdot ,\cdot ]表示拼接操作;w_f是将拼接后的向量转换为标量的权重向量。

2.Non-local块

z_i=W_zy_i+x_i

        上图为Non-local(embedded Gaussian)的结构。图中蓝色方块为1\times 1\times 1卷积;\oplus\otimes分别表示矩阵加法和矩阵乘法。1024和512代表通道数。softmax操作是对每一行做的。

如果去掉上图中的\theta\phi,就变为Gaussian结构;将softmax操作替换为乘以1/N,就变为点积结构。

        实际实施时,不改变性能,但减小计算量的方法:在\phig后加入最大池化层。

二、Criss-Cross

原文链接:CCNet: Criss-Cross Attention for Semantic Segmentation | IEEE Conference Publication | IEEE Xplore

网络结构:

1.Criss-Cross模块结构

        图中softmax在通道维度做。

2.Affinity操作

对于Q中每个位置u,可以得到其特征Q_u\in \mathbb{R}^{​{C}'};同时可以得到K中对应位置所在行和列的所有向量集合\Omega_u\in\mathbb{R}^{(H+W-1)\times {C}'}。设\Omega_{i,u}\Omega_u的第i个元素,则Affinity操作定义为

d_{i,u}=Q_u\Omega^{\mathrm{T}}_{i,u}

 记D为Affinity操作的输出矩阵(或A在softmax前的矩阵;其位置u处的第i个元素为d_{i,u}),则

上图中,左边的矩阵为H,上边的矩阵为K,下边的矩阵为Q,右边的矩阵为D\otimes表示Affinity操作。

3.Aggregation操作

对于V中每个位置u,可以得到其特征V_u\in \mathbb{R}^C和集合\Phi_u\in\mathbb{R}^{(H+W-1)\times C}(所在行和列的所有向量集合)。则Aggregation操作为

{H}'_u=\sum_{i\in \left |\Phi_u \right |}A_{i,u}\Phi_{i,u}+H_u

实际上就是线性组合(以Au位置向量(H+W-1维)的每个元素作为系数/权重,作用于\Phi_u中每一个位置的向量(C维),相乘相加,作为{H}'u位置元素向量(C维))。

三、Squeeze and Excitation(SE)

原文链接:Squeeze-and-Excitation Networks | IEEE Journals & Magazine | IEEE Xplore

上图中:

        F_{tr}为卷积、特征提取操作(不属于SE模块);

        F_{sq}为均值池化操作,输出为C维向量;

        F_{ex}为2层全连接层加sigmoid操作:

s=F_{ex}(z,W)=\sigma(g(z,W))=\sigma(W_2\delta(W_1z))

        F_{scale}s的每个元素作为权重乘上U的对应通道得到输出的每个通道:

\tilde{x}_c=F_{scale}(u_c,s_c)=s_cu_c

将SE嵌入到ResNet中:

四、CBAM

原文链接:https://arxiv.org/pdf/1807.06521.pdf

CBAM模块结构:

1.通道注意力模块结构

\begin{aligned} M_c(F)&=\sigma(\textup{MLP}(\textup{AvgPool}(F))+\textup{MLP}(\textup{MaxPool}(F)))\\ &=\sigma(W_1(W_0(F^c_{avg}))+W_1(W_0(F^c_{max}))) \end{aligned}

其中\sigma表示sigmoid函数,W_0\in\mathbb{R}^{C/r\times C}W_1\in\mathbb{R}^{C\times C/r}W_0后有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}

其中f^{7\times 7}表示核为7\times 7的卷积操作。

        将CBAM嵌入ResNet中:

 五、Dual-Attention

原文链接:Dual Attention Network for Scene Segmentation | IEEE Conference Publication | IEEE Xplore

网络结构:

1.位置注意力模块结构

图中B,C,D的维度与A相同;B,C,D的reshape表示将C\times H\times W的矩阵变为C\times N(其中N=HW);S\in \mathbb{R}^{N\times N}为attention map;\otimes表示矩阵乘法;最后的reshape表示将C\times N的矩阵变为C\times H\times W。最终

E_j=\alpha \sum_{i=1}^N(s_{ji}D_i)+A_j

其中\alpha为缩放因子,初始化为0,然后逐渐学习到更大的值;可知E的每个位置是所有位置特征和原始特征的加权和。

2.通道注意力模块结构

图中A的reshape表示将C\times H\times W的矩阵变为C\times N\otimes表示矩阵乘法; 最后的reshape表示将C\times N的矩阵变为C\times H\times W。最终

E_j=\beta \sum_{i=1}^C(x_{ji}A_i)+A_j

其中缩放参数\beta从0开始逐渐学习;可知E的每个通道是所有特征通道和原始通道的加权和。

3.Sum Fusion操作

        使用卷积层变换两个注意力模块的输出,然后进行矩阵求和。

注:self attention的permutation equivalent

如上图所示,输入交换次序,输出也会相应交换次序。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: Dual attention layer是一用于图像分割任务的注意力机制。它通过同时考虑空间注意力和通道注意力来增强特征表示。在Dual Attention Network (DANet)中,使用了两个并行的分支,分别是position attention module和channel attention module。position attention module使用自注意力机制来捕获特征图在任意两个位置之间的空间依赖关系,通过加权求和对所有位置的特征进行聚合更新。而channel attention module使用自注意力机制来捕获任意两个通道图之间的通道依赖关系,并使用所有通道图的加权和来更新每个通道图。DANet将这两个注意力模块的输出进行融合,进一步增强了特征表示。\[3\] Dual attention layer的引入可以提高图像分割的准确性和性能。 #### 引用[.reference_title] - *1* *2* [双重关系感知注意力机制 Dual Relation-Aware Attention[keras实现 dual attention优化版]](https://blog.csdn.net/weixin_42723174/article/details/125235744)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【AttentionDual Attention(DANet) & Fully Attention(FLA)](https://blog.csdn.net/m0_61899108/article/details/126086217)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

byzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值