跳转至

自监督学习与对比学习

什么是自监督学习?它与无监督学习和监督学习的区别在哪里?

image.png

自监督学习(Self-Supervised Learning, SSL)是一种无监督学习的特殊范式,其核心思想是利用数据本身的结构自动生成监督信号,从而让模型从大量无标注数据中学习有用的特征表示。

与监督学习的区别

  • 监督学习依赖人工标注的标签作为监督信号,例如分类任务中的类别、检测任务中的边界框等。训练时需要输入-标签对 (x, y),模型直接学习从 x 到 y 的映射。

  • 自监督学习没有外部标签,而是通过设计一个前置任务,从输入数据中自动构造伪标签。例如,将图像的一部分遮挡起来,让模型预测被遮挡的部分;或者将图像进行不同的数据增强,让模型判断两个增强视图是否来自同一原始图像。实际上,自监督学习将监督信号从人工标注转移到数据自身的内在结构。

  • 因此,自监督学习仍然使用有监督的损失函数(如交叉熵、对比损失、重建损失),但监督来自数据本身而非人类标注。

与无监督学习的区别

  • 传统无监督学习主要指聚类、降维、密度估计等,目标是发现数据中的潜在结构,但通常不涉及构造伪标签的前置任务,也不直接产生可用于下游任务的表示。例如,K-means 聚类只是将数据分组,不输出特征表示。

  • 自监督学习属于无监督学习的一种,但它引入了明确的前置任务来学习特征表示,学到的表示可以迁移到下游监督任务中(如分类、检测)。因此,SSL 可以看作是“无监督特征学习”的一种现代形式。

  • 生成式模型如 VAE、GAN 也属于无监督学习,但它们的训练目标不同。VAE 最大化似然,GAN 通过对抗训练;而自监督学习则广泛使用对比学习、掩码预测等判别或重建任务。

自监督学习的核心

  • 前置任务设计:如何从数据中构造伪标签。包括:上下文预测、旋转预测、拼图、色彩化、对比学习(实例判别)、掩码自编码等。

  • 表示学习:目标不是完美解决前置任务,而是通过解决该任务来强制模型理解数据的语义结构,从而在下游任务中只需少量标注数据即可取得好性能。

应用价值

自监督学习在标注稀缺的领域(如医学影像、卫星遥感)具有巨大潜力,因为可以利用海量无标注数据预训练,再在少量标注样本上微调。


对比学习的基本思想是什么?正样本和负样本如何定义?

对比学习(Contrastive Learning)的核心思想是拉近相似样本(正样本对)的表示,推开不相似样本(负样本对)的表示,使模型学会对语义不变性敏感,同时区分不同实例。

基本框架

image.png

正样本的定义

正样本是对同一个原始样本进行不同数据增强产生的变体。例如,对一张狗的照片进行随机裁剪、颜色抖动、翻转等操作,得到两个增强视图 x_i 和 x_j,它们构成正样本对。因为它们底层语义完全相同,所以应当具有接近的表示。这是实例级对比学习中的通用做法。

负样本的定义

负样本通常为同一批次中其他样本的增强视图。在 SimCLR 中,对于一个批次中的 N 个样本,每张图像被增强两次,得到 2N 个视图。对于某个锚点(一个增强视图),其正样本是来自同一原图的另一个增强视图,而其余 2(N-1) 个视图均为负样本。负样本的多样性对对比学习至关重要,因为它教会模型区分不同实例。

在其他一些设置中,负样本也可以来自外部存储库(如 MoCo 的队列),而非仅当前批次。

为什么有效

当模型能成功区分正负样本时,它就必须捕捉到图像的语义不变特征(因为只有这些特征在增强下保持不变),而忽略增强引入的随机变化。这迫使表示空间具有语义结构性,相似图像聚集,不相似图像远离,从而学到可迁移的表示。


SimCLR 的框架是怎样的?它使用了哪些关键组件(数据增强、投影头、对比损失)?

