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

机器算法验证 神经网络 无监督学习 直觉 半监督学习 迁移学习
2022-01-20 07:29:10

也许是一个菜鸟查询,但最近我看到了大量关于对比学习(半监督学习的一个子集)的论文。

我阅读的一些著名的和最近的研究论文详细介绍了这种方法:

你们能否详细解释这种方法与迁移学习和其他方法?另外,为什么它在 ML 研究社区中越来越受欢迎?

2个回答

对比学习非常直观。如果我让你在下面的照片中找到匹配的动物,你可以很容易地做到这一点。您了解左侧的动物是“猫”,并且您想在右侧找到另一个“猫”图像。因此,您可以在相似和不同的事物之间 进行对比。

在此处输入图像描述

对比学习是一种为机器寻找相似和不同事物的任务的方法。您可以训练机器学习模型来对相似图像和不同图像进行分类。有多种选择可供选择:

  1. 编码器架构:将图像转换为表示
  2. 两幅图像之间的相似度度量:均方误差、余弦相似度、内容损失
  3. 生成训练对:手动注释、自监督方法

这篇文更详细地解释了对比学习背后的直觉,以及它是如何在最近的论文(如SimCLR )中应用的。

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

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)中,否定键被维护在一个队列中,每个训练批次中只有查询和肯定键被编码。

引用自最近的一篇研究论文,用动量对比学习改进基线 @ https://arxiv.org/abs/2003.04297