2、自监督学习基础:对比学习、生成式自监督、预测式自监督的核心思想与典型方法(SimCLR、MAE、BYOL)

自监督学习(Self-Supervised Learning, SSL)是当前世界模型构建中最核心的引擎之一。它不依赖人工标注,而是通过设计精巧的“前置任务”(Pretext Task)从数据本身生成监督信号,让模型学习到通用的视觉或语义表征。在构建世界模型时,这些表征将成为智能体理解环境状态、预测未来变化的基础。本章将深入剖析自监督学习的三大范式——对比学习、生成式自监督和预测式自监督,并结合SimCLR、MAE、BYOL三个典型方法,从原理、操作到实战误区进行系统拆解。

自监督学习三大范式 对比学习 拉近正样本,推远负样本 典型方法 SimCLR / MoCo 依赖负样本与大Batch 生成式自监督 重建被掩蔽或损坏的输入 典型方法 MAE / VAE / GAN 掩蔽重建,无需负样本 预测式自监督 预测自身变换后的特征 典型方法 BYOL / SwAV 无负样本,EMA稳定训练 核心区别:监督信号的定义方式 对比:实例判别 生成:像素重建 预测:特征一致性 世界模型应用:状态表征学习、动态预测、多模态对齐

上图清晰地展示了三大范式的核心逻辑与代表方法。对比学习通过实例判别构造正负样本对;生成式自监督通过掩蔽重建学习数据分布;预测式自监督则通过特征层面的预测一致性避免对负样本的依赖。下面我们逐一深入。

2.1 对比学习:SimCLR 的核心思想与实战要点

核心原理:拉近与推远的博弈

对比学习的本质是度量学习。其核心假设是:同一数据的不同增强视图(View)应具有相似的表征,而不同数据的视图应具有不同的表征。在特征空间中,模型需要将正样本对(同一张图的两个不同增强版本)拉近,将负样本对(不同图片的增强版本)推远。这种“实例判别”任务不需要任何人工标签,仅依靠数据增强策略就能产生无穷无尽的监督信号。

SimCLR 是这一范式的集大成者。它的框架极为简洁:一个编码器(如 ResNet-50)提取特征,一个投影头(MLP)将特征映射到对比损失空间,最后使用 InfoNCE 损失函数进行优化。InfoNCE 的核心公式为:

L = -log( exp(sim(z_i, z_j)/τ) / Σ_{k=1}^{2N} exp(sim(z_i, z_k)/τ) )

其中 sim 为余弦相似度,τ 是温度系数,z_i 和 z_j 是正样本对的特征,分母包含所有负样本。温度系数控制了对困难负样本的惩罚强度:τ 越小,模型越关注与正样本相似度高的负样本,训练越激进。

操作流程:从数据增强到损失计算

  1. 数据增强策略:随机裁剪、颜色抖动、灰度化、高斯模糊、水平翻转等。SimCLR 实验表明,随机裁剪+颜色抖动的组合效果最佳,因为裁剪改变空间结构,颜色抖动改变外观,两者互补。
  2. 编码器前向传播:将增强后的两个视图分别输入编码器,得到表征向量 h_i 和 h_j。
  3. 投影头映射:将表征向量通过一个 2 层 MLP 映射到低维空间 z_i 和 z_j,用于计算损失。
  4. InfoNCE 损失计算:在一个 Batch 内,将 z_i 与所有其他样本的特征计算相似度,正样本对为 (z_i, z_j),其余均为负样本。
  5. 梯度更新:反向传播更新编码器和投影头参数。训练完成后,丢弃投影头,仅保留编码器用于下游任务。
实战经验:Batch Size 是 SimCLR 的生命线。原论文使用 8192 的 Batch Size,因为负样本数量直接决定了对比学习的难度。如果显存有限,建议使用 MoCo(动量对比学习)或 SimCLR 的分布式版本,通过队列或跨 GPU 通信来扩大负样本池。

案例拆解:图像检索系统中的 SimCLR 应用

假设我们要为一个电商平台构建以图搜图系统,但只有 10 万张无标签商品图。使用 SimCLR 进行预训练:

  • 初始现象:直接使用 ImageNet 预训练模型在商品图上表现不佳,因为商品图背景复杂、拍摄角度多样。
  • 关键参数:ResNet-50 编码器,Batch Size 512(4 卡 A100),温度系数 τ=0.1,训练 200 个 epoch。
  • 分析判断:训练初期损失下降缓慢,说明负样本区分度不够。调整数据增强策略,增加颜色抖动强度,并加入 Sobel 边缘滤波作为额外增强。
  • 操作步骤:① 将商品图统一 resize 到 224×224;② 使用 SimCLR 框架训练 3 天;③ 冻结编码器,提取所有商品图的特征向量存入向量数据库;④ 用户上传查询图,提取特征后计算余弦相似度。
  • 结果对比:Top-5 检索准确率从 62% 提升至 84%,且对光照变化、旋转的鲁棒性显著增强。
  • 风险与代价:训练耗时较长,且对数据增强的敏感性高。若增强过强,会导致正样本对差异过大,模型难以收敛。