SimCLR(Simple Framework for Contrastive Learning of Visual Representations)是极具影响力的对比学习框架,其结构简洁但效果卓越。

整体架构

  1. 数据增强模块:对每张输入图像 x,随机应用两次数据增强变换 t 和 t',生成两个视图 x_i 和 x_j。增强策略包括随机裁剪、颜色抖动、高斯模糊、随机翻转等。研究发现,组合多种增强方式对性能至关重要,特别是颜色失真和裁剪组合。

  2. 编码器:通常为 ResNet 等卷积网络,将增强后的图像编码为特征向量 h_i = f(x_i)。该特征向量是全局平均池化后的表示。

  3. 投影头:一个非线性小型 MLP(两层,有 ReLU),将编码器输出 h_i 映射到更小维度空间 z_i = g(h_i)。实验发现投影头对性能提升极为重要,对比损失施加在 z 空间,而下游任务使用编码器输出 h。

  4. 对比损失:在批次内,对于每个锚点 z_i,其正样本为来自同一原图的另一个视图 z_j,其余 2(N-1) 个视图作为负样本。使用 NT-Xent(归一化温度缩放交叉熵)损失:

image.png

相似度 sim 为余弦相似度。总损失是所有正样本对的损失之和。

关键组件详解

  • 数据增强:SimCLR 系统研究了增强组合,发现随机裁剪和颜色失真是最关键的组合。无增强或增强太弱时,模型容易依赖低层次颜色统计量来作弊,得不到好表示。

  • 投影头:使用一个2层 MLP 将表示从 h 映射到 z 进行对比,而下游任务用 h。实验表明,投影头有助于移除对比学习中的无关信息(例如增强相关的扭曲),保护 h 中的语义信息。去掉投影头或用线性投影都会显著下降性能。

  • 大的批次大小:SimCLR 极度依赖大批次(如 4096 或更大),以提供足够多的负样本。批次越小,负样本多样性不足,性能下降。因此 SimCLR 需要大量 GPU 内存或使用梯度累积。

  • 温度 τ:通常设为 0.1 左右,控制 softmax 的锐度,调节对难负样本的关注度。

SimCLR 证明了简单的对比框架配合强大的数据增强即可达到与有监督预训练相媲美的性能,推动了自监督视觉学习的发展。


SimCLR 中为什么需要非线性投影头?去掉投影头会怎样?

非线性投影头(通常是一个带 ReLU 的两层 MLP)在 SimCLR 中起着至关重要的作用。

原因分析

对比损失直接鼓励表示空间中正样本对相似、负样本对不相似。如果在编码器输出 h 上直接施加对比损失,会迫使 h 本身对数据增强保持不变,这听起来很合理,但实际上会损害 h 在下游任务中的泛化能力。因为数据增强可能去除或改变与下游任务相关的关键信息(例如颜色、纹理细节),如果强制 h 对这些增强完全不变,h 就会丢弃这些可能有用的特征。

通过引入非线性投影头 g,对比损失施加在投影后的 z = g(h) 上。投影头可以“吸收”掉需要为增强不变性而丢弃的信息,从而保护 h 保留丰富的语义特征。换言之,投影头学会将 h 中不适合对比损失的部分过滤掉,只留下对增强鲁棒的表示供对比学习使用;而 h 本身可以保留更多的原始信息,对下游任务更有利。

实验证据

  • SimCLR 论文实验表明,使用非线性投影头(2层 MLP)比线性投影头有显著提升,比无投影头(即直接在 h 上对比)提升约 10% 以上的 Top-1 准确率。

  • 如果去掉投影头,为了满足对比损失的要求,编码器会直接将 h 优化得对增强不变,导致特征丢失颜色、纹理等可能对下游分类有用的信息,降低迁移性能。

设计思路

这种非对称设计(对比学习用投影后的空间,下游任务用投影前的空间)是自监督学习中的一个重要发现。BYOL、SimSiam 等方法也采用了类似的预测头/投影头结构来防止坍塌。

