局部注意力视觉Transformer Locality-Attending Vision Transformer
为ViT添加可学习高斯核偏置注意力,显著提升分割性能且不损害分类精度
前置知识
Vision Transformer (ViT)
Vision Transformer是一种将图像分割为固定大小的patch(如16×16像素),将每个patch展平为向量后作为token输入Transformer编码器的视觉骨干网络。ViT通过全局自注意力机制捕获长程依赖关系,在ImageNet等大规模分类任务上表现优异。标准ViT包含一个[CLS]分类token和若干空间patch token,经过多层自注意力和前馈网络后,仅使用[CLS] token的输出送入分类头进行预测。
本文的核心工作是改进ViT的注意力机制和token表示,因此理解ViT的基本架构(patch embedding、自注意力、[CLS] token、分类头)是理解本文方法的前提。
自注意力机制 (Self-Attention)
自注意力通过Query、Key、Value三个矩阵计算token间的相似度。给定输入 $x$,计算 $Q=xW_q$、$K=xW_k$、$V=xW_v$,注意力输出为 $Z = \text{softmax}(QK^\top/\sqrt{d})V$,其中 $d$ 是维度。这意味着每个token都会关注所有其他token,产生全局注意力模式。在分类任务中,这种全局注意力有助于捕获语义信息,但可能忽略局部空间细节。
本文的核心创新是在注意力logits中添加高斯核偏置 $S$,修改为 $Z = \text{softmax}(QK^\top/\sqrt{d} + S)V$,因此理解标准自注意力的计算流程是理解GAug注意力的基础。
密集预测任务 (Dense Prediction)
密集预测任务要求对图像中的每个像素或每个patch进行预测,典型任务包括语义分割、目标检测、实例分割等。与分类任务只需一个全局标签不同,密集预测需要保留精细的空间位置信息和局部特征。评估指标通常使用mIoU(平均交并比),衡量预测分割与真实标注的重叠程度。
本文的动机正是ViT在密集预测上的不足——全局注意力稀释了局部空间信息,导致分割性能受限。理解密集预测任务的特性有助于理解为什么需要增强ViT的局部性。
高斯核 (Gaussian Kernel)
高斯核是一种基于距离的平滑衰减函数,形式为 $G_{pt} = \exp\left(-\sum_{m=1}^{2} \frac{D_{ptm}^2}{2\Sigma_{pm}}\right)$,其中 $D_{ptm}$ 是patch $p$ 和 $t$ 在第 $m$ 个坐标维度上的平方差,$\Sigma_{pm}$ 是可学习的方差参数。高斯核的特性是:距离越近权重越大,距离越远权重越小,且衰减是平滑连续的。方差参数控制有效感受野的大小——小方差产生尖锐的局部聚焦,大方差接近均匀分布。
高斯核是GAug注意力的核心组件,通过将其添加到注意力logits中,为每个token引入空间位置感知的局部性偏置,使得相邻patch获得更高的注意力权重。
Global Average Pooling (GAP)
全局平均池化是一种将所有空间token的特征取平均值来生成全局表示的方法,常用于替代[CLS] token进行分类。Swin Transformer等模型使用GAP代替[CLS] token。GAP的问题在于它对所有patch施加均匀的梯度流——背景patch和前景重要区域获得相同的梯度信号,这在分割任务中会导致次优的token表示。
本文提出的PRR(Patch Representation Refinement)正是作为GAP的替代方案,通过参数自由的多头自注意力实现非均匀的token聚合,保留每个patch的独特贡献。
研究动机
Vision Transformer通过全局自注意力机制在图像分类任务中取得了显著成功,能够捕获任意距离的依赖关系。然而,这种全局聚焦机制对语义分割等密集预测任务造成了根本性的挑战。分类训练使得patch token逐渐丧失局部结构信息,在深层中趋向于与[CLS] token对齐——论文在附录F中通过定量分析证实,ViT在最后几层中patch token与[CLS] token的余弦相似度持续上升,而与空间邻居的相似度下降。这意味着精细的空间信息在深层被稀释,导致分割性能受限。例如,标准ViT-Tiny在ADE20K上仅达到17.30 mIoU,远低于Swin的25.58 mIoU。此外,使用GAP的模型虽然改善分类,但在分割任务中可能反而降低性能(如ViT-Base使用GAP后ADE20K从28.40降至27.99),因为均匀梯度流迫使所有patch token匹配分类器原型,忽略了前景与背景的重要性差异。
本文的目标是本文的目标是在不改变ViT训练范式和分类性能的前提下,设计一个轻量级、模块化的附加组件(add-on),使得标准ViT在仅进行图像级分类训练后,就能在语义分割等密集预测任务上获得显著提升。具体来说,作者希望通过最小的架构改动,使ViT的预训练能够以'分割感知'(segmentation-in-mind)的方式进行,同时保持ViT架构的简洁性和与基础模型(如CLIP、DINO)的兼容性。目标是让ViT在保持 $O(n^2)$ 全局注意力能力的同时,增强局部空间细节的编码,使patch token在最终层仍然保留有意义的空间表示。
与已有工作不同的是,现有的改进方案存在明显的局限性:层次化骨干网络(如Swin、PVT)需要非平凡的架构改动,引入新的stage或token合并模块;卷积混合方法添加额外模块需要调优,降低即插即用兼容性;窗口注意力等局部机制限制了全局交互能力;位置编码(如RoPE)与注意力局性性是正交的。本文的独特切入角度是:不替换或修改ViT的核心架构,而是添加一个极简的模块化组件,从两个互补层面同时增强局部性——(1) 在注意力计算层面,通过可学习高斯核软性偏置注意力朝向局部邻域;(2) 在token表示层面,通过参数自由的注意力聚合确保patch token在最终层保持有意义的空间表示。这种'软约束'而非'硬限制'的方法保留了全局注意力的灵活性,同时增强了局部结构的编码。
核心方法
LocAtViT的核心思想是为标准ViT添加两个互补的模块化组件:高斯增强注意力(GAug)和Patch表示精炼(PRR)。直觉上,如果将ViT的注意力比作'全面搜索',GAug就像是给每个token一个'邻近优先'的偏好——让token更多关注空间上靠近的patch,但不完全阻止远距离交互。PRR则解决了另一个问题:在分类训练中,只有[CLS] token接收梯度信号,patch token的表示在最终层可能退化。PRR通过一个参数自由的注意力操作,让所有patch token相互聚合信息后再送入分类头,确保每个patch位置都能获得有意义的梯度流。这两个组件分别作用于ViT的不同阶段:GAug在每一层的自注意力中引入局部偏置,PRR在分类头之前进行token表示精炼。它们通过梯度路径耦合——PRR将梯度路由到patch token,使得最后一层GAug的参数能够有效学习。
本文的核心创新点与已有方法的本质区别在于'软性局部偏置'的设计哲学。不同于窗口注意力(Swin)硬性限制交互范围、或卷积混合方法替换核心组件,LocAtViT通过添加一个可学习的高斯核矩阵 $S$ 到注意力logits中,实现数据驱动的软性局部约束。关键在于:(1) 高斯核的方差 $\Sigma$ 是从查询向量 $q_{sp}$ 预测的($\Sigma = f(q_{sp}W_\sigma)$),这意味着不同patch可以根据内容自适应调整局部感受野大小;(2) 引入可学习缩放因子 $\alpha = \text{softplus}(q_{sp}W_\alpha)$ 来平衡高斯偏置与原始注意力logits的尺度,使得模型可以选择性地在不同位置放大或缩小局部性偏置。这与固定窗口或固定卷积核的方法形成鲜明对比——LocAtViT的局部性是动态的、内容相关的、可学习的。此外,PRR作为GAP的替代方案,通过参数自由的多头自注意力实现非均匀梯度分配,这是对ViT token表示质量问题的直接回应。
方法步骤详情
LocAtViT的方法包含以下关键步骤:(1) 高斯增强注意力(GAug):在每一层自注意力中,首先从空间查询矩阵 $q_{sp} \in \mathbb{R}^{hw \times d}$ 预测每个patch的二维方差 $\Sigma = f(q_{sp}W_\sigma) \in \mathbb{R}^{hw \times 2}$,其中 $f$ 是缩放sigmoid确保正值有界。然后计算patch网格的成对平方差 $D_{ptm} = (P_{pm} - P_{tm})^2$,构造高斯核矩阵 $G_{pt} = \exp\left(-\sum_{m=1}^{2} \frac{D_{ptm}^2}{2\Sigma_{pm}}\right)$。接着通过 $\alpha = \text{softplus}(q_{sp}W_\alpha)$ 预测每行缩放因子,构造补充矩阵 $S = \text{diag}(\alpha) \cdot G$([CLS]行列补零)。最后修改自注意力为 $Z = \text{softmax}(QK^\top/\sqrt{d} + S)V$。(2) Patch表示精炼(PRR):在分类头之前,将最终层输出 $x \in \mathbb{R}^{(1+hw) \times C}$ 重塑为 $H$ 个头 $x_i \in \mathbb{R}^{(1+hw) \times d}$,计算 $x_i^+ = \text{softmax}(x_i x_i^\top/\sqrt{d}) x_i$,再拼接回 $x^+$。将 $x^+$ 的[CLS] token送入分类头。(3) 训练:使用标准ImageNet分类训练(300 epochs, AdamW, 学习率0.001,batch size 1024),不改变训练范式。分割评估使用冻结backbone + 1层MLP,20K迭代训练。
技术新颖性
LocAtViT的技术新颖性体现在多个层面。首先,将高斯核引入注意力logits作为可学习的空间偏置,这是一种优雅的混合方案——既不像窗口注意力那样硬性限制交互,也不像卷积那样引入空间共享的固定核。高斯核的方差从查询向量动态预测,实现了内容相关的自适应局部感受野,这在现有方法中是独特的。其次,可学习缩放因子 $\alpha$ 的设计解决了高斯偏置与原始注意力logits之间的尺度匹配问题,同时允许模型在不同token位置选择性地调整局部性强度。第三,PRR作为参数自由的token聚合操作,巧妙地解决了ViT分类训练中patch token梯度流不足的问题——这是现有文献中被忽视的关键问题。PRR与GAP的对比实验表明,非均匀梯度分配对分割至关重要。最后,GAug和PRR通过梯度路径的耦合设计(PRR为最后一层GAug提供梯度)体现了对ViT训练动态的深入理解。整个方法仅增加约2,340个参数(Base模型的0.003%),计算开销可忽略不计。
实验结果
LocAtViT在多个基准和多种骨干网络上展示了显著且一致的性能提升。在ADE20K分割基准上,LocAtViT-Tiny相比ViT-Tiny提升6.17%(17.30→23.47 mIoU),LocAtViT-Base提升4.24%(28.40→32.64 mIoU)。在PASCAL Context上,Tiny和Base分别提升4.86%和2.25%。在COCO Stuff上,分别提升5.86%和3.19%。关键的是,分割性能的提升完全没有牺牲分类精度——LocAtViT-Tiny在ImageNet上反而提升了1.55%(72.39→73.94%),Base提升1.32%(80.99→82.31%)。LocAt还有效提升了其他基线:RegViT-Tiny在ADE20K上获得+8.41%的惊人提升,RoPEViT-Tiny提升5.31%,Swin-Base提升0.99%。在小规模数据集上,LocAt在mini-ImageNet上提升3-6%,CIFAR-100上提升4-7%。在自监督DINO框架中,LocAtViT-S/16在线性分类上提升2.13%,k-NN评估上提升1.89-2.27%。Hummingbird评估进一步证实LocAt增强了特征的空间质量——在PASCAL VOC上,LocAtViT-Tiny的NN检索mIoU提升11.1%(39.2→50.3%)。消融实验表明GAug和PRR各自贡献约一半的性能增益,两者结合效果最佳。LocAtViT在不使用位置编码时仍能捕获空间信息,甚至超过使用PE的标准ViT。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| ADE20K语义分割(Tiny骨干) | mIoU (%) | 23.47 | 17.30 (ViT) | +6.17 |
| PASCAL Context语义分割(Tiny骨干) | mIoU (%) | 38.57 | 33.71 (ViT) | +4.86 |
| COCO Stuff语义分割(Tiny骨干) | mIoU (%) | 26.15 | 20.29 (ViT) | +5.86 |
| ADE20K语义分割(Base骨干) | mIoU (%) | 32.64 | 28.40 (ViT) | +4.24 |
| ImageNet-1K分类(Tiny骨干) | Top-1 Acc. (%) | 73.94 | 72.39 (ViT) | +1.55 |
| ImageNet-1K分类(Base骨干) | Top-1 Acc. (%) | 82.31 | 80.99 (ViT) | +1.32 |
| ADE20K RegViT-Tiny | mIoU (%) | 24.39 | 15.98 (RegViT) | +8.41 |
| PASCAL VOC Hummingbird(Tiny骨干) | mIoU (%) | 50.3 | 39.2 (ViT) | +11.1 |
局限与改进
本文存在若干局限性需要指出。首先,所有评估仅在自然图像数据集上进行,未涉及医学影像、遥感图像、视频等其他领域,这些场景中局部性的重要性可能有不同的表现形式。其次,虽然作者在DINO(ViT-S/16)上验证了LocAt在自监督学习中的有效性,但对大规模基础模型(如CLIP-scale的ViT-L/14)的评估超出计算预算,LocAt在更大模型上的效果尚不确定。第三,GAug在窗口注意力架构(如Swin、GCViT)上的增益相对较小——Swin-Base仅提升0.99% mIoU on ADE20K,GCViT上甚至未观察到改善。这表明当注意力已被架构硬性限制在局部窗口时,额外的高斯偏置作用有限。第四,LocAt的分割评估采用冻结backbone + 简单MLP的设置,虽然这有利于隔离backbone的表示质量,但未与完整的分割pipeline(如使用SegFormer解码器)对比,实际应用效果可能不同。第五,论文未讨论GAug引入的额外推理延迟——虽然参数增加极少,但每层计算高斯核矩阵需要 $O((hw)^2)$ 的额外操作,在高分辨率输入时可能成为瓶颈。
独立分析的弱点
LocAtViT存在几个值得关注的弱点和改进空间。首先,高斯核假设空间邻近性等同于语义相关性,这在某些场景下不成立——例如图像中距离较远但属于同一物体的区域(如长颈鹿的头和脚)应获得相似的注意力,但高斯偏置会降低它们之间的交互强度。改进方向可以考虑引入内容感知的距离度量,或允许高斯核学习非对称的空间偏置。其次,PRR中的参数自由注意力虽然轻量,但缺乏可学习性——引入少量可学习参数(如一个小的投影矩阵)可能进一步提升token聚合的效果。第三,GAug在同一层中对所有注意力头使用相同的高斯偏置,不同头可能需要不同粒度的局部性(有些头关注局部纹理,有些头关注全局语义),让每个头学习独立的 $\Sigma$ 和 $\alpha$ 可能更优。第四,当前方法在每个注意力层都添加GAug,但不同层对局部性的需求可能不同——浅层更需要局部细节,深层更需要全局语义,可以选择性地仅在浅层应用GAug。第五,实验中使用300 epochs训练,较长的训练周期(如DeiT-III的600-1000 epochs)是否能带来更大增益尚未验证。
未来方向
基于LocAtViT的成果,可以延伸出多个有价值的研究方向。首先,将LocAt应用于大规模基础模型(如DINOv2、CLIP-ViT-L/14)是最直接的扩展——这些模型的预训练表示如果能增强局部性,将显著提升零样本分割和开放词汇识别的性能。其次,探索LocAt在其他密集预测任务中的效果,如目标检测(COCO)、深度估计、实例分割等,验证其通用性。第三,将LocAt的'分割感知预训练'理念与对比学习、掩码图像建模等自监督方法结合,可能产生更强大的通用视觉表示。第四,研究LocAt与条件位置编码(CPE)、可变形注意力等其他注意力增强技术的组合效果,探索它们之间的互补性。第五,将LocAt应用于视频理解任务——时间维度上的局部性偏置(关注相邻帧)与空间局部性类似,可能提升视频分割和动作识别的性能。第六,探索LocAt在多模态模型中的应用,如在视觉-语言模型中增强视觉编码器的空间表示质量,可能改善grounding和VQA等任务的性能。作者提出的'分割感知预训练'理念具有广泛的应用前景,值得在更多场景中验证。
复现评估
本文的复现条件非常友好。代码已在GitHub开源(https://github.com/sinahmr/LocAtViT/),基于广泛使用的timm库(PyTorch Image Models)实现,降低了复现门槛。训练使用标准ImageNet-1K数据集(1.28M训练图像),300 epochs训练周期在现代GPU上是可行的。硬件要求方面,作者使用NVIDIA RTX A6000 48GB、V100 32GB和A100 40GB GPU,batch size 1024——对单卡用户可能需要调整batch size或使用梯度累积。LocAt本身仅增加约2,340个参数(Base模型的0.003%),计算开销可忽略不计。分割评估使用MMSegmentation工具箱和简单的1层MLP解码器,设置简洁透明。主要的复现挑战可能在于:(1) 确保高斯核的方差缩放函数 $f$ 的实现与论文一致(缩放至max(h,w),满足 $f(0)=1$);(2) 处理不同分辨率输入时GAug方差的比例缩放;(3) 与Swin、Jumbo等不同基线的对比实验需要确保训练设置一致。总体而言,论文的复现难度较低,代码开源且依赖标准库。
论文图表