【论文阅读】一些轻量的有效的attention module的介绍

最近在看论文,发现很多的论文都用到了attentive moudule。
这也得益于越来越多的实验证明自注意力机制对于:什么是重要的?这个问题的合理解决。相比传统的直接生成特征图,对于每一个item进行同样的卷积提取特征等操作,让神经网络来自己学习哪部分是前景,哪部分是背景噪声,不重要,加入一个attentive module是一个很聪明的办法。
现在学术界涌现出许多的attentive module的设计方法,主要还是应用在2d目标检测领域。
这篇博客主要是对于一些开源的影响力大的模块进行一个介绍。

CMBA

论文题目:CBAM: Convolutional Block Attention Module
eccv2018 已经开源
在这里插入图片描述
这篇文章思考了两个问题,对于一个输入的特征图(HWC),什么(what)是重要的,以及哪一块(where)是重要的。
在这里插入图片描述

所以文章架构如上,这个attention module主要包含两个部分:
channel attention module
这个部分解决(what)的问题。
对于输入的特征图,这是个什么东西?我们在网络中常用的方法又max pool 和mean pool。这两种featuer aggregation的方法各有优劣,文章将两者结合起来进行操作。
在这里插入图片描述
其实没啥好说的,有深度学习基础的同学看到上面的图基本可以知道作者是怎么做的。
在这里插入图片描述
经过该模块我们得到一个11C的vector,这表示的便是这个特征图它代表什么东西。
Spatial attention module
这个模块则主要解决“where”的问题,特征图的哪一块信息是重要的?
主要是在channel维度进行max和mean操作,集合每一个voxel的所有信息。然后将它们进行一个拼接后进行conv操作。最后激活函数进行激活。得到的是一个HW1的特征图。
在这里插入图片描述

在这里插入图片描述

这两个模块进行串联得到了最好的结果。
在resnet中进行了这样的应用:

在这里插入图片描述

模块参数很少很轻、可以在神经网络中广泛应用。比如之前我讲过的一篇文章HVPR便应用了spatial attention。以及trans上一篇文章:SIEV-Net。

BAM: Bottleneck Attention Module

cmba同组同时期的作品。
British Machine Vision Association2018
基本思路是一样的,不过总体框架不一样:
在这里插入图片描述
channel branch是一样的:
在这里插入图片描述
spatial attention branch
这个层面的attention计算主要是要扩大每一个pixel在hw维度上的感受野 作者引入了膨胀卷积 主要是首先1x1维度的卷积进行channel减小 随后3x3的卷积进行感受野扩大 最后1X1的卷积生成HW1的feature

对于上述两个通道得到的feature map 将它们进行扩张到HWC维度 经过一盒sigmoid函数激活 再与原来的input tensor 进行元素级别的相乘

Coordinate Attention

论文题目:Coordinate Attention for Efficient Mobile Network Design
新加坡国立 2021cvpr
这篇文章主要是在SE上进行改进的。se直接进行global pool 显然是会失去位置信息的。这样子强调了channel维度的信息。
而我们熟悉的cmba则是通过channel 和 spatial串联得到的。这种方法是不是suboptimal的还没有一个定论。
这种方法则是将channel 和spatial维度综合起来
在这里插入图片描述
首先计算H和W维度的位置信息:
在这里插入图片描述
concat起来后 作为一个维度进行linear函数处理及激活 最后分开为两个维度 对于featuremap进行加权
很简单的思想 却实现了两种方案。

效果好于cmba
在这里插入图片描述

NAM

论文标题:NAM: Normalization-based Attention Module
nips的workshop
主要是用bn在cmba上进行改进 思路跟简单:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果也不错 不过代码维护得不太好
在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
shuffle attention module 是一种用于图像识别领域的注意力模块,它基于 Pytorch 框架实现。注意力机制在深度学习中非常重要,它能够有效地提高模型的性能和准确度。 shuffle attention module 的主要思想是在网络中引入一种随机注意力机制,以更好地探索图像中的信息。它通过将图像特征分成不同的子块,并在每个子块中使用不同的注意力权重来学习不同的特征。这样做的好处是可以将注意力集中在不同的区域,从而更全面地捕捉图像的细节和特征。 shuffle attention module 在实现上主要包括两个关键步骤:分组和随机注意力。首先,它将输入特征分成多个组,每个组包含相同数量的特征。然后,在每个组中,通过随机注意力机制为每个特征赋予不同的权重。这些权重通过学习得到,可以根据不同的场景和任务进行调整。 通过引入 shuffle attention module,网络可以更好地关注每个组内的特征,并在训练过程中动态调整注意力权重。这样做可以提高模型对图像的理解能力和表达能力,从而提高图像识别的准确度和性能。 总结来说,shuffle attention module 是一种基于 Pytorch 实现的注意力模块,通过分组和随机注意力机制来提高图像识别任务的性能和准确度。它可以让模型更加关注图像的细节和特征,从而提高模型对图像的理解能力。这种模块的引入可以在深度学习中起到非常重要的作用。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值