结论:非线性投影头提供了一个灵活的信息瓶颈,保护了编码器输出的通用性,是 SimCLR 成功的关键组件。


MoCo 如何通过动量编码器和队列维持大量负样本?与 SimCLR 相比的优势?

MoCo(Momentum Contrast)解决了对比学习中负样本数量受限于批次大小的问题,提出了一种高效维护大规模负样本字典的方法。

MoCo 核心组件

  • 动量编码器:除了在线编码器(主分支,梯度更新)外,MoCo 维持一个动量更新的键编码器 f_k,其参数 θ_k 由在线编码器参数 θ_q 通过指数移动平均更新:

image.png

  • 动量系数 m 通常很大(如 0.999),使得键编码器更新缓慢,从而产生一致且稳定的键表示。

  • 队列(Dictionary as a queue):维护一个大小为 K 的负样本队列,存储最近若干个批次的键表示。每个新批次产生的键表示入队,最旧的出队,从而解耦负样本数量与批次大小。队列大小 K 可以远大于批次大小,提供大量负样本。

  • 对比损失:对于每个查询 q(来自在线编码器),其正键 k⁺ 是同一图像的另一个增强视图通过动量编码器产生的表示;负键为队列中的所有键。使用 InfoNCE 损失:

image.png

  • 梯度只通过查询 q 传播,键 k 不接收梯度(只有动量更新),避免反向传播过大计算图。

与 SimCLR 相比的优势

  • 负样本数量:SimCLR 依赖批次大小提供负样本,需要极大 batch size(如 4096)来保证性能。MoCo 通过队列解耦,用较小批次(如 256)即可拥有大量负样本(如 65536),显著降低 GPU 内存需求。

  • 训练稳定性:动量编码器使键特征缓慢变化,保持队列中负样本的一致性,避免了 SimCLR 中其他样本编码器迅速更新导致的一致性缺失。

  • 可扩展性:MoCo 不受限于硬件内存,训练更灵活,尤其适合资源受限环境。

  • 性能:在同等计算量下,MoCo 通常与 SimCLR 持平或更好,且更易训练。

后续发展:MoCo v2 结合了 SimCLR 的增强策略和投影头设计,进一步提升了性能。MoCo 的核心思想(动量编码器 + 队列)也成为许多先进 SSL 方法的基础。


MoCo 中的动量更新公式是什么?动量系数设置有什么讲究?

动量更新公式

在 MoCo 中,键编码器 f_k 的参数 θ_k 不参与反向传播,而是通过查询编码器 f_q 的参数 θ_q 进行动量更新:

image.png

其中 m 为动量系数(通常设为 0.999)。初始化时 θ_k 直接复制 θ_q。

为什么需要动量更新

  • 一致性:如果直接复制 θ_q 到 θ_k(即 m=0),键编码器每步都突变,导致队列中的键表示来自不同时刻、差异巨大的编码器,破坏了键的连续性,使对比学习任务变得混乱(查询需要匹配不断变化的键)。

  • 缓慢进化:取极大的 m(接近 1)使得键编码器变化极其缓慢,队列中的键在短时间内几乎由同一个缓慢演化的编码器产生,彼此一致,对比学习可以专注于语义差异。

  • 与反向传播解耦:由于梯度不流过键编码器,队列可以非常大,而无需存储对应的计算图,极大降低内存。

动量系数的设置

  • 典型值:m = 0.999,意味着键编码器每一步仅向 θ_q 靠拢 0.1%。

  • 过大(如 0.9999):键编码器进化太慢,可能无法及时追上查询编码器学到的变化,导致正键与查询不同步,性能下降。

  • 过小(如 0.9):更新太快,键编码器特征剧烈变化,队列中键的一致性差,损失函数震荡,训练不稳定,收敛变差。

  • 自适应策略:MoCo v3 等工作中采用余弦学习率衰减时,动量也可以固定;有些研究尝试使用从小到大的 m 调度,但通常固定为 0.999 即可稳定工作。

