3、自监督学习与表征学习:自监督学习范式、对比学习与预测性学习的区别,以及JEPA在自监督学习中的定位

自监督学习(Self-Supervised Learning, SSL)是近年来机器学习领域最具革命性的范式之一。它试图摆脱传统监督学习对大规模人工标注数据的依赖,通过设计精巧的“预文本任务”(Pretext Task),从数据本身的结构中生成监督信号。在潜在空间预测与JEPA(Joint Embedding Predictive Architecture)模型的训练中,理解自监督学习的底层逻辑、不同技术路线的优劣,以及JEPA所处的独特生态位,是构建高效、鲁棒视觉或多模态模型的前提。本章将系统梳理自监督学习的核心范式,深入对比对比学习与预测性学习的本质差异,并明确JEPA在自监督学习版图中的定位与设计哲学。

自监督学习范式与JEPA定位 自监督学习 (SSL) 对比学习 (Contrastive) 核心:拉近正样本,推远负样本 代表:SimCLR, MoCo, CLIP 依赖:大批量、负样本队列 预测性学习 (Predictive) 核心:预测缺失部分或未来状态 代表:MAE, BEiT, GPT 依赖:掩码策略、重建目标 JEPA (联合嵌入预测架构) 在抽象潜在空间做预测 不重建像素,不依赖负样本 图:自监督学习两大范式与JEPA的定位关系

上图清晰地展示了自监督学习的两大技术路线:对比学习与预测性学习。JEPA并非凭空出现,而是对这两条路线深刻反思后的融合与升华。它既吸收了预测性学习“预测未来”的核心思想,又摒弃了在输入空间(如像素)进行重建的低效做法,转而将预测过程提升到抽象的潜在表征空间。接下来,我们将逐一拆解这些概念。

3.1 自监督学习范式:从数据自身挖掘监督信号

3.1.1 核心原理:预文本任务的设计逻辑

自监督学习的本质是设计一个“预文本任务”(Pretext Task),使得模型在解决该任务的过程中被迫学习到数据的高层语义特征。这个任务本身没有人工标注,但通过数据的内在结构(如空间、时间、频域、上下文关系)自动生成标签。例如,在自然语言处理中,BERT通过“掩码语言模型”(Masked Language Model, MLM)随机遮盖15%的单词,让模型根据上下文预测被遮盖的词。模型为了完成预测,必须理解单词之间的语法和语义依赖,从而获得强大的上下文表征。

在计算机视觉领域,常见的预文本任务包括:图像着色(预测灰度图的颜色通道)、旋转预测(预测图像旋转的角度)、拼图游戏(预测打乱图像块的正确排列顺序)等。这些任务迫使模型关注物体的形状、纹理、边界和空间关系,而非仅仅记忆像素值。自监督学习的核心价值在于,它能够利用海量的无标注数据(如互联网上的数十亿张图片)进行预训练,学习到的表征可以迁移到下游任务(如分类、检测、分割)中,显著减少对标注数据的依赖。

关键认知:自监督学习的目标不是“完成任务”本身,而是“通过任务学习表征”。预文本任务只是手段,表征质量才是最终评判标准。一个优秀的预文本任务应具备两个特性:语义丰富性(任务难度足够,迫使模型学习高级特征)和可迁移性(学到的特征在下游任务中有用)。

3.1.2 判断方法:如何评估自监督表征的质量

评估自监督模型的好坏,不能只看预文本任务的损失是否收敛。常用的评估协议包括:

  • 线性探测(Linear Probing):冻结预训练模型的骨干网络,仅训练一个线性分类器,在ImageNet等标准数据集上测试准确率。这是衡量表征线性可分性的黄金标准。
  • 微调(Fine-tuning):将预训练模型作为初始化,在目标数据集上进行端到端微调,观察收敛速度和最终精度。
  • 迁移学习:在多个不同的下游任务(如目标检测、语义分割)上测试,验证表征的泛化能力。
  • 表征相似性分析(Representation Similarity Analysis, RSA):计算不同模型内部表征之间的相似度矩阵,分析模型是否学到了与人类视觉系统类似的层级结构。

