Self-Supervised Learning
自监督学习 (SSL) 使用标签来自数据本身的任务训练模型,例如填补被遮挡的部分。涵盖方法和用途。
自监督学习 (SSL) 会让模型执行标签来自数据本身的任务,例如预测句子的下一个词、填补隐藏的图像块,或判断同一张照片的两处裁剪是否匹配,从而利用大量无标签数据进行学习。监督学习受限于数据标注,因为数据标注既耗时又昂贵,而原始图像、视频、音频和文本却十分丰富。SSL 利用这些数据预训练通用编码器,再通过微调或训练一个小型预测头,将模型适配到图像分类或目标检测等下游任务,而且所需标签少得多。所有现代大型语言模型 (LLM)都通过这种方式预训练,即像 GPT模型一样,在文本上执行下一个词元预测。Meta 的 DINOv3则将自监督图像预训练扩展到一个 70 亿参数模型,该模型使用 17 亿张图像进行训练。
自监督学习的工作原理#
SSL 方法会定义一个前置任务:隐藏或变换每个输入的一部分,并训练网络还原被移除的内容,或识别保持不变的内容。前置任务本身很少有实际用途。关键在于,完成这个任务会迫使网络学习数据结构,例如物体形状、纹理以及各部分之间的关系;这些特征可以迁移到有标签的任务。预训练之后,可以在冻结特征上通过线性探测评估编码器或使用编码器,也可以微调编码器的所有权重:
主要方法类别#
- 掩码预测:隐藏部分输入并训练模型重建这些内容。BERT 会预测随机屏蔽的词;掩码自编码器会隐藏图像中 75% 的图像块并重建其像素。预测序列中的下一个词元,则是将同一思路应用到文本上。
- 对比学习:为每张图像生成两个增强视图,并训练嵌入表示,使同一张图像的视图相匹配、不同图像的视图不匹配。SimCLR 和 MoCo 是最知名的例子。
- 自蒸馏:学生网络在同一张图像的不同裁剪上学习匹配教师网络的输出;教师网络是学生网络缓慢更新的平均版本,训练中不使用负样本对。BYOL 和 DINO 使用这种方法,而 DINOv2 和 DINOv3 则将其扩展到包含 1 亿多张图像的精选数据集。
- 联合嵌入预测:根据可见区域预测隐藏区域的嵌入表示,让模型学习抽象内容,而不必耗费容量处理像素细节。Meta 的 I-JEPA 和 V-JEPA 将这种方法应用于图像和视频。
方法选择会影响学到的特征。掩码重建保留精细的空间细节,也很适合微调;对比学习和自蒸馏方法则能生成适合冻结使用的特征,因此 DINO 系列编码器很受深度估计和语义分割任务的青睐。
计算机视觉中的自监督学习#
视觉 Transformer与 SSL 很适配:屏蔽完整图像块可以直接对应 ViT 的词元输入,而 ViT 能从比有标签数据集所提供数据更多的训练数据中获益。许多基础模型以自监督编码器为起点。Meta 的 SAM 2可在 Ultralytics 软件包中运行,用于可提示的图像和视频分割;它基于 Hiera 图像编码器,该编码器在任何分割训练开始前都已通过掩码自编码器进行预训练。
应用场景#
- 医学成像:医院持有的扫描图像远多于放射科医生能够标注的数量。先在无标签 X 光、CT 或 MRI 扫描图像上进行预训练,可以得到一个编码器,之后只需少量专家标签,就能让编码器学会肿瘤检测等任务。
- 卫星图像:Meta 使用 4.93 亿张卫星图像训练了 DINOv3 的一个变体,世界资源研究所利用它绘制树冠高度地图。在肯尼亚的一个地区,该模型将早期基于 DINOv2 的地图的平均高度误差从 4.1 米降至 1.2 米。
- 语音识别:wav2vec 2.0 使用 53,000 小时的无标签音频进行预训练,再仅用 10 分钟的转录语音进行微调后,在 LibriSpeech 的 clean 和 other 测试集上分别达到 4.8% 和 8.2% 的词错误率。
自监督学习与相关术语的比较#
- 无监督学习:泛指不使用人工标签进行学习,包括聚类和密度估计。SSL 通常被视为无监督学习的一种形式,但它像监督学习一样进行训练,训练目标则由数据生成。
- 半监督学习:同时使用少量有标签数据和大量无标签数据进行训练。SSL 只用无标签数据进行预训练;两种方法也很适合结合使用:SimCLRv2 先用 ImageNet 1% 的标签微调大型自监督模型,再利用无标签图像对模型进行蒸馏。
- 迁移学习:将预训练模型用于新任务。SSL 是一种无需标签来生成预训练模型的方法。
- 数据增强:通过随机裁剪、颜色变化和翻转来扩充有标签数据集。在对比式 SSL 中,同样的变换用于定义哪些视图属于同一张图像,因此这些变换决定了编码器会学会忽略什么。