与 BN 的关系

MoCo 实验发现,标准 BN 会破坏键的一致性,因为键编码器的 BN 统计量会在训练中变化,而队列中的旧键使用了旧的 BN 统计量。解决方法:在键编码器中使用 Shuffle BN,或用全连接层替代 BN 的批级别依赖,MoCo v2 则在多卡训练中采用大小一致的分组。

动量更新是 MoCo 成功的关键,它以极其优雅的方式解决了一致性和大批量负样本的矛盾。


BYOL 不使用负样本,是如何避免模型坍塌的?它的核心设计是什么?

BYOL(Bootstrap Your Own Latent)是一种不需要负样本的自监督学习方法,它仅使用正样本对进行训练,却能避免表示坍塌为常量。

核心设计

image.png

避免坍塌的机制

  • 动量更新(Slow Target Network):目标网络进化极慢,提供了一个稳定的回归目标。在线网络需要不断预测目标网络的输出,而不是优化到简单解(如全零)。目标网络的缓慢更新打破了对称性,引导在线网络朝向有意义的方向。

  • 预测头 + 投影头的不对称性:在线网络有额外的预测头,而目标网络没有。这种结构不对称保证了整个映射不是一个恒等映射的平凡解。在线网络必须学习能够预测目标网络输出的特征,而不仅仅是复制输入。

  • 隐式的对比效果:尽管没有显式的负样本,BYOL 实际上通过动量目标网络隐含地约束了表示空间。如果试图坍塌为常数,在线网络的预测会与目标网络输出产生差异,从而产生损失,迫使模型学习有区分性的特征。

  • Batch Normalization 的角色:实验中发现,BYOL 中的 BN 对防止坍塌至关重要。BN 可能引入了隐式的负样本效应(通过批次统计量在特征间产生对比),但后续工作(如 BYOL 的 BN-free 变体)证明即使没有 BN,其他设计(如 LayerNorm 或适当的初始化)也能避免坍塌,说明核心仍在于动量架构。

总结:BYOL 证明了通过不对称的师生网络和慢动量的目标网络,可以在完全不使用负样本的情况下学到高质量表示,打破了“对比学习必须依靠负样本”的固有观念。


对比学习中的温度系数 τ 如何影响训练?较大和较小的 τ 各有什么效果?

温度系数 τ 在对比损失(InfoNCE)中控制 softmax 的锐利度,直接影响模型对正负样本的关注度。

数学形式

损失中每个样本的贡献为:

image.png

其中 s 为余弦相似度(通常在 [-1, 1] 之间)。

较小 τ(如 0.1)

  • 使得指数函数差异被急剧放大,softmax 分布变得非常尖锐。

  • 模型会极度关注那些与锚点相似度极高的困难负样本(得分最高的负样本),因为这些负样本对梯度的贡献最大。

  • 优点:能有效挖掘困难负样本,推动特征空间更精细的分离,可能带来更高的下游性能。

  • 缺点:如果 τ 过小,模型对噪声和困难负样本过度敏感,可能把本应属于同一语义的困难正样本也推开,训练不稳定,甚至难以收敛。还需要大量的负样本以避免过度集中。

较大 τ(如 0.5 或 1.0)

  • softmax 分布更平滑,模型对所有负样本的权重相对均衡。

  • 梯度更多地来自于与全体负样本的对比,而不仅仅是困难负样本。训练更稳定,收敛更容易。

  • 优点:鲁棒,对负样本数量和噪声不敏感,训练初期友好。

  • 缺点:可能不足以区分困难负样本和简单负样本,表示质量可能不是最优,因为模型缺少精细的判别压力。

选择与调节

  • 典型设置:在 SimCLR、MoCo 中,τ 常设为 0.1~0.2。这个值经过实验调优,平衡了训练稳定性和困难样本挖掘。

  • 如果出现训练不稳定或损失剧烈震荡,可适当增大 τ。

  • 如果下游性能不足,可尝试减小 τ 并配合更多负样本,但需警惕训练崩溃。

  • 温度也可以作为可学习参数,或使用动态调度。

