对比学习是机器学习中的一种表征学习方法,它通过比较样本来训练模型,而不只是预测预先定义的类别。其核心目标是让相关样本的表征比不相关样本的表征更为相似。对比学习广泛应用于自监督学习,在这种学习方式中,样本之间的关系由数据构建,无须人工赋予类别标签;但它也可以通过监督学习引入显式标签。学到的表征可用于分类、检索,以及向其他任务迁移。(arxiv.org)
正样本与负样本
对比学习任务会定义一个锚点、一个或多个与该锚点相关的正样本,以及被视为不相关的负样本。这些关系由训练流程设定,并不一定是对语义相似性的普遍判断。在实例级视觉学习中,同一图像经过变换得到的两个视图互为正样本,而其他图像的视图则作为负样本。在监督式对比学习中,具有相同类别标签的样本都可以作为正样本,其他类别的样本则作为负样本。(proceedings.mlr.press)
编码器通常是一个人工神经网络,负责将输入映射为向量。在应用对比学习目标之前,还可以使用独立的投影头对编码器输出进行变换。因此,编码器表征与投影后的表征不必相同。数据增强提供不同的视图,例如经过随机裁剪或颜色调整的图像。这些变换的选择,有助于决定模型会学会忽略哪些差异。(proceedings.mlr.press)
目标函数与优化
一种常用的损失函数是 InfoNCE,它最早在对比预测编码中提出。设锚点表征为 ,正样本表征为 ,候选集合 包含该正样本和若干负样本,则一种常用的温度缩放形式为:
其中, 为相似度得分, 控制用于比较的概率分布的集中程度。这个参数称为温度,但它是算法的超参数,并非物理温度。该目标类似于采用交叉熵的分类任务:模型必须从候选样本中识别出正样本。得分可以用点积计算;对于归一化向量,也可以使用余弦相似度。(arxiv.org)
InfoNCE 也有一种基于信息论的解释。在对比预测编码所采用的采样假设下,它给出了配对变量之间互信息的一个下界。这种解释并不意味着每一种对比学习实现都能准确估计互信息,也不意味着优化该下界就能保证获得对所有下游任务都有用的特征。(arxiv.org)
一种互补的几何解释强调对齐性与均匀性。对齐性使正样本对的表征彼此接近;均匀性则使归一化后的表征分散在单位超球面上。Wang 和 Isola 证明,一种常见的对比学习目标会在渐近意义上优化这两种性质。他们的分析描述了这样一种平衡:既要保留样本之间的关系,又要避免所有表征集中在一个狭小区域内。(proceedings.mlr.press)
代表性方法
对比预测编码于 2018 年提出,它利用先前上下文中的信息,将未来观测的潜在表征与负样本区分开来,从而学习表征。其试验涵盖语音、图像、文本和强化学习环境,说明对比学习目标并不限于计算机视觉。(arxiv.org)
**SimCLR**发表于 2020 年,为每张图像构建两个独立增强的视图,并使用共享编码器和非线性投影头。同一训练批次中的其他样本提供负样本。其试验证明了数据增强组合的重要性,并表明更大的批次和更长的训练时间能够带来收益。(proceedings.mlr.press)
动量对比,简称 MoCo,同样发表于 2020 年。它维护一个已编码样本的队列,并通过查询编码器参数的移动平均来更新键编码器。这种方式能够提供一个规模大、表征相对一致的负样本字典,而不要求所有负样本都来自当前批次。(openaccess.thecvf.com)
监督式对比学习通过利用标签识别多个正样本,扩展了基于批次的目标函数。它并非只学习区分单个实例,而是显式地拉近同一类别样本的表征,同时将不同类别的表征分开。(arxiv.org)
多模态学习与评估
对比学习目标也可用于多模态学习。2021 年提出的 CLIP 训练图像编码器和文本编码器,使其从批次中的候选配对里识别出匹配的图像与描述文本对。它将两种模态对齐到共享的表征空间中。此后,可以用自然语言描述来指定零样本分类的类别,而无须针对每个目标数据集,使用带标签样本训练单独的分类器。(proceedings.mlr.press)
表征通常通过线性探测来评估,即保持编码器不变,只训练一个线性分类器。这不同于微调,后者会更新预训练模型的参数。在其他数据集或任务上进行评估,考察的是迁移学习,而不只是模型在原始预训练数据分布上的表现。这些评估方案衡量的是不同能力,不应将其视为可以互相替代的证据。(proceedings.mlr.press)
局限性与相关方法
负采样可能引入假负样本:被视为不相关的样本,实际上可能属于同一语义类别。将它们的表征推远,可能与下游分类任务的目标相冲突。去偏对比学习通过修改目标函数来处理这一问题,将采样得到的负样本中可能存在同类样本的情况纳入考虑,即使这些样本的标签不可用。(proceedings.neurips.cc)
更广泛地说,对比学习的性能取决于所选择的视图、模型架构和学习流程。理论研究表明,要理解模型为何能在下游任务中取得良好表现,就必须考虑这些归纳偏置,而不能只考虑对比学习目标。因此,仅凭较低的训练损失,不足以证明模型具有实用的泛化(机器学习)能力。(proceedings.mlr.press)
并非所有自监督方法都属于对比学习。2020 年提出的 BYOL 通过预测一个缓慢更新的目标网络对另一视图生成的表征来学习,不使用显式的负样本对。其结果表明,要学习有用的表征,并不必然需要将正样本与负样本进行对比。(proceedings.neurips.cc)