在实际训练中,我们通常结合线性探测和微调两种方式。如果线性探测准确率高,说明特征空间是线性可分的;如果微调后准确率提升明显,说明特征具有很好的非线性表达能力。

3.1.3 案例拆解:SimCLR的实战流程与关键参数

SimCLR是对比学习范式的经典代表。其训练流程如下:

  1. 数据增强:对同一张输入图像随机应用两种不同的数据增强(如随机裁剪、颜色抖动、高斯模糊),生成两个正样本对 x_i 和 x_j。
  2. 编码器:使用ResNet-50等卷积网络提取特征,得到表征向量 h_i 和 h_j。
  3. 投影头:将表征向量通过一个两层MLP映射到对比空间,得到 z_i 和 z_j。投影头的作用是去除与数据增强无关的信息(如颜色、纹理),保留语义信息。
  4. 对比损失:使用NT-Xent损失(归一化温度标度交叉熵损失),拉近正样本对的距离,推远负样本对的距离。
# 伪代码:SimCLR损失计算
def nt_xent_loss(z_i, z_j, temperature=0.5):
    # z_i, z_j: [batch_size, dim]
    batch_size = z_i.shape[0]
    # 拼接所有样本
    z = torch.cat([z_i, z_j], dim=0)  # [2*batch_size, dim]
    # 计算余弦相似度矩阵
    sim = F.cosine_similarity(z.unsqueeze(1), z.unsqueeze(0), dim=2)  # [2*batch_size, 2*batch_size]
    # 除以温度系数
    sim = sim / temperature
    # 对角线上的元素是样本自身的相似度,需要屏蔽
    mask = torch.eye(2*batch_size, dtype=torch.bool).to(z.device)
    sim.masked_fill_(mask, -1e9)
    # 正样本对索引:i 与 i+batch_size 互为正样本
    positive_mask = torch.zeros_like(sim)
    for i in range(batch_size):
        positive_mask[i, i+batch_size] = 1
        positive_mask[i+batch_size, i] = 1
    # 计算损失
    exp_sim = torch.exp(sim)
    loss = -torch.log(exp_sim * positive_mask / exp_sim.sum(dim=1, keepdim=True))
    return loss.sum() / (2 * batch_size)

在训练中,batch size 是至关重要的超参数。SimCLR原论文使用batch size为4096,以保证有足够多的负样本。如果显存有限,可以使用MoCo(动量对比)方案,通过维护一个负样本队列来解耦batch size与负样本数量的关系。

常见误区:初学者容易忽略数据增强的强度。SimCLR中,颜色抖动(Color Jitter)的强度对最终表征质量影响极大。如果增强过弱,正样本对过于相似,模型学不到鲁棒特征;如果增强过强,正样本对可能失去语义一致性,导致训练不稳定。建议参考原论文的超参数设置,并在小规模数据集上做消融实验。

3.2 对比学习与预测性学习的本质区别

3.2.1 核心原理:两种不同的信息提取策略

对比学习(Contrastive Learning)的核心思想是“以邻为鉴”。它通过构造正样本对(同一图像的不同视角)和负样本对(不同图像的视角),学习一个嵌入空间,使得正样本对在空间中靠近,负样本对远离。其本质是一个判别式任务:模型需要区分“相似”与“不相似”。这种方法的优势在于,它天然地避免了“模式坍塌”(所有样本被映射到同一个点)的问题,因为负样本的存在提供了“排斥力”。

预测性学习(Predictive Learning)的核心思想是“以己为鉴”。它通过掩码或自回归的方式,让模型预测输入数据的缺失部分。例如,MAE(Masked Autoencoder)随机遮盖图像75%的像素块,让解码器从可见的25%像素中重建原始图像。其本质是一个生成式任务:模型需要理解数据的整体结构才能完成重建。这种方法的优势在于,它不需要构造负样本,避免了对比学习中“负样本选择”的棘手问题。