直观理解:τ 控制的是对负样本的“惩罚力度”。小 τ 意味着只要锚点与负样本有哪怕微小的相似度,也会被严重惩罚,因此模型必须非常清晰地分开它们。这在类别边界附近会导致决策边界更加锐利。


为什么对比学习需要大的 batch size 或内存库?有哪些替代方法?

对比学习需要大量负样本以提高表示的判别性,这是由 InfoNCE 损失的性质决定的。

大量负样本的必要性

  • 在理想情况下,InfoNCE 损失需要在极高的概率下将正样本从所有可能的数据点中识别出来,这要求负样本充分覆盖数据分布。

  • 负样本越多,对比任务越接近“在所有实例中识别出正样本”,模型被迫学习高度区分的特征,有利于下游任务。

  • 实验证明,随着负样本数量增加,模型性能单调上升(在一定范围内)。SimCLR 中批次大小从 256 增加到 8192,性能稳步提升。

SimCLR 的解决方式:极大 batch size

  • 使用很大的批次(如 4096、8192),在批次内提供负样本。这对 GPU 显存和算力要求极高,往往需要 TPU 或大量 GPU 并行。

MoCo 的解决方式:内存库(队列)

  • 通过队列存储过去的键,将负样本数量与批次大小解耦,仅需较小批次(如 256)即可享受数万负样本,极大降低硬件门槛。

其他替代方法

  • BYOL / SimSiam 范式:完全放弃负样本,通过不对称网络结构和动量编码器避免坍塌,无需任何大 batch 或内存库。

  • 聚类方法(SwAV):将对比学习转化为“交换聚类分配”的任务。通过在线聚类生成伪标签,迫使同一图像不同增强视图的聚类分配一致。该方法同样不需要显式的负样本对,而是利用聚类中心作为隐式对比,能高效工作于小批次。

  • 知识蒸馏(如 DINO):自蒸馏框架,教师网络和学生网络结构相同,通过动量更新,输出中心的软标签进行自我蒸馏,同样无需负样本。

  • 硬负样本挖掘:主动挑选最难的负样本(如通过近似最近邻检索),用少量高质量负样本替代大量随机负样本。

  • 多任务/多视图结合:利用其他前置任务(如旋转预测)增强表示,减少对纯对比损失的依赖。

发展趋势:从 SimCLR 的大 batch,到 MoCo 的队列,再到 BYOL 的负样本免除,对比学习逐步降低了对硬件的要求,展示了自监督学习的多样设计空间。


在视觉领域中,掩码自编码器(MAE)如何工作?它与对比学习有何不同?

MAE(Masked Autoencoders) 是一种生成式自监督学习方法,核心思想是随机遮盖图像的大部分区域,让模型预测被遮盖的像素。

工作原理

  1. 掩码:将输入图像分成不重叠的 patches(如 ViT 的做法),随机抽取一小部分(如 25%)的 patches 作为可见的,其余 75% 被掩码掉。

  2. 编码器:仅处理那些可见的 patches(加上位置编码)。由于只处理少量 patches,编码器计算非常高效。输出可见 patches 的编码特征。

  3. 解码器:接收编码器输出的特征以及掩码令牌(共享的可学习向量,代表被遮盖的位置),加上位置编码,输入一个更浅的 Transformer 解码器,解码器重建完整图像的所有 patches,通过像素级的 MSE 损失监督,但仅计算被掩码部分的损失。

  4. 目标:让模型学会从少部分可见内容推理出被遮挡的内容,从而理解图像的语义和结构。

