视觉Transformer的“近视眼”手术:详解CVPR 2026爆款论文 LaSt-ViT

在计算机视觉领域,Vision Transformer (ViT) 已经成为当之无愧的基石模型。无论是图像分类、目标检测还是语义分割,ViT 都展现出了统治级的表现。然而,你的 ViT 真的“看懂”图片了吗?
想象这样一个场景:你给模型看一张“猫坐在沙发上”的照片,模型准确地输出了“猫”。但当你用可解释性工具查看模型的注意力(Attention)时,却发现它死死盯着沙发、地毯和背景墙,唯独没有看那只猫。
这听起来很荒谬,但却是 ViT 过去几年的真实写照。在 CVPR 2026 上,来自香港大学和中山大学的研究团队发表了一篇引人深思的论文——《Vision Transformers Need More Than Registers》。他们不仅揭示了这一反直觉现象的根源,还提出了一种极其优雅的解决方案:LaSt-ViT (LazyStrike ViT)。
今天,我们就来深度拆解这篇论文,看看 LaSt-ViT 是如何治好 ViT 的“近视眼”,让机器真正学会“看”图像的。
一、一个反直觉的现象:ViT 的“懒惰”与“捷径”
研究团队做了一个简单到令人发指的实验:他们把图片里模型“最关注”(注意力权重最高)的 50% 区域直接涂黑,然后再让模型去分类。
你猜结果怎么着?模型的准确率不仅没有下降,反而还提升了!
这就像一个学生声称自己看懂了黑板上的解题步骤,但当你把他盯着看的部分全挡住时,他反而考得更好了。这说明了一个残酷的真相:模型根本就没有在看目标物体,它在利用背景作弊。
作者将这种现象命名为 Lazy Aggregation(懒惰聚合)。在粗粒度语义监督(比如只给一张图打上“猫”的标签,或者一段文本描述)和全局注意力的驱动下,ViT 发现了一条“捷径”:与其费力去提取复杂的前景目标特征,不如直接用大面积的、语义无关的背景 Patch 来代表整张图像的全局语义。
二、照妖镜:Patch Score 与 伪影 (Artifacts)
为了科学地量化这种“偷懒”行为,作者引入了一个统一的评估指标:Patch Score。
它的定义非常直观:图像中各个 Patch 的特征与 CLS Token(代表全局语义)之间的相似度。
在理想情况下,既然图片标签是“猫”,那么猫所在区域的 Patch Score 应该最高。但在传统的 ViT 中,研究人员观察到了严重的 伪影(Artifacts):
- 背景高分:非前景区域(背景)出现了异常高的 Patch Score。
- 特征错位与高范数:伴随着背景高分,模型中出现了极高范数(High-norm)的 Token,导致特征空间严重错位。
此前,Meta 团队在 DINOv2 中提出了加额外的 Registers(寄存器 Token)来吸收这些冗余信息,试图缓解高范数问题。但 LaSt-ViT 的作者一针见血地指出:“Vision Transformers Need More Than Registers”(ViT 需要的不仅仅是寄存器)。Registers 治标不治本,并没有解决模型依赖背景的“懒惰聚合”本质。
三、LaSt-ViT 的破局之道:频域选择性聚合
既然问题出在 CLS Token 错误地聚合了背景信息,那么解决方案就是:强制 CLS Token 锚定在真正的前景区域上。
为此,作者提出了 LaSt-ViT (LazyStrike ViT),它摒弃了标准的 CLS Token 提取方式,引入了一种极其巧妙的频域感知选择性聚合机制(Frequency-aware Selective Aggregation)。
让我们看看官方开源的 PyTorch 代码核心逻辑:
# 传统的 ViT 做法:直接取第一个 Token 作为 CLS Token
# cls_token = x[:, 0:1]
# LaSt-ViT 的做法:
x_detach = x[:, 1:] # 取出所有的 Patch Token
# 1. 转换到频域
x_fft = torch.fft.fft(x[:, 1:], dim=-1)
# 2. 频域中心化并应用一维高斯核滤波 (Gaussian Kernel)
gs_k = self.gaussian_kernel_1d(kernel_size, sigma)
x_fft = torch.fft.fftshift(x_fft, dim=-1)
x_fft = x_fft * gs_k
x_fft = torch.fft.ifftshift(x_fft, dim=-1)
# 3. 转换回空域
x_filtered = torch.fft.ifft(x_fft, dim=-1).real
# 4. 计算原始特征与滤波后特征的差异,以此评估 Token 的信息量
diff = x_detach / torch.abs(x_filtered - x_detach)
# 5. 选出得分最高的 Patch(真正的前景)
_, indices = torch.topk(diff, k=1, dim=1, largest=True)
sel_p = torch.gather(x_detach, 1, indices)
# 6. 将精选的前景 Patch 聚合成最终的 CLS Token
cls_token = torch.mean(sel_p, dim=1)
return cls_token
原理解析:
背景通常是低频的、平滑的,而前景目标往往包含更多的高频细节。LaSt-ViT 通过快速傅里叶变换(FFT)将特征转换到频域,利用高斯核进行处理,从而精准地评估每个 Token 的信息贡献度。模型自动学会了将注意力转移到前景物体上,彻底切断了利用背景“偷懒”的捷径。
四、惊艳的实验结果
LaSt-ViT 的这种“微创手术”带来了立竿见影的效果,在三大监督范式(标签监督、文本监督 CLIP、自监督 DINO)下均表现出强大的通用性:
- 彻底消除伪影:无论是 Patch Score 伪影还是高范数 Token(High-norm token)问题,都被 LaSt-ViT 完美消除,特征对齐变得极其精准。
- 涌现出强大的零样本分割能力:在没有进行任何像素级标注训练的情况下,LaSt-ViT 展现出了惊人的涌现语义分割(Emergent Semantic Segmentation)能力。模型终于知道“猫”到底长在图片的哪个像素位置了。
- 下游任务全面霸榜:在目标发现、语义/实例分割、开放词汇检测(Open-vocabulary detection)等 12 个主流基准测试中,LaSt-ViT 均实现了稳定且一致的性能提升。
五、总结与启发
LaSt-ViT 的出现,不仅仅是给 ViT 增加了一个即插即用的模块,更重要的是它纠正了我们对大模型学习机制的认知偏差。
过去我们往往认为,只要分类准确率高,模型就一定“理解”了图像。但 LaSt-ViT 告诉我们:高准确率 ≠ 真正的理解,模型可能只是在利用我们意想不到的捷径。通过深入探究 Patch Score 和频域特征,程石团队找到了真正的病灶,并用最优雅的数学工具(FFT)完成了这台“近视眼手术”。
如果你正在使用 ViT 作为视觉基础模型(Foundation Model),强烈建议尝试接入 LaSt-ViT 的机制。告别“偷懒”的 ViT,让你的模型真正睁开眼睛看世界!
参考资料:
- 论文标题:Vision Transformers Need More Than Registers (CVPR 2026)
- 官方开源代码:GitHub - ChengShiest/LAST-ViT
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)