维度 对比学习 (Contrastive) 预测性学习 (Predictive)
任务类型 判别式(区分正负样本) 生成式(重建或预测缺失部分)
监督信号 样本对之间的相似性 数据自身的结构(如像素、token)
负样本依赖 强依赖(需要大量负样本) 不依赖
表征粒度 全局语义(整图级别) 局部+全局(像素级重建迫使模型理解细节)
计算开销 高(需要大batch或队列) 中等(解码器增加计算量)
典型代表 SimCLR, MoCo, CLIP MAE, BEiT, GPT
主要风险 模式坍塌、负样本选择偏差 重建任务过于简单(如记忆像素)

3.2.2 判断方法:如何根据任务选择合适范式

选择对比学习还是预测性学习,取决于以下因素:

  • 数据规模:如果拥有海量无标注数据(如10亿张图像),预测性学习(如MAE)通常表现更好,因为它能充分利用数据中的全部信息。如果数据量中等(100万张),对比学习可能更高效。
  • 下游任务类型:对于密集预测任务(如语义分割、目标检测),预测性学习(MAE)学到的局部特征更有利。对于全局分类任务(如图像分类、图文检索),对比学习(CLIP)的全局表征更具优势。
  • 计算资源:对比学习需要大batch size或动量队列,对显存要求高。预测性学习(MAE)的编码器可以只处理可见的25%像素,计算效率更高。
  • 模态类型:在视觉-语言多模态场景中,对比学习(CLIP)是主流方案,因为它能自然地将图像和文本映射到同一语义空间。在纯视觉或纯文本场景中,预测性学习(MAE, GPT)更常见。
经验之谈:在实际项目中,不必将两者视为对立关系。许多先进模型(如BEiT v2)结合了对比学习和掩码预测:先用对比学习对齐全局语义,再用掩码预测细化局部特征。这种混合策略往往能取得更好的效果。

3.2.3 案例拆解:MAE与SimCLR在相同数据集上的表现对比

假设我们在ImageNet-1K(128万张图像)上分别预训练MAE和SimCLR,然后微调到下游任务COCO目标检测。以下是典型的实验结果对比:

预训练方法 预训练Epochs 线性探测Top-1 COCO AP (微调) 训练显存占用
SimCLR (batch=4096) 800 69.3% 38.5% ~64GB (多卡)
MAE (mask=75%) 1600 67.8% 41.2% ~32GB (单卡)

从表中可以看出:MAE在预训练阶段计算效率更高(显存占用减半),且在下游密集预测任务(COCO检测)上表现更好。但MAE的线性探测准确率略低于SimCLR,说明其表征的线性可分性稍弱,但非线性表达能力更强。这验证了“生成式预训练更适合需要精细局部特征的任务”这一假设。

3.3 JEPA在自监督学习中的定位:在抽象空间中预测

3.3.1 核心原理:联合嵌入预测架构的设计哲学

JEPA(Joint Embedding Predictive Architecture)由Yann LeCun在2022年提出,旨在解决对比学习和预测性学习的固有缺陷。其核心思想是:在抽象的潜在表征空间中进行预测,而不是在原始输入空间(像素或token)中重建。

JEPA由四个主要组件构成:

  1. 上下文编码器(Context Encoder):接收输入的可观察部分(如一张图像的中心区域),输出上下文表征 s_y。
  2. 目标编码器(Target Encoder):接收输入的目标部分(如同一张图像的边缘区域),输出目标表征 s_x。目标编码器的参数是上下文编码器的指数移动平均(EMA),不参与梯度更新。
  3. 预测器(Predictor):接收上下文表征 s_y,预测目标表征 s_x。预测器是一个可学习的神经网络,通常比编码器轻量。
  4. 损失函数:使用余弦相似度或均方误差(MSE)衡量预测表征 s_pred 与目标表征 s_x 之间的差异。

JEPA的关键创新在于:预测发生在表征空间,而非输入空间。这意味着模型不需要重建像素级的细节,只需预测高层语义特征。例如,给定一张猫的图像的中心部分,JEPA需要预测猫的耳朵和尾巴的表征,但不需要精确预测每个毛发的像素位置。这种设计使得JEPA能够忽略与任务无关的细节(如光照、背景纹理),专注于语义层面的预测。