与对比学习的根本不同

  • 训练范式:对比学习是判别式的,学习区分不同实例;MAE 是生成式的,学习重建被破坏的数据。

  • 正负样本:对比学习需要构造正负样本对,MAE 不需要正负样本,完全基于重建。

  • 数据增强:对比学习高度依赖数据增强来产生正样本;MAE 仅需掩码操作,数据增强相对次要。

  • 模型结构:对比学习通常使用卷积网络+投影头;MAE 天然适合 Vision Transformer 结构。

  • 下游任务:对比学习学到的特征对分类、检测等判别任务非常有效;MAE 学到的特征对像素级重建和下游微调也表现优异,尤其在 ViT 架构上大幅超越对比方法。

  • 计算效率:MAE 的编码器仅处理少量 patches,预训练非常快。

特点:MAE 证明了一个简单的掩码重建任务就能学到强大的视觉表示,而且由于极高的掩码率,训练效率极高。它推动了自监督学习从对比范式向掩码预测范式的转变。


MAE 中掩码比例为什么可以非常高(比如 75%)?编码器和解码器如何设计?

高掩码比例的原因

  • 图像数据包含大量的空间冗余信息(相邻像素高度相似)。如果掩码率太低(如 30%),模型仅需通过周围的邻近像素进行插值即可完成重建,根本不需要学习高级语义特征,这会使前任务过于简单,模型学不到有用表示。

  • 高掩码率(75%)强制模型必须利用全局上下文和对象结构信息来推断缺失部分。例如,要重建被遮盖的狗尾巴,模型必须认识到这是狗的图片,理解狗的身体结构,这种推理需要高度抽象的语义理解。

  • 实验证明,掩码率在 75% 左右对下游性能最优。掩码率太低则表征质量差,太高(>90%)则可见信息太少,重建几乎不可能,模型也难以学习。

编码器设计

  • 仅处理可见的、未被掩码的 patches(通常为总 patch 数的 25%)。这样大大减小了编码器的输入序列长度,使得计算量和内存占用极低。

  • 编码器由一系列标准的 Transformer 块构成,输入为可见 patch 的线性投影加上位置编码。

  • 由于去除了掩码 patches,编码器能够高效地抽取上下文特征,且不浪费算力在空洞区域。

解码器设计

  • 接收全部 patch 的位置编码,包括可见 patch 的特征表示和掩码令牌(一个共享的可学习向量,代表待重建的位置)。

  • 解码器通常较浅(如 8 层 Transformer),宽度也较编码器窄。这大大降低了解码器的计算开销,因为解码器需要处理全序列,浅而窄保证效率。

  • 解码器最后一层为线性投影,输出每个 patch 的像素值。

  • 损失仅计算被掩码 patches 的重建误差(MSE),忽略可见 patches。

这种非对称设计的优势

  • 编码器高效而强大:只处理可见部分,预训练极快。

  • 解码器轻量且可丢弃:下游任务只使用编码器,解码器仅为预训练的辅助工具。

  • 整体计算量远低于全图编码然后对比的方法。

MAE 通过高掩码率和非对称结构,巧妙地平衡了预训练效率和表示质量,成为视觉自监督学习的又一里程碑。


对比学习在 NLP 中的应用有哪些?如 SimCSE,它的正样本如何构造?

对比学习在 NLP 领域同样取得了显著成效,其基本思路依然是拉近相似句子表示、推开不相似句子表示。

SimCSE(Simple Contrastive Learning of Sentence Embeddings)

  • 核心思想:将相同的输入句子两次通过同一个编码器,由于编码器内嵌的 Dropout 会产生不同的随机掩码,导致两个输出向量略有不同。这两个向量即构成正样本对。负样本为同一批次中其他句子的向量。

  • 损失函数:使用 InfoNCE 损失,批次内对比。对于一个句子 s,经过两次前向得到向量 z 和 z',z 和 z' 互为正样本,其余 2(N-1) 个向量为负样本。

  • 效果:这种极其简单的设计(仅利用 Dropout 噪声)就能产生高质量的句子嵌入,在语义文本相似性(STS)任务上显著超越之前的无监督方法。SimCSE 也提供了有监督版本,利用自然语言推理数据集的正例(蕴含句对)作为正样本,负例(矛盾句对)作为硬负样本,进一步提升性能。

