自监督学习 (SSL) 使视觉Transformer (ViTs) 能够在不依赖手动标注数据的情况下学习有意义的图像表示。SSL 通过创建利用图像固有结构的预训练任务来实现这一点。对于 ViTs 而言,这通常涉及将图像分割成图像块(例如 16x16 像素的网格),并训练模型解决诸如重建被遮挡的图像块或对比相似/不相似图像视图的任务。这些任务迫使模型学习图像块之间的空间和语义关系,从而建立对视觉数据的基本理解。例如,一个 ViT 可能会处理一个图像块序列,其中 75% 的图像块被随机遮挡,然后预测缺失的像素值或图像块嵌入——这项技术受到了自然语言处理中遮盖语言建模的启发。
ViTs 的一种常见 SSL 方法是遮盖自编码,例如 MAE (Masked Autoencoder) 等方法。在这种方法中,模型使用 Transformer 编码器-解码器架构学习重建被遮盖的图像块。编码器处理可见图像块,而解码器则根据编码器的输出和遮盖 token 重建完整图像。另一种方法是对比学习,模型学习识别两个增强视图(例如,裁剪、旋转或调整颜色的版本)是否来自同一图像。例如,使用 DINO(一种自蒸馏方法)训练的 ViT 比较不同增强视图的全局和局部图像块级别特征,以创建一致的表示。这些方法利用了 Transformer 建模图像块之间长程依赖关系的能力,使得 SSL 对于 ViTs 尤其有效,相比之下卷积网络则不然。
SSL 对 ViTs 的好处包括减少对标注数据集的依赖以及提高在分类或分割等下游任务上的泛化能力。然而,挑战依然存在。由于自注意力在图像块上的二次复杂度,使用 SSL 训练 ViTs 需要大量的计算资源。此外,设计能够捕获多样化视觉模式的有效预训练任务至关重要。例如,遮盖过少的图像块可能使任务变得微不足道,而过度遮盖则可能限制模型学习有意义上下文的能力。尽管存在这些挑战,SSL 已成为预训练 ViTs 的标准方法,这在 Timm 或 Hugging Face 的实现等框架中可见,其中预训练的 SSL 权重通常针对特定应用进行微调,只需少量标注数据即可。