基础理论:自监督学习、对比学习、能量模型、联合嵌入预测架构的基本原理与数学表达
JEPA(Joint Embedding Predictive Architecture,联合嵌入预测架构)并非凭空诞生的孤立模型,而是建立在自监督学习、对比学习与能量模型三条理论支线的交汇处。理解这一理论谱系,是掌握JEPA多模态应用的前提。本章将从数学定义出发,厘清各范式的核心假设、优化目标与适用边界,并最终揭示JEPA如何在统一框架下规避对比学习的表征坍缩与负样本依赖问题。
2.1 自监督学习:从数据自身构造监督信号
核心原理
自监督学习的本质是从无标注数据中构造伪标签(pseudo-label),通过设计辅助任务(pretext task)让模型学习数据的内在结构。与监督学习依赖人工标注不同,自监督学习利用数据本身的属性(如空间位置、时间顺序、色彩通道、上下文关系)生成训练信号。其数学目标可统一表示为:
θ* = argmin_θ E_{x~P(x)} [ L( f_θ(x), g(x) ) ]
其中 \( f_θ \) 为编码器,\( g(x) \) 为从数据自身提取的监督信号,\( L \) 为损失函数。根据监督信号构造方式,自监督学习可分为三类:
- 生成式:如MAE(Masked Autoencoder),掩蔽输入的一部分,训练模型重建原始像素或特征;
- 对比式:如SimCLR、MoCo,构造正负样本对,拉近正样本、推开负样本;
- 预测式:如JEPA,预测输入在表示空间中的变换结果,而非原始像素。
判断方法
判断一个自监督方法是否适合多模态场景,可依据以下标准:
- 监督信号的信息密度:像素级重建需要模型捕捉高频细节,但多模态任务往往只需要语义级对齐,过细的重建目标反而会引入噪声;
- 模态间互信息的利用效率:好的自监督任务应能促进跨模态信息交换,而非仅在各模态内部学习;
- 训练稳定性:对比式方法依赖大批量负样本,训练时对batch size敏感,而预测式方法通常更稳定。
小型场景化说明
以图文匹配任务为例:若使用MAE分别重建图像和文本,模型学到的是各自模态内的像素/词元分布,但无法显式对齐"猫"的图像与"cat"的文本。而若设计一个跨模态预测任务——给定图像块,预测对应文本的表示——则模型被迫学习跨模态的语义对应关系。这正是JEPA在多模态场景中的切入点。
2.2 对比学习:拉近与推开的博弈
核心原理与数学表达
对比学习的核心思想是在表示空间中拉近正样本对、推开负样本对。给定锚点 \( x \),正样本 \( x^+ \)(如同一图像的不同增强视角),负样本 \( x^- \)(如batch内其他样本),其经典损失函数InfoNCE定义为:
L_InfoNCE = -log [ exp(sim(z, z^+)/τ) / ( exp(sim(z, z^+)/τ) + Σ_{i=1}^{K} exp(sim(z, z_i^-)/τ) ) ]
其中 \( z = f_θ(x) \) 为编码器输出,\( sim(\cdot,\cdot) \) 通常为余弦相似度,\( τ \) 为温度系数。从能量模型视角看,InfoNCE等价于最小化正样本对的能量、最大化负样本对的能量:
E(z, z^+) → 低值,E(z, z^-) → 高值
对比学习的三大痛点
| 痛点 | 表现 | 对多模态的影响 |
|---|---|---|
| 负样本依赖 | 需要大量负样本,batch size通常≥256 | 多模态数据batch构造困难,显存开销大 |
| 表征坍缩 | 所有样本被映射到同一表示 | 模态间无法区分,对齐失去意义 |
| 模态偏差 | 强模态(如图像)主导损失 | 弱模态(如文本)表示质量下降 |
案例拆解:CLIP的对比学习局限
CLIP(Contrastive Language-Image Pre-training)是对比学习在多模态中的代表作。其训练batch size为32768,依赖超大规模负样本对。在实际应用中暴露以下问题:
- 细粒度理解不足:CLIP擅长图像-文本整体匹配,但对图像中物体空间关系、属性细节的编码不够敏感;
- 对hard negative敏感:当两个文本描述高度相似(如"一只白猫"与"一只黑猫"),CLIP容易混淆,因为对比损失只要求相对距离,不保证绝对语义精度。
这说明对比学习虽然能建立模态间粗粒度对齐,但缺乏对表示内部结构的约束。JEPA正是针对这一缺陷,引入预测式目标来细化表示空间。
2.3 能量模型:统一视角下的表示学习
核心原理
能量模型(Energy-Based Model, EBM)将学习问题转化为能量函数的塑造问题。对于输入变量 \( x \) 和隐变量 \( y \),定义能量函数 \( E(x,y) \),学习目标是让数据分布中的样本对具有低能量,非数据分布样本对具有高能量。其概率形式为:
p(x,y) = exp(-E(x,y)) / Z,其中 Z = ∫∫ exp(-E(x,y)) dx dy
由于配分函数 \( Z \) 难以计算,EBM通常使用对比散度(Contrastive Divergence)或噪声对比估计(NCE)来近似训练。在表示学习中,能量函数可定义为:
E(x, y) = || f_θ(x) - g_φ(y) ||²
即两个模态表示之间的欧氏距离平方。低能量意味着两个表示在空间中靠近,高能量意味着远离。
能量模型与对比学习的关系
| 维度 | 对比学习 | 能量模型 |
|---|---|---|
| 优化目标 | 相对距离(正负样本比) | 绝对能量(低能量区域) |
| 负样本 | 必需 | 可选(通过正则化替代) |
| 坍缩防护 | 依赖负样本 | 依赖能量函数设计 |
| 多模态适用性 | 需要大量配对数据 | 可处理未配对数据 |
判断方法
当面临多模态对齐任务时,可依据以下问题选择范式:
- 是否有充足的配对数据?若不足,能量模型+正则化更合适;
- 是否需要细粒度语义区分?对比学习在粗粒度匹配上高效,但细粒度任务需引入额外结构;
- 训练资源是否受限?对比学习的大batch需求在资源有限时难以满足。
2.4 JEPA:在表示空间做预测的联合嵌入架构
核心原理与数学表达
JEPA由Yann LeCun团队提出,其核心思想是在抽象表示空间中进行预测,而非在原始输入空间。给定输入 \( x \),通过编码器 \( f_θ \) 得到表示 \( z_x = f_θ(x) \)。JEPA引入一个预测器 \( g_φ \),用于从上下文表示 \( z_{ctx} \) 预测目标表示 \( z_{tgt} \):
L_JEPA = D( g_φ(z_ctx), z_tgt ) + λ · R(z_tgt)
其中 \( D \) 为距离度量(如均方误差),\( R \) 为正则化项(如方差保持、特征去相关)。关键设计在于:
- 不对输入做像素级重建,只要求预测目标表示,从而丢弃与任务无关的细节信息;
- 不依赖负样本,通过正则化项防止表征坍缩;
- 预测器 \( g_φ \) 可建模跨模态映射,例如从文本表示预测图像表示。
多模态JEPA的扩展形式
在多模态场景中,JEPA可扩展为:给定模态A的表示 \( z_A \),预测模态B的表示 \( z_B \):
L_mmJEPA = || g_φ(z_A) - z_B ||² + λ_1 · Var(z_A) + λ_2 · Var(z_B) + λ_3 · ||Cov(z_A)||²_F
其中方差项防止表示坍缩到常数,协方差项促进特征维度间的去相关。这种设计使得模型在无负样本的情况下,依然能学习到信息丰富的多模态表示。
案例拆解:图像-文本JEPA预训练
背景与约束:某电商平台需要构建商品图文检索系统,训练数据为100万条商品图文对,但存在大量噪声(如图文不匹配、图像质量差)。使用CLIP训练时,batch size需≥512才能稳定,且对噪声敏感。
初始现象:CLIP在验证集上的图文检索Recall@1仅为68%,且对"红色连衣裙"与"蓝色连衣裙"的区分度不足。
分析判断:对比损失只要求正样本对相似度高于负样本对,但未约束表示空间的几何结构。当两个文本描述仅颜色不同时,其表示可能非常接近,导致检索混淆。
实际操作:
- 改用JEPA架构,图像编码器为ViT-Base,文本编码器为BERT-Base,预测器为2层MLP;
- 损失函数采用 \( L = || g_φ(z_text) - z_img ||² + 0.1·(Var(z_img) + Var(z_text)) \);
- 训练时batch size仅需64,无需负样本;
- 训练20个epoch后,验证Recall@1提升至79%。
结果对比:JEPA在细粒度区分(颜色、材质、款式)上显著优于CLIP,且训练显存占用降低约60%。
风险与代价:JEPA的收敛速度较慢(需要更多epoch),且对正则化系数 \( λ \) 敏感。若 \( λ \) 过大,表示会过度分散;过小则可能坍缩。
复盘经验:JEPA适合数据噪声大、batch size受限、需要细粒度语义区分的场景。但需仔细调参,并建议使用指数移动平均(EMA)更新目标编码器以稳定训练。
常见误区与总结复盘
- 误区一:认为JEPA不需要任何负样本。实际上,JEPA通过正则化项隐式地防止坍缩,但若正则化设计不当,仍可能出现表示退化。建议监控表示方差和协方差矩阵的迹。
- 误区二:将JEPA与MAE混淆。MAE在像素空间重建,JEPA在表示空间预测。前者保留像素级细节,后者更关注语义级信息。多模态任务应优先选择JEPA。
- 误区三:忽略预测器的容量。预测器 \( g_φ \) 若过于简单,无法建模跨模态的复杂映射;若过于复杂,则可能记忆训练数据。建议使用2-3层MLP,并加入Dropout。