一、先从一个奇怪的实验说起
想象一下这个场景:你正在训练一个视觉模型来识别图片里的猫。你给它看一张猫坐在沙发上的照片,模型说:「这是猫。」准确无误。
但当你问它:「你『看』到了什么?」
它指着沙发、指着地毯、指着墙上的挂饰——唯独没有指着那只猫。
这听起来很荒谬,对吧?但这正是 Vision Transformer(ViT)过去几年的真实写照。
香港大学程石团队在今年 CVPR 2026 上发表的论文 "Vision Transformers Need More Than Registers"(LaSt-ViT),揭示了这个令人困惑的现象,并只用一招就解决了它。
二、ViT 的「近视」症状:能分类,却看不懂
那个反直觉的发现
研究团队做了一个简单到令人发指的实验:
把图片里模型「最关注」的 50% 区域直接涂黑,看看会发生什么。
你猜怎么着?
准确率不仅没降,反而还提升了 1.2%。
这就像一个人声称自己看懂了这张图是「猫」,但当你把他声称看到的部分全部遮掉,他的判断反而更准确了。这说明什么?
他根本就没在看猫。他在看背景。
Patch Score:照妖镜下的真相
研究团队发明了一个简单的探测工具,叫做 Patch Score——测量每个图像块与全局分类 token 的相似度。
理论上,前景(猫)的分数应该高,背景(沙发)的分数应该低,对吧?
结果是:恰恰相反。
| 区域 | Patch Score 分布 |
|---|---|
| 前景(猫) | 集中在低分区域 |
| 背景(沙发/地毯) | 占据高分尾巴 |
这张图清晰地告诉我们:ViT 的 CLS token 主要在和背景「对话」,前景反而被冷落了。
Point-in-Box:定量宣判
为了量化这个问题,研究者提出了 Point-in-Box(PiB) 指标——最高分 patch 落在标注框内的比例。
- ResNet-50:PiB 随训练稳步提升
- ViT-B/16:PiB 从一开始就卡在 0.42 左右,训练到最后也只微涨到 0.44
这意味着什么? 意味着 ViT 从一开始就走错了路,而且一路走到黑,从来没改过。
三、病根诊断:「懒惰聚合」——ViT 的捷径依赖症
为什么 ViT 会「近视」?
研究者提出了一个核心假说:Lazy Aggregation(懒惰聚合)。
想象你在学习识别鸟类。老师给你看一张鸟站在树枝上的照片,告诉你:「这是知更鸟。」
你有两种学习方式:
- 认真观察鸟的特征:羽毛颜色、喙的形状、体型大小
- 偷懒看背景:「嗯,这种树皮纹理通常和知更鸟一起出现,我记住树皮就行了」
ViT 选择了第二种。为什么?
两大元凶
元凶一:粗粒度语义监督(Coarse-grained Semantic Supervision)
ImageNet 的训练标签是什么?是一个图片级的单词:「猫」。
模型没有得到任何关于「猫在哪里」的信息。对它来说,图片里的每一个像素都是潜在的证据。
而自然图像有个特点:背景 patch 数量远多于前景。一只猫可能只占图片的 20%,剩下 80% 是沙发、地毯、窗户。
模型很快学到一个「优化捷径」:与其费力去识别那 20% 的猫,不如利用那 80% 的背景相关性。
元凶二:全局依赖(Global Dependencies)
ViT 的自注意力机制允许任意两个 patch 直接通信。这意味着前景的信息可以被「扩散」到背景 patch 上。
研究者做了一个验证实验:把 patch size 从 16×16 增加到 28×28,背景 token 减少了约 10%。
结果:
- PiB 从 0.44 提升到 0.52 ✅
- 但分类准确率从 62% 掉到 55% ❌
这说明减少背景 token 确实能让模型「看」得更准,但粗暴的方法会伤害识别能力。
另一个验证:把全局注意力换成窗口注意力(限制通信范围)。
结果:PiB 提升,但准确率下降。
结论:全局依赖确实在助长「懒惰聚合」,但简单的限制又会得不偿失。
四、LaSt-ViT 的「一招」:频域选择性聚合
LazyStrike 的核心思想
既然问题出在「CLS token 被背景带偏了」,那解决方案就很清晰:
让 CLS token 只「听」那些真正重要的前景 patch 的话。
具体怎么做?
研究者设计了一个基于频域分析的 token 选择机制:
# 核心思想:通过频域滤波识别变化剧烈的区域(通常是前景物体边缘)
x = self.encoder(x)
x_detach = x[:, 1:] # 去掉 CLS token
# FFT 到频域
x_freq = torch.fft.fft(x_detach, dim=-1)
# 应用高斯核(突出中频信息)
gs_k = self.gaussian_kernel_1d(kernel_size, sigma)
x_freq = torch.fft.fftshift(x_freq, dim=-1)
x_freq = x_freq * gs_k
x_freq = torch.fft.ifftshift(x_freq, dim=-1)
# 回到时域
x_filtered = torch.fft.ifft(x_freq, dim=-1).real
# 计算每个 patch 的「重要性分数」
diff = x_detach / torch.abs(x_filtered - x_detach)
# 选择最重要的 patch
_, indices = torch.topk(diff, k=k, dim=1, largest=True)
sel_p = torch.gather(x_detach, 1, indices)
# 新的 CLS token 只聚合选中的前景 patch
cls_token = torch.mean(sel_p, dim=1)
为什么用频域?
因为前景物体通常有清晰的边缘和纹理变化,在频域里表现为特定的频率成分。背景通常是平滑的或重复的,频率特性不同。
这就像:照片里猫的边缘是高频信息,沙发的纯色区域是低频信息。通过频域滤波,模型能自动识别出「哪里有东西」。
五、实验验证:一招通吃三大范式
LaSt-ViT 最惊人的地方在于:它在三种完全不同的监督范式下都有效。
1. 全监督(Label Supervision)
在 VOC12 粗分割任务上:
| 模型 | mIoU | 提升 |
|---|---|---|
| ViT-B/16 | 22.3% | - |
| + LazyStrike | 32.8% | +10.5% |
| ViT-S/16 | 29.5% | - |
| + LazyStrike | 41.9% | +12.4% |
而且,分类准确率不降反升——这意味着模型不仅看得更准,识别能力也更强了。
2. 文本监督(Text Supervision)
在 CLIP 模型上应用 LazyStrike:
| 基准 | CLIP ViT-B/16 | + LazyStrike |
|---|---|---|
| Pascal | 11.2% | 15.2% (+3.9%) |
| Cityscapes | 6.5% | 12.1% (+5.6%) |
| VOC | 49.0% | 75.0% (+26.0%) |
CLIP ViT-L/14 在 VOC 上更是从 17.1% 暴涨到 72.4%。
3. 自监督(Self-Supervision)
DINO-v1 + LazyStrike 在语义分割上:
| 模型 | mIoU | 提升 |
|---|---|---|
| ViT-S/16 (DINO) | 47.7% | - |
| + LazyStrike | 55.1% | +7.4% |
4. 无监督目标发现
这是最令人惊喜的:原本只有自监督模型(如 DINO)才有的「涌现分割能力」,现在全监督模型也有了。
在 VOC 2007 上的 CorLoc 指标:
| 方法 | CorLoc | 速度 (img/s) |
|---|---|---|
| DINO-seg | 61.7% | - |
| LOST | 61.7% | - |
| LaSt-ViT | 64.4% | 55.9 |
LaSt-ViT 不仅准确率最高,速度也是最快的。
5. 开放词汇检测与分割
在 OV-COCO(开放词汇 COCO)新类别上:
| 模型 | AP | 提升 |
|---|---|---|
| F-ViT ViT-B | - | - |
| + LazyStrike | - | +15.8% |
| F-ViT ViT-L | - | - |
| + LazyStrike | - | +14.4% |
六、可视化:模型真的「学会」了看前景
研究者提供了直观的结果可视化:
Patch Score 热力图
Before(标准 ViT):
- 高亮区域集中在背景
- 猫的身体反而是暗的
After(LaSt-ViT):
- 高亮区域精准覆盖前景物体
- 背景和前景的区分清晰可见
PCA 特征可视化
对 patch 特征做 PCA,取前三个主成分可视化:
- 标准 ViT:前景和背景的特征纠缠在一起,难以区分
- LaSt-ViT:前景特征被清晰地分离和突出,甚至能区分物体的不同部分
七、启示:范式意义与深远影响
对 ViT 设计的启示
1. Registers 不是根本解决方案
之前的研究(如 DINOv2)发现 ViT 会出现「高范数 token」现象,于是引入 Registers 来解决。但 LaSt-ViT 的研究表明:高范数 token 只是症状,不是病因。
真正的病因是「懒惰聚合」——模型被迫用背景来编码全局语义,导致某些 token 承载过多信息,范数异常。
2. 全局注意力是把双刃剑
全局依赖确实对分类有帮助,但也为「偷懒」提供了便利。LaSt-ViT 提供了一种更精细的方案:保留全局结构,但选择性聚合。
3. 粗粒度监督的局限性
ImageNet 式的图片级标签虽然便宜,但引导模型走捷径。LaSt-ViT 证明,在不增加标注成本的前提下,通过机制设计也能引导模型关注正确区域。
与多模态模型的关联
CLIP 等多模态模型在 LaSt-ViT 上获得了巨大提升,这意味着:
视觉-语言对齐的质量,很大程度上取决于视觉端是否真的「看」对了地方。
如果视觉模型一直在看背景,它和文本的对应关系必然是扭曲的。
潜在应用场景
- 医学影像:帮助模型关注病灶区域而非背景组织
- 自动驾驶:让模型真正关注行人、车辆而非路面纹理
- 内容审核:精准定位违规内容位置
- 机器人视觉:理解操作对象的空间位置
八、费曼视角的审视
让我以费曼的视角来审视这项工作:
1. 命名 ≠ 理解
之前大家给 ViT 的各种问题起了很多名字:「高范数 token」「注意力崩溃」「特征伪影」... 但 LaSt-ViT 团队问了一个更根本的问题:这些现象背后的统一机制是什么?
他们发现,所有这些看似不同的问题,其实都源于同一个根源:懒惰聚合。
这就是真正的理解——不是给症状贴标签,而是找到病因。
2. 演示 > 论证
研究者没有写几百页的理论证明,而是做了一个 10 秒就能理解的演示:
「你看,mask 掉 50% 的『高关注区域』,准确率不降反升。」
这个实验比任何数学公式都更有说服力。
3. 从具体到一般
他们没有从「注意力机制的数学性质」出发,而是从「猫和沙发」这个具体场景出发,问了一个朴素的问题:
「如果模型真的在看猫,为什么遮掉沙发会让它判断更准确?」
然后他们顺着这个问题,一步步追溯到训练机制、网络结构、监督信号...
这就是费曼式的探索路径:从异常现象出发,而不是从理论假设出发。
九、结语
LaSt-ViT 的价值不仅在于它提供了一个好用的模块,更在于它改变了我们理解 ViT 的方式。
它告诉我们:
- ViT 不是「天生」就能看懂图像的——它的「近视」是一种系统性的训练偏差
- 分类准确率高 ≠ 真正理解图像——模型可能在利用我们不希望的捷径
- 一个简单的方法可以同时解决多个问题——前提是找到真正的根源
这篇论文的名字叫 "Vision Transformers Need More Than Registers"——ViT 需要的不仅仅是 Registers。
它需要的是:真正「看懂」图像的能力,而不是「蒙对」答案的技巧。
参考信息
- 论文标题: Vision Transformers Need More Than Registers
- 会议: CVPR 2026
- 作者: Cheng Shi, Yizhou Yu (香港大学), Sibei Yang (中山大学)
- arXiv: https://arxiv.org/abs/2602.22394
- 代码: https://github.com/ChengShiest/LAST-ViT
- LaSt 含义: LazyStrike —— 打击「懒惰聚合」
「这就是科学的本质:不是因为你被告知,而是因为你看到了。」 ——理查德·费曼
#CVPR2026 #ViT #视觉Transformer #自监督 #多模态 #小凯
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。