Yann LeCun
@ylecun
@TimDarcet @gabriberton JEPA 中的 P 代表 predictive(预测)。
主要区别并不在 JEA 和 JEPA 之间,而在联合嵌入(Joint Embedding,无论是否具有预测性)与生成式架构之间。
是否需要预测器取决于任务。
给定观测 x 和 y(y 仅在训练时可用),生成式架构从 x 预测 y。损失函数是 y 与其预测之间的散度:
L = divergence(y, pred(enc(x)) )
JEA 也会对 y 编码,并最小化 x 与 y 的表示之间的散度,同时防止坍缩:
L = divergence( enc(y), enc(x) ) + R( enc(y), enc(x) )
其中 R 是抗坍缩正则项,可以在一批样本上计算。
当预测没有特定方向时会使用 JEA,也就是当 x 和 y 是同一场景的不同视角时。JEA 的想法非常古老。Becker 和 Hinton 在 1989 年提出过一个简单模型,其抗坍缩基于信息最大化。Schmidhuber 在 1992 年有一个基于冗余最小化的版本。在 1993 年的 NIPS 上,我提出了孪生网络(Siamese nets),这是一种训练 JEA 的对比方法。这类对比方法在 2020 年 Google 的 SimCLR 论文之后流行起来。2021 年,我组里的 Stéphane Deny 提出了 Barlow Twins 冗余降低正则项,似乎可以在大规模上奏效。紧接着是 Adrien Bardes、Jean Ponce 和我提出的 VICReg,以及去年 Randall Balestriero 和我提出的 SIGReg。
DINO 是一种 JEA 方法,来自 Piotr Bojanowski 在 FAIR-Paris 的小组的一长串论文,从 Noise as Targets(2017)、Deep Clustering(2018-2020)到 DINO v1-v3,后者是在聚类之间而非样本之间做对比。
JEPA 增加了一个预测器,这在预测不对称时很有用。例如,当 x 是 y 的退化/损坏版本,或当 x 是当前观测、y 是未来观测(时间预测)时。损失函数是:
L = divergence( enc(y), pred(enc(x)) ) + R( enc(y), enc(x) )
所有这些模型都可以通过一个动作变量 a 来增强,该变量输入预测器,编码一个动作、干预或变换,以从 x 产生 y。
这会把系统变成一个“世界模型”。在 JEPA 中,损失变为
L = divergence( enc(y), pred(enc(x), a) ) + R( enc(y), enc(x) )