其他分享
首页 > 其他分享> > 计算机视觉中的注意力,第 2 部分:CBAM 和 BAM

计算机视觉中的注意力,第 2 部分:CBAM 和 BAM

作者:互联网

计算机视觉中的注意力,第 2 部分:CBAM 和 BAM

Photo by 亚当库尔 on 不飞溅

介绍

在本文中,将研究卷积块注意模块和瓶颈注意模块,这两种用于将挤压和激发式通道注意与空间注意相结合的同类方法。您可以找到本文的 GitHub 存储库 这里 .

卷积块注意模块

遵循基于注意力的网络,尤其是挤压和激发网络的功效, CBAM:卷积块注意模块 提出了卷积块注意模块(CBAM),一种用于卷积神经网络(CNN)的轻量级注意机制。 CBAM 可能被认为是 SE 的扩展,但它们在两个关键方面存在分歧,即添加最大池以实现更精细的信息聚合和包含空间注意力以进一步增强模型的能力。

关于最大池化,作者假设挤压和激发中的平均池化忽略了必不可少的信息,一个潜在的补救措施是用最大池化来补充它。换句话说,虽然平均池化返回每个通道的平滑表示,但最大池化识别最明显和最显着的激活,因此它们相互增强。

可以通过使用两个描述符来完成平均池化和最大池化的集成,这些描述符分别使用平均池化和最大池化聚合空间数据。类似于挤压和激发,它们每个都被传递到瓶颈 MLP 以模拟通道关系,将它们的输出相加以融合它们的信息,应用 sigmoid 函数,并且每个通道乘以其相关的注意力值。

⊕ denotes element-wise addition, and Ⓢ is sigmoid. Only one shared MLP is utilized to save parameters, and that should not affect accuracy too greatly because the max- and average-pooled maps have matching semantics. Image from “CBAM: Convolutional Block Attention Module.”

确实,统一平均池和最大池比单独的池更准确,并且计算复杂度的增加是微不足道的。

CBAM (here only its channel attention) is placed directly before the skip connection within every residual layer. The reduction factor is fixed at 16 throughout. Ibid.

然而,SE 和 CBAM 之间的必要区别在于 CBAM 对空间注意力的使用。与使视觉模型能够动态控制的引导注意力相反 什么 专注于,空间注意力允许他们选择 在哪里 专注在。已经设计了无数复杂的空间注意力方法来支持最先进的模型,但一种简单的方法是反转 CBAM 的通道注意力以针对空间注意力进行定制。

具体来说,数据是沿通道轴的平均和最大池化,结果被连接以获得双通道张量,并且输出通过以 sigmoid 结尾的模块运行,该模块通过提取一维空间来捕获空间间交互注意图。最后,将原始输入中的每个激活乘以其相关的注意力值以获得最终结果。

天真地,上述用于计算注意力的模块可能是 MLP,就像通道注意力的情况一样,但由于一些原因,这并不实用。首先,对于网络早期的大型特征图,全连接层由于其二次成本而效率太低。其次,全连接层的输入维度是静态的,这意味着它不能用于除训练数据之外的任何数据大小。最后,它会具有诸如平移方差之类的特性(即,输入的微小变化会完全改变输出),这对空间数据是有害的。

相反,卷积会更相关。它们价格低廉,能够管理可变分辨率,并且具有固有的有益特性,例如适合空间数据的平移不变性。因此,CBAM 使用卷积来建模空间依赖关系,而没有多层感知器的缺陷(尽管一个缺点是感受野受限于内核大小)。

Ibid.

在通道注意提高分数之后结合此空间注意模块,并为保证最佳性能,对不同的变化进行了实验测试。验证了最佳设置是用于通道压缩的平均和最大池化以及用于卷积的内核大小为 7。

In ResNet-50 + channel, the channel attention is CBAM’s channel attention. 1 X 1 conv replaces average and max pooling in the spatial attention block with a 1 X 1 convolution that reduces the data to one channel for getting a descriptor. Ibid.

The final design of CBAM.

然而,这并不是混合通道和空间注意力的唯一策略。有两种选择,即,I) 在通道注意之前执行空间注意和 II) 并行运行它们,即添加两个注意图以产生 3 维注意张量并将其乘以输入。通道注意其次是空间注意被确定为最佳安排,尽管所有三个都优于挤压和激发。

Ibid.

迄今为止,研究一直围绕着 ResNet-50,但 CBAM 也增强了许多其他架构。

Ibid.