常见误区与总结

误区一:认为对比学习必须依赖大量负样本。实际上,BYOL 和 SwAV 已经证明无负样本也能训练,关键在于如何防止表征坍塌。
误区二:忽视温度系数的作用。τ 设置过大(如 1.0)会导致所有负样本被均匀对待,模型无法聚焦困难样本;τ 过小(如 0.05)则训练不稳定。
误区三:投影头在训练后被直接丢弃。虽然这是标准做法,但在某些小数据集上,保留投影头的中间层特征可能比编码器最终特征更有效。

2.2 生成式自监督:MAE 的掩蔽重建哲学

核心原理:从像素中学习结构

生成式自监督的核心理念是:如果模型能够从部分观测中重建完整输入,那么它必然学到了数据的深层结构。MAE(Masked Autoencoder)将这一思想推向极致——它随机掩蔽输入图像 75% 的像素块,仅用剩余的 25% 像素重建整个图像。这种“高掩蔽率”迫使模型无法依赖局部像素连续性,必须学习全局语义信息。

MAE 的架构是非对称的:编码器仅处理可见的像素块(计算量小),解码器则处理编码器的输出和掩蔽标记(Mask Token),重建所有像素。这种设计使得预训练效率极高,训练速度比对比学习快 3 倍以上。

操作流程:掩蔽、编码、重建

  1. 图像分块:将图像划分为 16×16 的 Patch,并添加位置编码。
  2. 随机掩蔽:按均匀分布随机掩蔽 75% 的 Patch,不参与编码器计算。
  3. 编码器前向:仅将可见 Patch 输入 ViT 编码器,得到潜在表征。
  4. 解码器重建:将编码器输出与掩蔽标记拼接,输入轻量级解码器,预测每个掩蔽 Patch 的像素值。
  5. 损失计算:仅计算掩蔽 Patch 的 MSE 损失(或归一化像素损失)。
关键细节:MAE 的损失只计算掩蔽区域,不计算可见区域。这迫使解码器专注于“想象”缺失内容,而不是简单地复制输入。此外,解码器在预训练后被丢弃,仅保留编码器用于下游任务。

案例拆解:医学影像分割的预训练

在 CT 影像分割任务中,标注数据极其昂贵。我们使用 MAE 在 5 万张无标注的腹部 CT 切片上进行预训练:

  • 初始现象:从零训练 U-Net 分割胰腺,Dice 系数仅 0.72。
  • 关键输入:CT 图像窗宽窗位调整后归一化,掩蔽比例 75%,ViT-Base 编码器,训练 800 epoch。
  • 分析判断:CT 图像纹理单一,MAE 重建难度低于自然图像,因此需要提高掩蔽比例至 80% 以增加任务难度。
  • 操作步骤:① 使用 MAE 预训练 ViT 编码器;② 将编码器作为 U-Net 的骨干网络,冻结前 3 层;③ 微调 100 epoch。
  • 结果对比:Dice 系数提升至 0.83,且在小样本(仅 200 张标注)情况下,比从零训练提升 15%。
  • 风险与代价:MAE 对高分辨率图像显存消耗大,需使用梯度累积或混合精度训练。另外,掩蔽策略是随机的,对于医学影像中关键的小病灶区域,可能因掩蔽而丢失重要信息。

常见误区与总结

误区一:认为掩蔽比例越高越好。虽然 75% 是自然图像的最优值,但纹理简单的数据(如医学影像、卫星图)可能需要 80%-85%。
误区二:忽略位置编码的重要性。MAE 中位置编码是绝对位置,如果输入图像尺寸与预训练不一致,需要插值位置编码,这会影响性能。
误区三:将 MAE 与对比学习对立。实际上,MAE 学习到的表征更偏重空间结构,对比学习更偏重语义不变性,两者可以结合使用。

2.3 预测式自监督:BYOL 的无负样本革命

核心原理:预测未来,避免坍塌

BYOL(Bootstrap Your Own Latent)的提出颠覆了对比学习“必须依赖负样本”的认知。它仅使用正样本对进行训练,通过一个动量编码器(Target Network)和预测器(Predictor)的巧妙设计,避免了表征坍塌。其核心思想是:让在线网络(Online Network)预测目标网络(Target Network)的输出,而目标网络的参数是在线网络的指数移动平均(EMA)。

这种“自举”机制使得目标网络提供了一个相对稳定的回归目标,在线网络不断向这个目标逼近,而目标网络又缓慢地跟随在线网络更新。两者相互促进,最终收敛到有意义的表征空间。

