SKNet——SENet孪生兄弟篇(2019)

论文

Selective Kernel Networks

https://arxiv.org/abs/1903.06586  2019年

介绍

SKNet使用了两个思路在提高精度:

  • 很多网络使用了各种Trick来降低计算量,比如ResNeXt,计算量大大减少,精度却略有提升。那么如果不牺牲那么多计算量,能否精度提高一些呢?比如使用大一点的Kernel,如 5*5 的卷积提升精度。
  • 结合现在普遍使用的Attention操作

加了上面两个操作之后,显然计算量会上去,于是作者再加了一个Group Convlution来做trade off权衡。

上述结构可以分为三个步骤:

  1. Split:输入为 c*h*w 的特征图, 均表示Group Convlution。这里使用Group Convlution以减少计算量。注意,这里两路Group Convlution使用的卷积核大小不一致,原因在于Motivation中说的第一点,提升精度。
  2. Fuse:通过Split操作分成两路之后,再把两路结果进行融合,然后就是一个Sequeeze and Excitation block。
  3. 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

论文(2018年)提出了一种轻量的注意力模块( CBAM,Convolutional Block Attention Module ),可以在通道和空间维度上进行 Attention 。论文在 ResNet 和 MobileNet 等经典结构上添加了 CBAM 模块并进行对比分析,同时也进行了可视化,发现 CBAM 更关注识别目标物体,这也使得 CBAM 具有更好的解释性。

CBAM 包含2个独立的子模块, 通道注意力模块(Channel Attention Module,CAM) 和空间注意力模块(Spartial Attention Module,SAM) ,分别进行通道与空间上的 Attention 。 这样不只能够节约参数和计算力,并且保证了其能够做为即插即用的模块集成到现有的网络架构中去。通道上的 Attention 机制在 2017 年的 SENet 就被提出,SENet可以参考Attention注意力机制学习(一)------->SENet_RayChiu_Labloy的博客-CSDN博客_senet框架

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被ECCV18接收,BAM被BMVC18接收。

CBAM可以看做是通道注意力机制和空间注意力机制的串联(先通道后空间),BAM可以看做两者的并联

Residual Attention(2017没太理解)

论文

CVPR 2017,港中文+北邮+商汤+清华

https://arxiv.org/abs/1704.06904

介绍

[论文笔记] Residual Attention Network - 知乎

作者提出了一种残差注意力模块。本来在我的理解中,注意力就是为正常的CNN前馈过程加一层权重(可以是对应每层CNN),但是没想到本文还融入了残差设计,并解释了为什么只添加mask在深层之后会导致性能下降。

Dual Attention(2019没搞懂和CBAM的区别)

论文

https://arxiv.org/pdf/1809.02983.pdf

介绍

论文阅读-Dual Attention Network for Scene Segmentation - 知乎

场景分割任务中,需要区分一些容易混淆的类别以及考虑不同外形特征的目标,例如,草原与牧场有时候是很难区分的,公路上的车也存在尺度、视角、遮挡与亮度等的变化。因此,加强特征表达能力是必要的。

解决以上问题的现有方案:

(1)多尺度上下文信息整合

如ASPP、PSPNet、LargeKernel

(2)encoder-decoder结构,融合中层与高层的语义信息

以上方法可以捕获不同尺度的目标,但是它没有利用目标之间的关系,这些对于场景表达也是重要的。

作者在场景分割任务中提出了一个双注意力网络 (DANet) 来自适应地将局部特征与其全局依赖关系集成。具体来说,我们在扩张的 FCN 之上附加了两种类型的注意力模块,它们分别对空间和通道维度的语义相互依赖关系进行建模。

如上图所示。它引入了一种自注意力机制来分别捕获空间和通道维度上的特征依赖关系。具体来说,我们在扩张的 FCN 之上附加了两个并行的注意力模块。一个是位置注意模块,另一个是通道注意模块。对于位置注意模块,我们引入了自注意机制来捕获特征图任意两个位置之间的空间依赖关系。对于某个位置的特征,通过加权求和聚合所有位置的特征进行更新,其中权重由对应的两个位置之间的特征相似度决定。也就是说,任何两个具有相似特征的位置都可以相互促进,而不管它们在空间维度上的距离如何。对于通道注意模块,我们使用类似的自注意机制来捕获任意两个通道映射之间的通道依赖关系,并使用所有通道映射的加权和来更新每个通道映射。最后,融合这两个注意力模块的输出以进一步增强特征表示。

