SeaAttention 挤压增强的轴向transformer

挤压增强的轴向transformer

ICLR2023

简介

视觉transformer(ViT)的计算成本和内存消耗都很大,使得它们难以部署到移动设备上

动机

作者就是为了做一个轻量化的视觉transformer模型,能够部署在移动设备上的模型

方法

本文设计了一个挤压增强的轴向注意力机制,首先在特征图的水平和垂直方向上,通过压缩操作将全局信息保留到单个轴,然后分别用自注意力机制建模轴上的长程依赖,大大降低了计算复杂度

作者的做法还是熟悉的压缩操作,在讲的各种通道注意力机制中都存在

回顾 SENet

通过压缩全局空间信息来获取通道描述符

坐标注意力通过在H方向和W方向上分别压缩,来获得具有方向感知的通道描述符表示

通道注意力中一般压缩完之后,会通过Sigmoid函数来生成权重


在这篇论文, 作者也是在W方向上和H方向上分别压缩之后,应用自注意力机制建模长程依赖,这样的话相当于直接去掉了一个维度,那么在执行注意力机制的时候,复杂度肯定是降低了


对比坐标注意力

前半部分是一样的,后半部分是不一样的

(继续)接着看压缩操作,有效地提取了全局信息,但牺牲了局部细节

因此作者额外通过一个基于卷积的操作,来增强空间细节表示,实现了更好的性能和更低的延迟

压缩操作无论是平均池化还是最大池化,即使提取了最重要的信息,还是会不可避免地丢掉一部分的细节信息,因此作者在这里就是通过一个卷积操作,来提取局部信息,弥补了局部信息提取不足的缺陷

模型图

image-20250425094140290

输入X, 得到QKV 3个矩阵表示

  • 上半部分是细节增强的卷积操作
  • 下半部分是挤压轴向注意力

先看挤压轴向注意力

首先在水平方向,也就是 W 方向进行压缩操作,图中有三个箭头,也就是对 QKV 都进行压缩,得到的 shape 是 $H×1×C$ ,接着在 $H$ 方向,执行多头注意力机制,捕捉$H$方向上的长期依赖性,这里的注意力机制也是原始的注意力,没有使用任何的变体

垂直方向也是一样的道理,在$H$方向上进行压缩得到的shape, 就是 $1×W×C$, 然后在 $W$ 方向执行多头注意力,捕捉W 方向的长期依赖

最后将两部分输出进行相加,和坐标注意力的思想很类似

相加完之后,在图片的每一个像素点上,都能同时具有$H$轴上的位置特征和$W$轴上的一个位置特征

补充:

shape 不同,可以广播

首先忽略掉通道维度,两个向量分别是 $H×1$ (图中所示粉色向量)和 $1×W$ (绿色向量), 可以互相扩充到相应的维度, 具体来说,

粉色向量,复制 4 份,使得和绿色向量的长度保持一致

同样绿色的向量也会复制四份,和粉色向量的高度保持一致

这样就可以相加了

经过这样复制相加,每一个像素点上都具有了$H$方向上的特征,还有 $W$ 方向上的特征,也就是每个像素点都具有了独一无二的特征表示

对于同一行的像素点来说,$W$方向,也就是 $X$ 方向上的特征是不同的,但是是处于同一高度的,也就是说$Y$坐标是相同的,因此$H$方向的特征是相同的

同样对同一列的像素点来说,H方向上的特征是不同的,但是由于它们的$X$坐标是相同的,因此在$W$方向上的特征就是相同的

以上是一个完整的轴向注意力


上半部分:细节增强的轴向卷积

作者通过将QKV,在通道上进行拼接,得到的是张量形状 $H×W×(2C_{qk}+C_v)$

然后通过3×3的卷积, 来提取局部特征,从而来增强局部细节感知,最后通过一个1×1的卷积层,将维度降低到降维到C,与下面这个分支的维度要保持一致

最后进行简单的融合,得到输出特征

总结

作者学习了坐标注意力的思想,为图片中的每个像素,都单独学习一个横向特征和一个纵向特征表示,从而来保证每一个像素点特征的唯一性

启示

只要你拥有两个特征维度,可以按照坐标的这个概念来寻找切入点

👾 本站运行时间:
发表了59篇文章 · 总计11万6千字
使用 Hugo 构建
主题 StackJimmy 设计