最后,梯度加权类激活映射 (Grad-CAM) 可以通过显示网络强烈关注的区域来提供对视觉模型的定性洞察。借助 CBAM,ResNet-50 可以更好地覆盖目标对象并学会更多地关注相关部分。此外,CBAM 提高了模型对正确类别的置信度(表示为 下面),尽管该论文没有披露当其预测不正确时其置信度如何变化。

Ibid.

Ibid.

瓶颈注意模块

瓶颈注意模块 (BAM) 与 CBAM 由同一研究人员同时发布,整体理念保持不变(即通道注意加空间注意)。尽管如此,两者之间的差距也不容忽视。

论文与官方实现存在一些不一致(例如,合并空间和通道注意力图的技术);本条以后者为准。

BAM 的通道注意力与挤压和激发相同,只是在 ReLU 之前附加了一个批量标准化模块。

Note that it is the attention map that is returned, not the attention map multiplied by the input, and sigmoid is missing. This will shortly be clarified.

对于空间注意,BAM 用 1 X 1 卷积压缩通道(减少因子与通道注意的相同),用几个扩张的 3 X 3 卷积模拟空间交互,并将特征图减少到单个通道另一个 1 X 1 卷积。

Every convolution, other than the last one, is followed by batch normalization and ReLU.

混合 BAM 的两个注意模块是通过将空间注意图与通道一相乘(类似于 CBAM 的并行变化),将结果通过 sigmoid,将输出加一,并将其​​与原始输入相乘来完成的。

有趣的是,在每个阶段之后而不是在每个瓶颈层内定位 BAM 通常更准确,而且成本更低。

BAM refers to bottleneck attention module after every stage, and BAM-C is when it is inside every bottleneck layer. Image from “BAM: Bottleneck Attention Module.”

两个超参数,缩减因子和膨胀率,在 BAM 中起着关键作用,发现它们的理想值分别为 16 和 4。增加膨胀预期会有所帮助,但它在 4 处饱和。有趣的是,更大的缩减比更准确,作者将这种现象归因于过度拟合。

Ibid.

最后,通过一系列卷积神经网络彻底证明了 BAM 的优点。

There is no clear winner between BAM and CBAM. Ibid.

结论

在本文中,研究了卷积块注意模块和瓶颈注意模块,这两种相似的注意机制将 SE 式通道注意与简单的空间注意单元相结合。

在下一篇文章中,将探讨gather-excite,一种可概括的注意力机制, __ 来自大感受野的信息,并以兴奋的方式将其分发回局部特征 __ 模块来评估远程交互。

有关的 文章:

[

计算机视觉中的注意力,第 1 部分:SE、eSE 和 ECA

挤压激发,有效挤压激发,高效通道注意力

Borna-ahz.medium.com

](https://medium.datadriveninvestor.com/attention-in-computer-vision-part-1-se-ese-and-eca-c5effac7c11e)

参考:

[

挤压和激发网络

在这项工作中,我们提出了一种新颖的架构单元“挤压和激励”(SE),它可以自适应地重新校准通道特征响应。

arxiv.org

](https://arxiv.org/abs/1709.01507)

[

CBAM:卷积块注意模块

我们提出了卷积块注意模块(CBAM),这是一种用于前馈卷积神经网络的简单而有效的注意模块。

arxiv.org

](https://arxiv.org/abs/1807.06521)

[

BAM:瓶颈注意力模块

我们提出了一个简单有效的注意力模块,称为瓶颈注意力模块(BAM),可以与任何前馈卷积神经网络集成。

arxiv.org

](https://arxiv.org/abs/1807.06514)

[

计算机视觉中的注意力机制:一项调查

在本次调查中,我们对计算机视觉中的注意力机制进行了全面回顾。

arxiv.org

](https://arxiv.org/abs/2111.07624)

[

GitHub - Jongchan/注意模块

“BAM:瓶颈注意力模块(BMVC2018)”和“CBAM:卷积块注意力模块(ECCV2018)”的官方PyTorch代码

github.com

](https://github.com/Jongchan/attention-module)

社交媒体:

[

博尔纳·艾哈迈德扎德 | GitHub

机器学习开发者

github.com

](https://github.com/BobMcDear)

[

博尔纳·艾哈迈德扎德 |领英

机器学习开发者

链接网站

](https://www.linkedin.com/in/borna-ahmadzadeh/)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/17466/19070600

标签:卷积,CBAM,注意,模块,视觉,BAM,注意力
来源: https://www.cnblogs.com/amboke/p/16660210.html