Attention注意力机制学习(二)------->一些注意力网络整理相关推荐

  1. 【动手深度学习-笔记】注意力机制(一)注意力机制框架

    生物学中的注意力提示 非自主性提示: 在没有主观意识的干预下,眼睛会不自觉地注意到环境中比较突出和显眼的物体. 比如我们自然会注意到一堆黑球中的一个白球,马路上最酷的跑车等. 自主性提示: 在主观意识 ...

  2. Pytorch:Transformer(Encoder编码器-Decoder解码器、多头注意力机制、多头自注意力机制、掩码张量、前馈全连接层、规范化层、子层连接结构、pyitcast) part1

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

  3. Transformer、多头注意力机制学习笔记:Attention is All You Need.

    文章目录 相关参考连接: https://blog.csdn.net/hpulfc/article/details/80448570 https://blog.csdn.net/weixin_4239 ...

  4. 注意力机制学习(二)——空间注意力与pytorch案例

    文章目录 一.空间注意力机制简介 二.空间注意力与pytorch代码 三.使用案例 一.空间注意力机制简介 空间注意力的示意图如下: 长条的是通道注意力机制,而平面则是空间注意力机制,可以发现: 通道 ...

  5. 注意力机制 ——学习笔记

    文章目录 一.生物神经网络的注意力 1.1 生物注意力的种类 视觉注意力 听觉注意力 语言注意力 1.2 生物注意力的优势 1.3 注意力与记忆力的关系 1.4 人工神经网络的注意力 二.为什么要使用 ...

  6. 注意力机制学习 BAM

    注意力机制学习-BAM 简介 思考 步骤 代码 实验 最后 简介 2018年BMVC,从通道和空间两方面去解释注意力机制,和CBAM为同一团队打造.论文连接:BAM BAM:Bottleneck At ...

  7. 第七周作业:注意力机制学习的part2

    [BMVC2018]BAM: Bottleneck Attention Module PDF:1807.06514.pdf (arxiv.org) 为使神经网络获得更强的表征能力,在文中作者提出了一种 ...

  8. 注意力机制学习(一)——通道注意力与pytorch案例

    文章目录 一.通道注意力机制简介 二.通道注意力机制pytorch代码 1. 单独使用通道注意力机制的小案例 2. 使用通道注意力机制的小案例 一.通道注意力机制简介 下面的图形象的说明了通道注意力机 ...

  9. 注意力机制学习笔记二(Attention-GAN、SAGAN、YLG-SAGAN)

    一.Attention-GAN 论文地址:Attention-GAN for Object Transfiguration in Wild Images Object Transfiguration不 ...

最新文章

  1. python使用matplotlib可视化饼图(pie plot)、可视化嵌套的环形饼图(Nested circular pie chart)
  2. linux shell set 赋值,请教linux下shell 中 set 的用法?
  3. 欢迎进入 K同学啊 的博客目录(全站式导航)
  4. mac安装telnet 超简单 复制telnet文件即可
  5. linux 命令行使用技巧linux 下的文件管理
  6. android主板接口定义,范例解析:学习Android的IPC主板模式
  7. window 任务管理器
  8. 做个高颜值的优秀按钮,用 CSS3 实现社交按钮动画
  9. Mybatis 插入数据后返回自增主键ID
  10. 在Windows 7 专业版 SP1安装多语言包的办法 摘录
  11. 性能测试工具_K6性能测试工具的使用入门
  12. snap chrominu has install-snap change in progress
  13. 《程序员代码面试指南》总结
  14. LARS算法---十折交叉验证
  15. 尚乘集团联手其蛛网生态圈成员及战略伙伴布局进驻元宇宙
  16. 低代码指南100方案:28高效HR如何做好面试管理,提高招聘效率?
  17. java计算机毕业设计-智慧农业水果销售系统源码+mysql数据库+系统+lw文档+部署
  18. 关于AWB的肤色问题
  19. 五、传输层(三)TCP
  20. 中国大陆程序员2020年工资城市分布图

热门文章

  1. bs7文件.Win7BootUpdater .修改 © MicrosoftCorporation
  2. 关于浏览器和软件的去广告
  3. Python Day7
  4. Excel文件加密方式有几种?
  5. 多目标优化算法:多目标白鲨优化算法MOWSO(提供Matlab代码)
  6. 现代数学发展的大趋势
  7. matlab中离散点连成闭合曲线
  8. 【CV论文阅读笔记】使用DRN网络(双重回归网络)解决SR问题
  9. 百度Web前端开发实战案例解析
  10. 已有的exe,始终带参数执行,不需要每次输入命令行的方法(create sfx archive)