深度学习进阶(十八)坐标注意力 CA

发布时间:2026/6/26 9:40:30

深度学习进阶(十八)坐标注意力 CA 我们介绍了 ECA它用一维卷积替代了 SE 中的 MLP bottleneck用更少的参数实现了更好的通道注意力。但实际上这套框架里还有别的优化空间在前面的内容里无论是 SE 、 CBAM 还是 ECA 它们的通道注意力子模块第一步都是全局平均池化CBAM 额外加入了最大池化将 的特征图压缩为 。这个过程实际上等价于把所有空间信息做了一个全局平均。对于要得出一个整体性的通道权重来说这看起来是合理的。但还有高手21 年的论文 Coordinate Attention for Efficient Mobile Network Design 提出了新的观点GAP 把空间位置信息全部丢弃了而特征在图像的哪个位置本身就是重要信息。通道注意力完全可以同时编码通道关系和空间位置信息。由此论文提出了坐标注意力Coordinate AttentionCA下面就来详细展开。1. GAP 的局限性#我们还是先展开 CA 的提出动机已知对于第 个通道的特征图 GAP 的操作是从效果上讲GAP 能得到这个通道整体的响应强度。虽然带来了空间信息的损失但因为这不是我们所关注的内容因此仍然合理。但 CA 对此提出了质疑我们从两个问题出发阐述作者的思路。1. 同一通道内特征的大致位置重要吗答案是肯定的。举个例子同一个耳朵轮廓通道它出现在图像的左上角还是右下角对判定这是猫还是狗的决策路径可能完全不同。但 GAP 后这两种情况会得到完全相同的通道描述标量。2. 通道之间位置关系的交互重要吗同样重要。比如耳朵通道和眼睛通道在空间位置上是高度相关的它们应该出现在彼此附近。但这种跨通道的空间位置关联在 GAP 之后完全丢失。ECA 虽然用一维卷积引入了局部通道交互但它交互的是 GAP 之后的标量空间的原始结构也早已被破坏。你可能会想我们这么用本来就是只想算通道注意力空间注意力我有另外的模块去做你干嘛揪着这点不放但 CA 的作者说用我的方法一个模块就可以实现这两个模块的工作而且大多数情况下性能更好。这便是 CA 的出发点如果说 ECA 是 SE 的改进那么从作用效果上来看你也可以把 CA 看作 CBAM 的一种改进。下面就来展开其具体逻辑:2. CA 的具体改进点#既然 GAP 的问题是一次性全局压缩丢失了空间信息那 CA 的解决思路也很直接不要一次性把整个空间压成一个标量。而是沿两个空间方向分别编码保留位置信息。具体来说CA 使用了两路并行的池化操作沿水平方向X 轴池化对每一行做平均池化得到 。沿垂直方向Y 轴池化对每一列做平均池化得到 。用公式表示对于第 个通道就是于是CA 生成了两组向量一个沿高度方向一个沿宽度方向。这两组向量保留了特征沿各自空间方向上的分布信息。如果某个通道在图像的顶部响应强、底部响应弱那么它的 向量会呈现出上大下小的趋势。其实到这里你会发现这还是一个粒度问题原本我们将一整个通道上的信息压缩为一个标量现在我们将其压缩为两个方向上的向量保留了空间维度上的信息让模型可以学习到空间注意力。3. CA 的完整结构#了解了核心思路后我们来展开 CA 模块的完整结构。3.1 信息交互#如图所示得到两路编码 和 后会先将二者沿空间维度拼接送入一个共享的 卷积进行变换再对输出进行应用 BN其中 是非线性激活函数论文中使用的是 h-swish:但论文里也提到这里只是为了引入非线性并不强制某个具体函数。而输出的 是降维比例与 SE 中的含义一致。这一步的目的很明显让水平和垂直两个方向的信息交互融合。3.2 权重生成和注入#完成两个方向上的信息交互后我们就要再把他们拆开将 沿空间维度拆分为 和 然后各自通过一个 卷积恢复到原始通道数 再经过 Sigmoid 得到最终的注意力权重这里权重 在同一行的所有列是共享的而 在同一列的所有行是共享的。最终输入特征图 上的每个位置 会被同时沿两个方向的权重加权也就是说位置 的最终权重是由第 行整体有多重要和第 列整体有多重要共同决定的这也就是“坐标注意力”的含义。这便是 CA 模块的完整逻辑其最大的改进在于将最初的全局池化改为两个方向上的池化。4. CA 的参数量#最后我们再来看看 CA 所需要的参数量首先是对拼接后的特征 进行的 卷积降维这一层的参数量为这一点与 SE 完全一致本质就是一个通道压缩。接下来CA 会分成两路各自通过一个 卷积恢复通道数具体为因此每一路的参数量都是

相关新闻