操作流程:双网络与 EMA

  1. 数据增强:对同一图像生成两个增强视图 v1 和 v2。
  2. 在线网络:v1 输入在线编码器 f_θ,得到表征 y_θ,再经投影头 g_θ 得到 z_θ,最后经预测头 q_θ 得到预测 q_θ(z_θ)。
  3. 目标网络:v2 输入目标编码器 f_ξ,得到表征 y_ξ,再经投影头 g_ξ 得到 z_ξ。目标网络不接收梯度。
  4. 损失计算:计算 q_θ(z_θ) 与 z_ξ 的 MSE 损失(L2 归一化后)。
  5. 参数更新:在线网络通过梯度下降更新,目标网络通过 EMA 更新:ξ ← τξ + (1-τ)θ,其中 τ 通常取 0.99 或 0.995。
为什么不会坍塌?如果在线网络试图输出一个常数,那么目标网络也会逐渐变为常数,但 EMA 的滞后性使得目标网络不会立即跟随。同时,预测器的存在打破了对称性,使得在线网络必须预测目标网络的输出,而不是简单地复制自身。这种“慢目标”机制是 BYOL 成功的核心。

案例拆解:视频世界模型的状态表征学习

在构建机器人操作世界模型时,我们需要从视频帧中提取紧凑的状态表征。使用 BYOL 对 10 万帧机器人操作视频进行预训练:

  • 初始现象:原始像素维度高(224×224×3),直接用于强化学习状态输入导致样本效率极低。
  • 关键输入:视频帧序列,使用时间维度的相邻帧作为正样本对(即同一时刻的两种不同增强),而非同一帧的两种增强。
  • 分析判断:相邻帧在时间上高度相关,但存在微小运动,这比单帧增强更能学习到动态特征。
  • 操作步骤:① 使用 BYOL 预训练编码器,输入为相邻两帧的增强视图;② 训练 500 epoch,τ 从 0.99 线性增加到 1.0;③ 将编码器输出(2048 维)降维至 128 维作为状态表征;④ 将表征输入 PPO 算法进行策略学习。
  • 结果对比:在 MuJoCo 机器人环境中,使用 BYOL 表征的 PPO 比使用原始像素的 PPO 收敛速度快 3 倍,最终回报高 20%。
  • 风险与代价:EMA 更新率 τ 对训练稳定性影响极大。τ 过小会导致目标网络更新过快,失去“慢目标”作用;τ 过大则目标网络更新过慢,训练初期收敛缓慢。

常见误区与总结

误区一:认为 BYOL 不需要数据增强。实际上,BYOL 对增强的依赖比 SimCLR 更强,尤其是随机裁剪和颜色抖动,它们是防止坍塌的关键。
误区二:忽视 EMA 更新率的调度。固定 τ=0.99 在长训练中可能导致目标网络与在线网络过于接近,失去稳定性。建议采用余弦调度或逐步增大 τ。
误区三:将 BYOL 直接用于多模态数据。BYOL 假设两个视图来自同一分布,如果用于图文匹配,需要修改架构以处理异构输入。

2.4 三大范式对比与选型指南

维度 对比学习(SimCLR) 生成式(MAE) 预测式(BYOL)
监督信号 实例判别(正负样本对) 像素重建(掩蔽区域) 特征预测(自举目标)
负样本依赖 强依赖(Batch 内负样本) 无 无
训练效率 中(需大 Batch) 高(仅处理可见 Patch) 中(双网络前向)
表征特性 语义不变性、判别性强 空间结构、全局上下文 平滑、适合小样本微调
典型应用 检索、分类、人脸识别 分割、检测、异常检测 强化学习、视频预测
主要风险 表征坍塌、Batch 敏感 重建任务过于简单/复杂 EMA 不稳定、增强敏感

选型建议:如果下游任务是分类/检索,优先选择 SimCLR 或 BYOL;如果任务是密集预测(分割/检测),MAE 更合适;如果构建世界模型需要时序预测能力,BYOL 的时间对比变体(如 Time-Contrastive Learning)效果更佳。

2.5 实战中的通用注意事项

  • 数据增强是灵魂:无论哪种方法,增强策略的选择直接影响表征质量。建议先在小数据集上做增强消融实验。
  • Batch Size 与学习率联动:SimCLR 和 BYOL 对 Batch Size 敏感,通常采用线性缩放规则:Batch 翻倍,学习率也翻倍。
  • 评估协议:使用线性探测(Linear Probing)评估表征质量,即冻结编码器,训练一个线性分类器。这比端到端微调更能反映表征的泛化能力。
  • 分布式训练:自监督训练通常需要多卡。使用 PyTorch DDP 时,注意同步 BatchNorm 统计量,否则会引入不一致。
总结复盘:自监督学习的三大范式并非互斥。在实际世界模型项目中,我们常将 MAE 用于静态场景理解,BYOL 用于动态状态表征,SimCLR 用于跨模态对齐。理解每种方法的底层假设和适用边界,比盲目追求 SOTA 更重要。建议初学者从 SimCLR 入手理解对比损失,再过渡到 MAE 和 BYOL,逐步建立完整的自监督学习知识体系。