对比学习背后的直觉是什么?

人工智能 机器学习 深度学习 比较 半监督学习
2021-10-26 11:14:03

最近,我看到了大量关于对比学习(半监督学习的一个子集)的论文。

谁能详细解释这种方法及其优点/缺点,以及在哪些情况下它会产生更好的结果?

另外,为什么它在 ML 研究社区中越来越受欢迎?

1个回答

对比学习是一个框架,它从组织成相似/不相似对的数据中学习相似/不相似表示。这可以表述为字典查找问题。

如果我在概念上比较以下损失机制:

MoCoSimCLR使用对比损失函数的变体,例如论文Representation Learning with Contrastive Predictive Coding中的 InfoNCE

Lq,k+,{k}=logexp(qk+/τ)exp(qk+/τ)+kexp(qk/τ)

这里 q 是查询表示,k+是正(相似)关键样本的表示,并且k是负(不同)关键样本的表示。τ是温度超参数。在实例区分借口任务(MoCo 和 SimCLR 使用)中,如果查询和键是同一图像的数据增强版本,则它们形成正对,否则形成负对。 SimCLR 与 MoCo

对比损失可以通过在密钥维护方式上不同的各种机制来最小化。

端到端机制中(图 1a),否定键来自同一批次,并通过反向传播端到端更新。SimCLR是基于这种机制,需要大批量来提供大量底片。

MoCo机制即Momentum Contrast(图 1b)中,否定键被维护在一个队列中,每个训练批次中只有查询和肯定键被编码。