其他 NLP 对比学习应用

  • CLEAR:在句子级别,使用数据增强(如回译、随机删除词)产生正样本,用对比学习预训练句子表示。

  • ConSERT:在词向量级别引入对比学习,通过对抗扰动、打乱 token 顺序等增强产生正样本。

  • DeCLUTR:利用同一文档中的不同片段作为正样本,假设相近的文本段落语义相关。

  • PairSup:为每个句子构造正负例对,利用对比损失微调预训练语言模型。

NLP 中正样本构造策略

  • Dropout 噪声(SimCSE 无监督):最简单的隐式增强。

  • 回译:将句子翻译成另一种语言再译回,产生语义不变但措辞变化的正样本。

  • 同义词替换/随机插入删除:轻度文本增强。

  • 文档内邻近句子:利用长文档结构,相邻句子视为正样本。

  • 有监督信号:利用标注的蕴含/矛盾关系,蕴含对为正,矛盾对为硬负。

总结:对比学习为 NLP 中的表示学习提供了强大框架,SimCSE 以极简方式证明了 Dropout 本身就可作为有效的数据增强,推动了对比学习在 NLP 领域的广泛应用。


如何评价对比学习学到的表示质量?通常用哪些探针任务?

评估对比学习学到的表示质量需要从多个维度考察:线性可分性、迁移能力、鲁棒性、语义结构等。

  1. 线性评估(Linear Evaluation)

  2. 冻结预训练编码器,在特征之上训练一个线性分类器(或浅层 MLP)。测试准确率越高,表示质量越好。

  3. 这是对比学习中最标准的评估协议(如 ImageNet linear probe),直接反映特征是否包含线性可分的信息。

  4. 半监督微调

  5. 仅用少量标签数据(如 1%、10% ImageNet)对编码器进行微调,测试分类性能。评估表示在少样本情况下的迁移能力。

  6. 迁移学习下游任务

  7. 将预训练编码器作为骨干网络,迁移到其他任务:目标检测(VOC、COCO)、语义分割、实例分割等。通常微调整个网络,报告 mAP、mIoU 等。

  8. 越好的表示应当在不同任务上都能较快收敛并达到高精度。

  9. 探针任务(Probing Tasks)

  10. 最近邻检索:给定一张图像,在特征空间中找最近邻,观察是否属于同类。可定量计算检索准确率。

  11. 聚类:对特征进行 K-Means 聚类,计算聚类纯度和 NMI(归一化互信息)。

  12. 少样本分类(Few-shot):比如 5-way 1-shot 或 5-way 5-shot,直接衡量特征的小样本判别能力。

  13. 细粒度分类:测试在需要精细区分的类别上的表现。

  14. 语义相似性:计算图像对特征相似度与人类判断的相关性。

  15. 鲁棒性和泛化

  16. 在分布外数据集(如 ImageNet-A, ImageNet-R, ImageNet-Sketch)上测试,评估特征的稳健性。

  17. 对抗鲁棒性测试。

  18. 结构和解耦评估

  19. 检查特征空间是否呈现清晰的类别簇(可视化 t-SNE/UMAP)。

  20. 评估特征维度是否独立、是否捕获到解耦的生成因子。

综合来看,一个高质量的自监督表示应该在线性评估、少样本泛化、密集预测任务迁移以及鲁棒性等多个基准上均表现优异。现代对比学习(如 MoCo v3、SimCLR v2)已在这些指标上接近甚至超过有监督预训练。


自监督学习在医学影像、遥感等少标注领域的应用前景。