3.3.2 判断方法:JEPA与对比学习、MAE的对比分析

为了更清晰地理解JEPA的定位,我们将其与对比学习和MAE进行对比:

维度 对比学习 (SimCLR) 预测性学习 (MAE) JEPA
预测目标 拉近正样本对 重建原始像素 预测目标表征
预测空间 对比空间(投影头输出) 输入空间(像素) 潜在表征空间
负样本需求 需要 不需要 不需要
目标编码器 与上下文编码器共享 与上下文编码器共享 独立(EMA更新)
信息保留程度 保留全局语义,丢失局部细节 保留全部像素信息(含噪声) 保留语义信息,丢弃无关细节
训练稳定性 易受负样本质量影响 稳定,但可能过度关注低频信息 稳定,且能避免模式坍塌

从上表可以看出,JEPA试图取两者之长:既不需要负样本(避免了对比学习的工程复杂性),又不在像素空间重建(避免了MAE的低效)。JEPA的核心假设是:表征空间中的预测比输入空间中的重建更接近“智能”的本质——因为智能体(人或动物)预测未来时,预测的是抽象事件(如“猫会跑开”),而不是具体的像素变化。

3.3.3 实战场景:基于JEPA的图像异常检测方案

JEPA在工业异常检测中具有天然优势。传统方法需要大量正常样本训练重建模型,但重建模型往往对异常过于敏感(将正常纹理变化误判为异常)。JEPA只预测语义表征,对像素级噪声不敏感。

场景描述:某半导体工厂需要检测晶圆表面的微小划痕。正常晶圆具有规则的电路图案,但不同批次之间存在颜色和纹理差异。传统MAE重建模型会将批次间的正常色差误报为缺陷。

实施步骤:

  1. 预训练:使用JEPA在100万张无缺陷晶圆图像上预训练。上下文编码器输入图像中心区域(如70%面积),目标编码器输入边缘区域(30%面积)。预测器学习从中心表征预测边缘表征。
  2. 异常分数计算:对于测试图像,将其中心区域输入上下文编码器,得到预测表征 s_pred;将完整图像输入目标编码器,得到目标表征 s_x。计算两者之间的余弦距离作为异常分数。
  3. 阈值设定:在验证集上计算正常样本的异常分数分布,设定阈值为均值+3倍标准差。
  4. 结果:JEPA方法在保持99.2%召回率的同时,将误报率从MAE的5.1%降低至0.8%。
风险提示:JEPA的训练对目标编码器的EMA更新速率(momentum)敏感。momentum过小(如0.99)会导致训练不稳定;momentum过大(如0.9999)会导致目标表征更新过慢,模型收敛缓慢。建议在训练初期使用0.99,后期逐步增大到0.999。

3.3.4 常见误区与总结复盘

在理解和应用JEPA时,常见的误区包括:

  • 误区一:认为JEPA只是MAE的变体。实际上,MAE在像素空间重建,而JEPA在表征空间预测。JEPA的目标编码器是独立的,且不参与梯度更新,这与MAE的共享编码器有本质区别。
  • 误区二:忽视预测器的设计。预测器的容量对JEPA性能影响巨大。如果预测器过于简单(如单层线性层),无法建模复杂的表征变换;如果过于复杂,则可能引入不必要的参数。建议使用2-4层Transformer或MLP。
  • 误区三:在所有任务上都使用JEPA。对于需要像素级精细输出的任务(如图像超分辨率、风格迁移),MAE或GAN仍然更合适。JEPA更适合高层语义理解任务(分类、检测、检索)。

总结复盘:自监督学习已经从“手工设计预文本任务”演进到“端到端学习表征”。对比学习通过判别式信号构建语义空间,预测性学习通过生成式信号理解数据分布,而JEPA则开创了“在潜在空间预测”的新范式。在实际项目中,建议根据数据规模、任务类型和计算资源综合选择。JEPA特别适合那些需要鲁棒语义表征、且对像素级噪声不敏感的场景。掌握JEPA的设计哲学,不仅有助于训练更高效的视觉模型,也为未来多模态智能体的发展提供了重要思路。