Vision Transformers Need More Than Registers¶
会议: CVPR 2026
arXiv: 2602.22394
代码: GitHub
领域: 视觉表征学习 / Vision Transformer 分析
关键词: ViT artifacts, lazy aggregation, patch score, foreground aggregation, register tokens
一句话总结¶
系统分析了 ViT 中广泛存在的 artifact 现象(跨全监督、文本监督、自监督),揭示其根本原因是"lazy aggregation"——ViT 利用语义无关的背景 patch 作为捷径来表示全局语义,提出 LaSt-ViT(LazyStrike ViT)通过频率感知的选择性通道聚合将 CLS token 锚定到前景区域,在 12 个 benchmark 上一致消除 artifact 并提升性能。
研究背景与动机¶
领域现状:ViT 已成为图像识别的事实标准,更重要的是作为通用特征提取器(frozen foundation model)应用于各种下游任务。不同监督方式训练的 ViT 各有所长:全监督/文本监督(如 CLIP)适用于开放词汇任务和 LVLM 视觉编码器,自监督(如 DINO)擅长无监督分割和物体发现。
现有痛点: 1. DINO 发现全监督 ViT 存在 attention deficit 问题 2. CLIPSelf 发现文本监督 ViT 的 dense feature 与文本 cue 不对齐 3. Register 论文发现自监督 ViT(DINOv2)生成 high-norm token artifact,影响物体定位 4. 这些现象暗示 ViT 存在共性的底层问题,但此前无统一解释和解决方案
核心矛盾:ViT 在 image-level 分类上表现优异,但 patch-level 的 dense feature 质量差——高分 patch 落在背景而非前景,且 Register token 只能移除 high-norm 现象但无法解决根本问题(PiB 反而下降)。
本文目标:从第一性原理出发,统一定义、分析和解决不同监督范式下 ViT 的 artifact 问题。
切入角度:提出 Patch Score(CLS-patch 相似度)和 Point-in-Box(PiB)统一度量 artifact,发现根因是 lazy aggregation——全局注意力 + 粗粒度监督 → ViT 走捷径用背景 patch 编码全局语义。
核心 idea:通过频率域稳定性分析区分前景/背景 patch,选择性聚合稳定 patch 到 CLS token,消除 lazy aggregation。
方法详解¶
整体框架¶
LaSt-ViT 的核心是替换 ViT 原有的 CLS token 聚合方式(Attention Pooling 或 GAP),改为基于通道级频率稳定性的 Top-K 选择性聚合。直觉是:前景 patch 的特征在通道维度上更同质(语义一致),因此对低通滤波更稳定。
关键设计¶
-
Patch Score 和 Point-in-Box (PiB) 统一度量:
- Patch Score 定义为每个 patch 特征与 CLS token 的余弦相似度:\(\mathcal{S}_p = \frac{\mathbf{x}_{\text{patch}} \cdot Q_{\text{CLS}}}{\|\mathbf{x}_{\text{patch}}\|_2 \|Q_{\text{CLS}}\|_2}\)
- PiB 度量最高分 patch 是否落在前景标注框内,作为 artifact 严重程度的指标
- 实验发现:ViT 的 PiB 仅 42.7,远低于 ResNet 的 68.4;Register 虽消除 high-norm 但 PiB 反而降至 41.5
- 该度量与监督方式无关,统一适用于全监督、文本监督和自监督 ViT
-
Lazy Aggregation 假说验证:
- masking probe:移除 ViT 中 Patch Score 最高的 50% patch 对 ImageNet 精度几乎无影响甚至略有提升(+1.2%),而移除低分 patch 导致精度骤降(-60% at 70% masking)→ 高分 patch 是语义无关的背景
- 训练动态:ViT 的 PiB 从训练初期就很低(~0.42)且几乎不变,说明 lazy aggregation 是训练早期就形成的内在行为
- 因素分离:(1) 增大 patch size(28→减少背景 token 比例 10%)→ PiB 从 0.44 升至 0.52 但精度降;(2) 用窗口注意力替换全局注意力 → PiB 升至 59.8 但精度从 72.3 降至 63.9
- 结论:粗粒度监督(image-level label)+ 全局依赖(long-range attention)共同导致 lazy aggregation
-
LaSt-ViT:频率感知选择性聚合:
- Stability Score 计算:对 patch 特征做通道维 1D FFT → 乘以高斯低通滤波器 \(\mathbf{g}\) → 逆 FFT 得到低频特征 \(\hat{\mathbf{x}}_{\text{patch}}\)
- 稳定性分数:\(\mathbf{S}_{i,j} = \frac{\hat{\mathbf{x}}_{\text{patch}}[i,j]}{|\hat{\mathbf{x}}_{\text{patch}}[i,j] - \mathbf{x}_{\text{patch}}[i,j]| + \varepsilon}\),分数越高表示该通道该 patch 越稳定(越可能是前景)
- Channel-wise Top-K Pooling:对每个通道 \(j\),选择稳定性最高的 \(K\) 个 patch 取平均作为 CLS token 的该通道值:\(\mathcal{Q}_{\text{CLS}}[j] = \frac{1}{K} \sum_{i \in \mathcal{I}_K(j)} \mathbf{x}_{\text{patch}}[i,j]\)
- Vote Count 可视化:定义 \(v_i = \sum_{j=1}^D \mathbf{1}\{i \in \mathcal{I}_K(j)\}\),高投票 patch 与前景区域高度一致
损失函数 / 训练策略¶
- LaSt-ViT 不引入额外损失函数,仅替换 CLS token 的聚合方式
- 适用于任何 ViT 预训练流程(全监督、CLIP、DINO),作为 drop-in replacement
- 超参数 \(K\) 控制每通道选择的 patch 数量,最优值约为总 patch 数的 50%(如 ViT-B/16 的 196 个 patch 中选 98 个)
- 训练流程与原始 ViT 完全一致,无需额外数据或调参
实验关键数据¶
主实验¶
Artifact 消除(Patch Score / PiB):
| 方法 | High Norm | Point-in-Box (PiB) |
|---|---|---|
| ResNet | ✗ | 68.4 |
| ViT | ✓ | 42.7 |
| ViT + Register | ✗ | 41.5 |
| ViT + LazyStrike | ✗ | 55.1 (+12.4) |
| DINO-ViT | ✗ | 44.5 |
| DINO + LazyStrike | ✗ | 69.7 (+25.2) |
| CLIP-ViT | ✓ | 39.8 |
| CLIP + LazyStrike | ✗ | 50.1 (+10.3) |
零样本语义分割(mIoU %,CLIP ViT-L/14):
| 方法 | VOC20 | ADE20K | Cityscapes | COCO-Stf. |
|---|---|---|---|---|
| CLIP | 17.1 | 1.6 | 2.7 | 3.2 |
| CLIP + LazyStrike | 72.4 (+55.3) | 8.4 (+6.8) | 12.3 (+9.6) | 11.9 (+8.7) |
消融实验¶
CLS 聚合方式对比(OpenCLIP ViT-B/16):
| 方法 | ImageNet Top-1 | VOC20 (seg) | COCO-Stf. (seg) |
|---|---|---|---|
| Attention-Pool | 55.8 | 49.0 | 7.2 |
| Max-Pool | 53.1 | 71.9 | 12.2 |
| LazyStrike K=1 | 53.5 | 72.7 | 13.5 |
| LazyStrike K=49 | 55.8 | 75.8 | 18.5 |
| LazyStrike K=98 | 56.2 | 75.9 | 18.0 |
| LazyStrike K=196 (Full) | 55.3 | 13.5 | 4.8 |
无监督物体发现(CorLoc,DINO ViT-S):
| 方法 | VOC07 | VOC12 | COCO | FPS |
|---|---|---|---|---|
| DINO-seg | 45.8 | 46.2 | 42.1 | 29.4 |
| LOST | 61.9 | 64.0 | 50.7 | 29.4 |
| DINO + LazyStrike | 64.4 | 67.6 | 51.6 | 55.9 |
关键发现¶
- Register token 只是把 high-norm 现象从 feature map 移到 register 上,PiB 反而下降(41.5 < 42.7),说明"Vision Transformers Need More Than Registers"
- LazyStrike 同时消除 high-norm 和 patch score artifact,因为两者都是 lazy aggregation 的不同表现
- 在 CLIP ViT-L/14 上 VOC20 零样本分割 mIoU 从 17.1% 跃升至 72.4%(+55.3%),证明 artifact 消除后 dense feature 质量大幅提升
- LazyStrike 使全监督 ViT 展现出"涌现性分割"能力(PCA 可视化),此前被认为是自监督(DINO)独有的特性
- \(K\) 过大(全部 patch)等价于 GAP,性能退化;\(K\) 过小则丢失太多信息;最优 \(K \approx N/2\)
亮点与洞察¶
- 分析深度出色:从第一性原理出发,通过 masking probe、训练动态追踪、因素分离等实验层层推进,假说验证严谨
- 统一视角: 将三种监督下的不同 artifact 现象归因为同一个根因(lazy aggregation),提供了理解 ViT 行为的新框架
- 方法简洁有效:仅替换 CLS 聚合方式,无需额外模块/数据/损失,即可在 12 个 benchmark 上一致提升
- 颠覆性发现:涌现性分割不是自监督独有的——消除 lazy aggregation 后全监督 ViT 也能展现
局限与展望¶
- 频率域稳定性假设(前景 patch 更稳定)可能在某些场景下不成立(如纹理丰富的前景 vs 均匀背景)
- Channel-wise Top-K 需要额外的 FFT/IFFT 计算,虽然轻量但对实时推理仍有开销
- 仅在 ViT-S/B/L 上验证,未测试更大规模模型(如 ViT-G)
- 训练时 \(K\) 值固定,未探索自适应 \(K\) 值或 learnable 选择机制
- 论文标题暗示 Register 不够好,但未充分讨论 LazyStrike 和 Register 结合使用的效果
相关工作与启发¶
- Register Tokens (Darcet et al.):通过额外 token 吸收 high-norm artifact,但不解决根因
- CLIPSelf:通过额外对齐训练修复 CLIP dense feature,属于后处理方案
- MaskCLIP:首次展示 CLIP 特征可用于零样本语义分割
- F-ViT:frozen CLIP backbone 做开放词汇检测,直接受益于 LazyStrike
- 启发:预训练模型的"捷径学习"是一个普遍问题,理解模型内部行为后用简单方法即可大幅改善
评分¶
| 维度 | 评分 |
|---|---|
| 创新性 | ⭐⭐⭐⭐⭐ |
| 实用性 | ⭐⭐⭐⭐⭐ |
| 实验充分度 | ⭐⭐⭐⭐⭐ |
| 写作质量 | ⭐⭐⭐⭐⭐ |
| 综合 | ⭐⭐⭐⭐⭐ |