医学影像领域

  • 标注极度稀缺且昂贵:医学图像需要专家医生标注,耗时且成本高,还涉及隐私。自监督学习可以充分利用医院存档的海量无标注影像(X光、CT、MRI)进行预训练,学习解剖结构、纹理、病灶等通用视觉特征。

  • 具体应用:预训练模型仅需少量标注样本微调,即可达到需要大量标注数据才能实现的性能。例如,用自监督预训练进行肺结节检测、视网膜病变分级、肿瘤分割等,效果显著优于从零训练。

  • 对比学习:通过从同一病人不同切片、不同增强视图构造正样本,学习稳健的医学特征。MoCo-CXR 等已证明 SSL 在胸部X光片上的有效性。

  • 掩码重建:MAE 风格的方法在3D医学影像中潜力巨大,遮盖部分体素让模型重建,可学习器官结构等全局信息。

  • 多模态预训练:结合医学报告(文本)与影像进行图文对比学习(如 BioViL),实现跨模态理解,可支持零样本疾病识别、报告生成等。

遥感领域

  • 海量无标注数据:卫星、无人机产生巨量遥感图像,人工像素级标注极不现实。SSL 能利用这些原始数据进行预训练。

  • 对比学习:利用地理空间信息:同一区域不同时间、不同波段、不同传感器的图像可互为天然正样本,学习时不变的、传感器无关的地物特征。

  • 掩码预测:遮盖部分图像区域,利用周围地理信息重建,学习空间上下文和地形结构。

  • 应用效果:在土地覆盖分类、变化检测、目标检测(舰船、飞机)、灾害评估等任务上,自监督预训练结合少量标注样本极大提高了精度,尤其对于小样本类别和稀有问题。

前景总结

自监督学习将彻底改变标注稀缺领域的人工智能应用模式:在大规模无标注数据上预训练通用基础模型,再通过少量标注进行领域适配。这种范式能极大降低标注成本,加速模型开发周期,并有望达到全监督无法企及的泛化能力。随着 SSL 方法的成熟和更多领域数据的积累,医学、遥感、工业检测等垂直行业将迎来智能化飞跃。


为什么自监督预训练后微调可以大幅超越从零开始训练?

核心原因:优秀的初始表示与归纳偏置

  1. 学到泛化的特征层次

自监督预训练通过设计的前置任务,迫使模型从数据中挖掘通用视觉/语言模式。例如,对比学习学会区分不同实例,这要求模型捕获形状、纹理、部件等高级语义特征;掩码重建学会图像的空间结构和上下文。这些特征涵盖了丰富的世界知识,形成一个强大的初始点。下游任务微调时,模型不需从噪声开始探索,只需调整已学到的通用特征以适应特定任务,极大降低了所需的数据量和优化难度。

  1. 优化的便捷性

从随机初始化开始训练深层网络,损失曲面充满尖锐极小值,优化困难,容易陷入不良局部极值或梯度问题。预训练模型权重位于损失曲面的一个平坦、良好的区域,该区域对应着能够捕捉数据普遍规律的特征。从这一区域开始微调,优化路径更短、更稳定,可以快速收敛到更优的泛化解。

  1. 隐含的数据增广与正则化

自监督任务本身就起到了强大的正则化作用。对比学习中的数据增强迫使模型学习增强不变性;掩码重建类似于对输入进行大量随机扰动。这种“隐式正则”使模型学到了平滑、鲁棒的决策边界,微调时能够很好地适应下游任务的变化,对过拟合具有天然抵抗力。

  1. 数据效率

预训练模型已经编码了大量数据中的统计规律,下游任务即使标注数据极少,也能通过微调激活这些已有知识,实现令人惊讶的少样本性能。从零训练则需要从数据中从头发现这些规律,样本效率极低。

  1. 维度的突破

现代自监督学习通常使用海量无标注数据(如数十亿图像),这种规模的有标注数据几乎不可能获取。预训练赋予模型“常识”,再结合下游特定的有标注数据,综合效果远超仅用少量标注数据从零训练。

实验证据

在 ImageNet 线性评估、半监督学习、以及迁移到各类检测分割任务中,自监督预训练模型的性能普遍大幅优于随机初始化,且接近甚至超越有监督预训练(如 MoCo v3 在多项任务上追平监督模型)。这证明了自监督预训练已成为获取高质量视觉表示的重要范式。