Attention注意力机制学习(二)------->一些注意力网络整理
SKNet——SENet孪生兄弟篇(2019)
论文
Selective Kernel Networks
https://arxiv.org/abs/1903.06586 2019年
介绍
SKNet使用了两个思路在提高精度:
- 很多网络使用了各种Trick来降低计算量,比如ResNeXt,计算量大大减少,精度却略有提升。那么如果不牺牲那么多计算量,能否精度提高一些呢?比如使用大一点的Kernel,如 5*5 的卷积提升精度。
- 结合现在普遍使用的Attention操作
加了上面两个操作之后,显然计算量会上去,于是作者再加了一个Group Convlution来做trade off权衡。
上述结构可以分为三个步骤:
- Split:输入为 c*h*w 的特征图, 和 均表示Group Convlution。这里使用Group Convlution以减少计算量。注意,这里两路Group Convlution使用的卷积核大小不一致,原因在于Motivation中说的第一点,提升精度。
- Fuse:通过Split操作分成两路之后,再把两路结果进行融合,然后就是一个Sequeeze and Excitation block。
- Select:Select模块把Sequeeze and Excitation block模块的结果通过两个softmax以回归出Channel之间的权重信息。然后把这个权重信息乘到 和 中。这个过程可以看做是一个soft attention。最好把两路的特征图进行相加得到输出特征图 V 。
总结
整体感觉融合了较多的trick,Select部分使用soft attention和Sequeeze and Excitation block中对特征图加权蛮像的,区别在于Sequeeze and Excitation block考虑的是Channel之间的权重,而Select部分的attention不仅考虑了Channel之间的权重,还考虑了两路卷积的权重。
同样的,SKNet可以很容易的嵌入到其他网络结构中。
参考:后ResNet时代:SENet与SKNet - 知乎
ResNeSt(2020)
论文和官方代码
https://hangzhang.org/files/resnest.pdf
代码:https://github.com/zhanghang1989/ResNeSt
介绍
参考:[论文笔记] ResNeSt - 知乎
最近在分类任务上流行用NAS方案,但是NAS驱动的模型往往很难优化计算效率或者优化在商用GPU/CPU上的内存,因此限制了NAS模型的使用。 ResNet在架构设计上很简单,有效,但是由于其本身最初适用于分类任务,因为感受野大小和缺乏跨通道的交互的问题,其实可能不太适用于下流的其他任务。因为很多时候会做一个网络手术,加入金字塔模块或者长距离的模块或者跨通道的特征图注意力机制来适应某个任务。因此作者提出一个问题,能不能有一个多功能的backbone来改善特征的表示,从而提高其多个下流任务的性能?
跨通道信息在下游应用中已证明是成功的,而最近的图像分类网络则更多地关注组或深度卷积。 尽管它们在分类任务中具有出色的计算能力和准确性,但这些模型无法很好地转移到其他任务,因为它们的孤立表示无法捕获跨渠道关系。因此,期望具有跨通道表示的网络。于是,本文的第一个贡献就是提出了Split-Attention模块,整合了跨通道的注意力机制,同时保持了ResNet架构的简单。ResNeSt中的S代表split。
论文对于流行的其他技术做了对比分析:
CNN架构:主要提到了AlexNet、NIN、VGG、Highway network和ResNet。
多路和特征图注意力:主要提到了GoogleNet、ResNeXt、SENet和SKNet。
NAS:提到了baNet、MNASNet和EfficientNet。
Split-Attention模块
特征图分组:ResNeXt中将特征图分成 K 组, K 为cardinality参数;作者在这个分组的基础上进一步将分完后的特征图再分为R组,记为cardinal groups。因此总的分组为 G=KR ,这里对分组的特征图定义了 F 操作。
Cardinal Groups中的Split-Attention:先按照Cardinal Groups来逐元素相加,按K来分组计算;然后按K做全局平均值池化,就获得了 ;继而,对K个分组做通道注意力,基本就是SE的乘法那步。
ResNeSt模块:将cardinal group表示形式沿通道维度连接起来: V=Concat{V1,V2,...VK} 。 与标准残差块中一样,如果输入和输出特征图共享相同的形状,则我们的Split-Attention块的最终输出Y是使用残差连接生成的: Y=V+X 。对于具有stride的块,将适当的变换T应用于快捷连接以对齐输出形状: Y=V+T(X) 。 例如,stride或者pooling。
与现有的注意力方法的关系:如果R=1,则对K组都执行了SE操作;诸如SK-Net的先前模型引入了两个网络分支之间的注意力功能,但是它们的操作并未针对训练效率和扩展到大型神经网络进行优化。本文的方法概括了cardinal group设置中关于特征图注意力的先前工作,并且其实现在计算上仍然有效。
CBAM(2018)
论文
论文题目:《CBAM: Convolutional Block Attention Module》 2018年
论文地址:https://arxiv.org/pdf/1807.06521.pdf
介绍
参考:【注意力机制】CBAM详解_姚路遥遥的博客-CSDN博客_cbam
BAM: Bottleneck Attention Module(2018)
论文
https://arxiv.org/pdf/1807.06514.pdf
介绍
bottlenect attention module(BAM)_just-solo的博客-CSDN博客
BAM全程是bottlenect attention module,与CBAM很相似的起名,还是CBAM的团队完成的作品。
CBAM可以看做是通道注意力机制和空间注意力机制的串联(先通道后空间),BAM可以看做两者的并联。
Residual Attention(2017没太理解)
论文
https://arxiv.org/abs/1704.06904
介绍
[论文笔记] Residual Attention Network - 知乎
Dual Attention(2019没搞懂和CBAM的区别)
论文
https://arxiv.org/pdf/1809.02983.pdf
介绍
论文阅读-Dual Attention Network for Scene Segmentation - 知乎
场景分割任务中,需要区分一些容易混淆的类别以及考虑不同外形特征的目标,例如,草原与牧场有时候是很难区分的,公路上的车也存在尺度、视角、遮挡与亮度等的变化。因此,加强特征表达能力是必要的。
(2)encoder-decoder结构,融合中层与高层的语义信息
以上方法可以捕获不同尺度的目标,但是它没有利用目标之间的关系,这些对于场景表达也是重要的。
Attention注意力机制学习(二)------->一些注意力网络整理相关推荐
- 【动手深度学习-笔记】注意力机制(一)注意力机制框架
生物学中的注意力提示 非自主性提示: 在没有主观意识的干预下,眼睛会不自觉地注意到环境中比较突出和显眼的物体. 比如我们自然会注意到一堆黑球中的一个白球,马路上最酷的跑车等. 自主性提示: 在主观意识 ...
- Pytorch:Transformer(Encoder编码器-Decoder解码器、多头注意力机制、多头自注意力机制、掩码张量、前馈全连接层、规范化层、子层连接结构、pyitcast) part1
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...
- Transformer、多头注意力机制学习笔记:Attention is All You Need.
文章目录 相关参考连接: https://blog.csdn.net/hpulfc/article/details/80448570 https://blog.csdn.net/weixin_4239 ...
- 注意力机制学习(二)——空间注意力与pytorch案例
文章目录 一.空间注意力机制简介 二.空间注意力与pytorch代码 三.使用案例 一.空间注意力机制简介 空间注意力的示意图如下: 长条的是通道注意力机制,而平面则是空间注意力机制,可以发现: 通道 ...
- 注意力机制 ——学习笔记
文章目录 一.生物神经网络的注意力 1.1 生物注意力的种类 视觉注意力 听觉注意力 语言注意力 1.2 生物注意力的优势 1.3 注意力与记忆力的关系 1.4 人工神经网络的注意力 二.为什么要使用 ...
- 注意力机制学习 BAM
注意力机制学习-BAM 简介 思考 步骤 代码 实验 最后 简介 2018年BMVC,从通道和空间两方面去解释注意力机制,和CBAM为同一团队打造.论文连接:BAM BAM:Bottleneck At ...
- 第七周作业:注意力机制学习的part2
[BMVC2018]BAM: Bottleneck Attention Module PDF:1807.06514.pdf (arxiv.org) 为使神经网络获得更强的表征能力,在文中作者提出了一种 ...
- 注意力机制学习(一)——通道注意力与pytorch案例
文章目录 一.通道注意力机制简介 二.通道注意力机制pytorch代码 1. 单独使用通道注意力机制的小案例 2. 使用通道注意力机制的小案例 一.通道注意力机制简介 下面的图形象的说明了通道注意力机 ...
- 注意力机制学习笔记二(Attention-GAN、SAGAN、YLG-SAGAN)
一.Attention-GAN 论文地址:Attention-GAN for Object Transfiguration in Wild Images Object Transfiguration不 ...
最新文章
- python使用matplotlib可视化饼图(pie plot)、可视化嵌套的环形饼图(Nested circular pie chart)
- linux shell set 赋值,请教linux下shell 中 set 的用法?
- 欢迎进入 K同学啊 的博客目录(全站式导航)
- mac安装telnet 超简单 复制telnet文件即可
- linux 命令行使用技巧linux 下的文件管理
- android主板接口定义,范例解析:学习Android的IPC主板模式
- window 任务管理器
- 做个高颜值的优秀按钮,用 CSS3 实现社交按钮动画
- Mybatis 插入数据后返回自增主键ID
- 在Windows 7 专业版 SP1安装多语言包的办法 摘录
- 性能测试工具_K6性能测试工具的使用入门
- snap chrominu has install-snap change in progress
- 《程序员代码面试指南》总结
- LARS算法---十折交叉验证
- 尚乘集团联手其蛛网生态圈成员及战略伙伴布局进驻元宇宙
- 低代码指南100方案:28高效HR如何做好面试管理,提高招聘效率?
- java计算机毕业设计-智慧农业水果销售系统源码+mysql数据库+系统+lw文档+部署
- 关于AWB的肤色问题
- 五、传输层(三)TCP
- 中国大陆程序员2020年工资城市分布图