【深度学习:(Contrastive Learning) 对比学习】深入浅出讲解对比学习

2024-01-04

在这里插入图片描述

对比学习允许模型从未标记的数据中提取有意义的表示。通过利用相似性和不相似性,对比学习使模型能够在潜在空间中将相似的实例紧密地映射在一起,同时将那些不同的实例分开。这种方法已被证明在计算机视觉、自然语言处理 (NLP) 和强化学习等不同领域都是有效的。

在本综合指南中,我们将探讨:

什么是对比学习?

对比学习是一种学习方法,侧重于通过对比正反两方面的实例来提取有意义的表征。它利用的假设是,在学习到的嵌入空间中,相似的实例应靠得更近,而不相似的实例应离得更远。通过将学习作为一项辨别任务,对比学习允许模型捕捉数据中的相关特征和相似性。

监督对比学习(SCL)

监督对比学习(SCL)是对比学习的一个分支,它利用标记数据来明确训练模型以区分相似和不相似的实例。在 SCL 中,模型在数据点对及其标签上进行训练,指示数据点是否相似或不相似。目标是学习一个表示空间,其中相似的实例聚集得更近,而不同的实例则被推开。

一种流行的方法是信息噪声对比估计(InfoNCE)损失函数。 InfoNCE损失在学习的表示空间中最大化正样本之间的一致性并最小化负样本之间的一致性。通过优化此目标,模型学会区分相似和不相似的实例,从而提高下游任务的性能。

我们将在本文后面讨论 InfoNCe 损失以及其他损失。

自监督对比学习(SSCL)

自监督对比学习(SSCL)采用不同的方法,从未标记的数据中学习表示,而不依赖于显式标签。 SSCL 利用借口任务的设计,从未标记的数据创建正负对。这些借口任务经过精心设计,旨在鼓励模型捕获数据中有意义的特征和相似性。

SSCL 中常用的借口任务之一是生成增强视图。这涉及创建同一实例的多个增强版本并将它们视为正对,而来自不同样本的实例则被视为负对。通过训练模型来区分这些对,它可以学习捕获更高级别的语义信息并很好地推广到下游任务。

SSCL 在计算机视觉和自然语言处理等各个领域都取得了令人瞩目的成果。在计算机视觉领域,SSCL 在图像分类、目标检测和图像生成等任务中取得了成功。在自然语言处理中,SSCL已应用于句子表示学习、文本分类和机器翻译等任务。

Supervised Contrastive Learning 监督对比学习
在这里插入图片描述

对比学习是如何运作的?

对比学习已被证明是一种强大的技术,允许模型利用大量未标记数据并提高性能,即使使用有限的标记数据也是如此。对比学习背后的基本思想是鼓励相似的实例在学习的嵌入空间中被映射得更近,同时将不相似的实例推得更远。通过将学习视为一项辨别任务,对比学习允许模型捕获数据中的相关特征和相似性。

现在,让我们深入了解对比学习方法的每个步骤,以更深入地了解它的工作原理。

数据增强

对比学习通常从数据增强开始,这涉及对未标记的数据应用各种转换或扰动以创建不同的实例或增强视图。

数据增强的目标是增加数据的可变性,并将模型暴露给同一实例的不同视角。常见的数据增强技术包括裁剪、翻转、旋转、随机裁剪和颜色变换。通过生成不同的实例,对比学习可确保模型学习捕获相关信息,而不管输入数据的变化如何。

在这里插入图片描述

编码器网络

对比学习的下一步是训练编码器网络。编码器网络将增强实例作为输入,并将它们映射到潜在表示空间,在其中捕获有意义的特征和相似性。编码器网络通常是深度神经网络架构,例如用于图像数据的卷积神经网络(CNN)或用于顺序数据的循环神经网络(RNN)。网络学习从增强实例中提取和编码高级表示,从而有助于在后续步骤中区分相似和不相似的实例。

投影网络

为了进一步细化学习到的表示,采用了投影网络。投影网络获取编码器网络的输出并将其投影到低维空间,通常称为投影或嵌入空间。这个额外的投影步骤有助于增强所学习的表示的辨别能力。通过将表示映射到较低维的空间,投影网络降低了数据的复杂性和冗余,有助于更好地分离相似和不相似的实例。

对比学习

一旦增强实例被编码并投影到嵌入空间中,就会应用对比学习目标。目标是最大化正对(来自同一样本的实例)之间的一致性,并最小化负对(来自不同样本的实例)之间的一致性。这鼓励模型将相似的实例拉得更近,同时将不同的实例推开。实例之间的相似度通常使用距离度量来测量,例如欧几里德距离或余弦相似度。该模型经过训练,可以最小化嵌入空间中正对之间的距离并最大化负对之间的距离。

损失函数

对比学习利用各种损失函数来建立学习过程的目标。这些损失函数在指导模型捕获重要表示并区分相似和不相似实例方面发挥着至关重要的作用。选择合适的损失函数取决于具体的任务要求和数据特征。每个损失函数都旨在促进有效捕获数据中有意义的相似性和差异的表示的学习。在后面的部分中,我们将详细研究这些损失函数。

训练与优化

一旦定义了损失函数,就可以使用大型未标记数据集来训练模型。训练过程涉及迭代更新模型的参数以最小化损失函数。随机梯度下降(SGD)或其变体等优化算法通常用于微调模型的超参数。训练过程通常涉及批量更新,其中一次处理增强实例的子集。

在训练过程中,模型学习捕获数据中的相关特征和相似性。迭代优化过程逐渐细化学习到的表示,从而更好地区分和分离相似和不相似的实例。

评估与概括

评估和泛化是评估学习表征的质量及其在实际应用中的有效性的关键步骤。

下游任务评估

在这里插入图片描述

图像分类、目标检测、图像分割

对比学习成功的最终衡量标准是其在下游任务上的表现。学习到的表示被用作特定任务的输入特征,例如图像分类、对象检测、情感分析或语言翻译。使用适当的指标来评估模型在这些任务上的性能,包括准确性、精确度、召回率、F1 分数或特定于任务的评估标准。下游任务的更高性能表明所学习的表示具有更好的泛化性和实用性。

迁移学习

对比学习支持迁移学习,从一项任务中学到的表示可以应用于相关任务。通过评估表征转移到新任务或数据集的程度来评估泛化能力。如果学习到的表示能够很好地推广到未见过的数据并提高新任务的性能,则表明对比学习在捕获有意义的特征和相似性方面的有效性。

在这里插入图片描述

与基线比较

为了了解对比学习的有效性,有必要将学习到的表示与基线模型或其他最先进的方法进行比较。可以在性能指标、鲁棒性、迁移学习能力或计算效率方面进行比较。这种比较可以深入了解对比学习的附加价值及其相对于其他方法的潜在优势。

了解对比学习的工作原理后,让我们探讨这种学习技术的一个重要方面:损失函数的选择和作用。

对比学习中的损失函数

在对比学习中,采用各种损失函数来定义学习过程的目标。这些损失函数指导模型捕获有意义的表示并区分相似和不相似的实例。通过了解对比学习中使用的不同损失函数,我们可以深入了解它们如何对学习过程做出贡献,并增强模型捕获数据中相关特征和相似性的能力。

对比损失

对比损失是对比学习中的基本损失函数。它的目的是在学习的嵌入空间中最大化正对(来自同一样本的实例)之间的一致性,并最小化负对(来自不同样本的实例)之间的一致性。目标是将相似的实例拉近,同时将不同的实例分开。

对比损失函数通常定义为基于边际的损失,其中实例之间的相似性是使用距离度量来测量的,例如欧几里得距离或余弦相似度。对比损失是通过惩罚嵌入空间中距离太远的正样本和距离太近的负样本来计算的。

对比损失的一种广泛使用的变体是 InfoNCE 损失,我们将很快更详细地讨论它。对比损失在包括计算机视觉和自然语言处理在内的各个领域都显示出有效性,因为它鼓励模型学习能够捕获有意义的相似性和差异的判别性表示。

三重态损失

三元组损失是对比学习中使用的另一种流行的损失函数。它的目的是保留学习的表示空间中实例之间的相对距离。三元组损失涉及形成实例的三元组:锚点实例、正样本(与锚点相似)和负样本(与锚点不同)。目的是确保anchor与正样本之间的距离比anchor与负样本之间的距离小指定的幅度。

在这里插入图片描述
三元组损失背后的直觉是创建一个“三元组约束”,其中锚实例被拉近正样本,同时被推离负样本。通过学习满足三元组约束的表示,模型可以更好地区分相似和不相似的实例。

三元组损失已广泛应用于计算机视觉任务,例如人脸识别和图像检索,其中捕捉细粒度的相似性至关重要。然而,三元组损失可能对三元组的选择很敏感,因为从大型数据集中选择信息丰富的三元组可能具有挑战性并且计算成本昂贵。

N 对损耗

N 对损失是三元组损失的扩展,它考虑给定锚实例的多个正样本和负样本。 N-pair loss 不是将锚实例与单个正样本和负样本进行比较,而是旨在最大化锚实例与所有正实例之间的相似性,同时最小化锚实例与所有负实例之间的相似性。

在这里插入图片描述
N 对损失鼓励模型捕获多个实例之间的细微关系,从而在学习过程中提供更强大的监督。通过同时考虑多个实例,N对损失可以捕获更复杂的模式,并提高学习表示的判别能力。

N对损失已成功用于各种任务,例如细粒度图像识别,其中捕获相似实例之间的细微差异至关重要。它通过利用多个正负实例来缓解与三元组丢失相关的一些挑战,但在处理大型数据集时,它仍然可能对计算要求很高。

信息NCE

信息噪声对比估计(InfoNCE)损失源自噪声对比估计框架。它测量学习嵌入空间中正对和负对之间的相似性。InfoNCE 损失使正对之间的一致性最大化,并使负对之间的一致性最小化。

InfoNCE 损失背后的关键思想是将对比学习问题视为二元分类器。给定一个正对和一组负对,该模型被训练以区分正实例和负实例。实例之间的相似性是使用概率方法(例如 softmax 函数)来衡量的。

InfoNCE 损失通常用于自监督对比学习,其中正对是从同一实例的增强视图中创建的,而负对是使用来自不同样本的实例形成的。通过优化 InfoNCE 损失,该模型学习捕获数据点中有意义的相似性和差异性,从而获得强大的表示。

逻辑损失

逻辑损失,也称为逻辑回归损失或交叉熵损失,是机器学习中广泛使用的损失函数。它已被改编为作为概率损失函数用于对比学习。逻辑损失根据两个实例在嵌入空间中各自的表示来模拟它们相似或不同的可能性。

逻辑损失通常用于对比学习,以估计两个实例属于同一类(相似)或不同类(不同)的概率。通过最大化正对相似的可能性和最小化负对相似的可能性,逻辑损失引导模型进行有效区分。

逻辑损失的概率性使其适用于对复杂关系进行建模和捕获实例之间的细粒度差异。物流损失已成功应用于图像识别、文本分类、推荐系统等多个领域。

这些不同的损失函数提供了不同的方法来优化对比学习目标,并鼓励模型学习在数据点中捕获有意义的相似性和差异性的表示。损失函数的选择取决于任务的具体要求和数据的特征。

通过利用这些目标,对比学习使模型能够学习强大的表示,从而促进在各种机器学习应用中更好地区分和泛化。

对比学习的实际应用

让我们探讨一些对比学习已被证明有效的突出用例:

半监督学习

半监督学习是指使用标记和未标记数据训练模型的学习场景。在许多现实情况下,获取标记数据可能既昂贵又耗时,而未标记数据却很丰富。对比学习在半监督学习中特别有益,因为它允许模型利用大量未标记数据来学习有意义的表示。

通过使用对比学习对未标记数据进行训练,模型可以在标记数据有限时捕获有用的模式并提高性能。对比学习使模型能够学习捕获数据中相关特征和相似性的判别表示。然后可以利用这些学习到的表示来增强下游任务的性能,例如图像分类、对象识别、语音识别等。

监督学习

对比学习在标记数据丰富的传统监督学习场景中也有应用。在监督学习中,模型根据标记数据进行训练以预测或分类新实例。然而,标记数据可能并不总是能够捕获现实世界实例的全部多样性和复杂性,从而导致泛化方面的挑战。

通过利用未标记数据和标记数据,对比学习可以增强学习过程并提高模型的判别能力。未标记的数据提供了额外的信息,并允许模型捕获更稳健的表示。这可以提高各种监督学习任务的性能,例如图像分类、情感分析、推荐系统等。

自然语言处理

对比学习在自然语言处理(NLP)领域显示出了可喜的成果。 NLP 涉及人类语言的处理和理解,对比学习已被应用于增强各种 NLP 任务。

通过从大量未标记的文本数据中学习表示,对比学习使模型能够捕获语义信息和上下文关系。这已应用于句子相似度、文本分类、语言建模、情感分析、机器翻译等任务。

例如,在句子相似性任务中,对比学习允许模型学习捕获句子对之间语义相似性的表示。通过利用对比学习的力量,模型可以更好地理解句子的含义和上下文,从而促进更准确和更有意义的比较。

数据增强

增强涉及对未标记的数据应用各种转换或扰动以创建不同的实例或增强视图。这些增强的视图在对比学习过程中充当正对,使模型能够学习捕获相关特征的鲁棒表示。

对比学习中使用的数据增强技术包括裁剪、翻转、旋转、颜色变换等。通过生成不同的实例,对比学习可确保模型学会捕获相关信息,无论输入数据如何变化。

数据增强在应对数据稀缺和解决标记数据的局限性方面发挥着至关重要的作用。通过对比学习和数据增强有效利用未标记的数据,模型可以学习更通用和更稳健的表示,从而提高各种任务的性能,特别是在计算机视觉领域。

流行的对比学习框架

近年来,几种对比学习框架由于其在学习强大表示方面的有效性而在深度学习中获得了突出的地位。让我们探索一些引起关注的流行对比学习框架:

SimCLR

简单表示对比学习 (SimCLR) 是一种自监督对比学习框架,因其在学习强大表示方面的有效性而获得了广泛认可。它通过利用数据增强、精心设计的对比目标和对称神经网络架构的组合,建立在对比学习的原则之上。

在这里插入图片描述

SimCLR 的核心思想是最大化同一实例的增强视图之间的一致性,同时最小化不同实例的视图之间的一致性。通过这样做,SimCLR 鼓励模型学习捕获数据中有意义的相似点和差异的表示。该框架采用大批量训练方案来促进高效且有效的对比学习。此外,SimCLR 还采用了一种称为“归一化温度尺度交叉熵”(NT-Xent) 损失的特定归一化技术,可增强训练稳定性并提高学习表示的质量。

SimCLR 在计算机视觉、自然语言处理和强化学习等各个领域都表现出了卓越的性能。它在多个基准数据集和任务中优于现有方法,展示了其在不依赖显式标签的情况下学习强大表示的有效性。

MoCo

动量对比(MoCo)是另一个著名的自监督对比学习框架,引起了广泛关注。它引入了负实例动态字典的概念,这有助于模型捕获数据中有意义的特征和相似性。 MoCo 利用动量编码器,逐渐更新负例的表示,以增强模型捕获相关信息的能力。

在这里插入图片描述
该框架最大化正对之间的一致性,同时最小化负对之间的一致性。通过维护负面实例的动态字典,MoCo 为学习表示提供了一组更丰富的对比示例。它在计算机视觉和自然语言处理等多个领域表现出了强大的性能,并在多个基准数据集上取得了最先进的结果。

BYOL

Bootstrap Your Own Latent (BLOY) 是一种自监督对比学习框架,强调目标网络参数的在线更新。它采用一对在线网络和目标网络,目标网络通过在线网络权重的指数移动平均值进行更新。 BYOL 专注于学习表示,而不需要反例。

在这里插入图片描述
该框架最大限度地提高了同一实例的增强视图之间的一致性,同时将相似性估计与负面示例解耦。 BYOL 在计算机视觉和自然语言处理等各个领域都展现了令人印象深刻的性能。它在表示质量方面显示出显着的进步,并在多个基准数据集中取得了最先进的结果。

SwAV

交换增强和视图 (SwAV) 是一种自监督对比学习框架,引入基于聚类的目标来学习表示。它利用小批量中同一图像的多次增强和多个视图来鼓励模型将相似的表示分配给同一实例的增强视图。

通过使用聚类目标,SwAV 旨在识别相似表示的聚类,而不需要显式的类标签。它在各种计算机视觉任务(包括图像分类和目标检测)中显示出了可喜的结果,并且在多个基准数据集上取得了具有竞争力的性能。

Barlow Twins

Barlow Twins 是一种自我监督的对比学习框架,专注于减少潜在表征之间的互相关性。它引入了去相关损失,明确鼓励模型为相似的实例产生不同的表示,从而增强整体判别力。

在这里插入图片描述

通过减少互相关性,Barlow Twins 的目标是在学习的表示中捕获更多独特且信息丰富的特征。该框架在计算机视觉和自然语言处理等各个领域展示了令人印象深刻的性能,并在多个基准数据集中取得了最先进的结果。

通过利用对比学习的原理并结合创新方法,这些框架为计算机视觉、自然语言处理和强化学习等各个领域的进步铺平了道路。

关键要点

  • 对比学习是一种强大的技术,可以从未标记的数据中学习有意义的表示,利用相似性和相异性来映射潜在空间中的实例。
  • 它包括带有标记数据的监督对比学习(SSCL)和带有针对未标记数据的借口任务的自监督对比学习(SCL)。
  • 重要的组件包括数据增强、编码器网络和投影网络,捕获相关特征和相似性。
  • 对比学习中常用的损失函数有对比损失、三重损失、N 对损失、InfoNCE 损失和逻辑损失。
  • 对比学习具有多种应用,例如半监督学习、监督学习、NLP 和数据增强,可提高模型性能和泛化能力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【深度学习:(Contrastive Learning) 对比学习】深入浅出讲解对比学习 的相关文章

随机推荐

  • 服务器3M固定带宽什么意思?够用吗?

    云服务器3M固定带宽是什么意思 速度快吗 3M固定带宽是指云服务器的公网带宽 用于在外网提供服务的 3M带宽的下载速度是384KB 秒 上传速度是1280KB 秒 对于个人博客或流量不多的企业官网速度还是挺快的 阿里云服务器网aliyunf
  • thinkadmin安装步骤

    一 先cmd运行安装命令 创建项目 需要在英文目录下面执行 composer create project zoujingli thinkadmin 二 在confing中的database php配置数据库 三 将仓库的data复制到ap
  • 亚马逊自养号测评防关联技巧分享,亚马逊自养号怎么养?

    我们做亚马逊的都知道 想要做好亚马逊 测评是免不了的 很多卖家选择自养号这种方式 但是亚马逊养号并不是一件容易的事 需要我们提高养号的技术和掌握相应的技巧 而且随着平台审查力度的加强 自养号的账号关联问题也给卖家们带来许多困扰 那么什么是自
  • VUE+Springboot实现生成二维码及二维码下载功能

    一 Springboot相关 1 pom依赖引入
  • Python selenium模块的安装和配置教程

    一 selenium的安装以及简单应用 我们以谷歌浏览器的chromedriver为例 1 在Python虚拟环境中安装selenium模块 pip pip3 install selenium 2 下载版本符合的webdriver 以chr
  • 山西电力市场日前价格预测【2024-01-05】

    日前价格预测 预测说明 如上图所示 预测明日 2024 01 05 山西电力市场全天平均日前电价为259 10元 MWh 其中 最高日前电价为363 99元 MWh 预计出现在18 00 最低日前电价为0 00元 MWh 预计出现在11 1
  • 大数据毕设分享 flink大数据淘宝用户行为数据实时分析与可视化

    文章目录 0 前言 1 环境准备 1 1 flink 下载相关 jar 包 1 2 生成 kafka 数据 1 3 开发前的三个小 tip 2 flink sql 客户端编写运行 sql 2 1 创建 kafka 数据源表
  • ICT行业“样品”相关业务挑战及解决方案介绍

    ICT行业供应链样品相关业务介绍 在信息通信技术 ICT 行业中 研发打样 结构件打样和非0价打样是研发和产品设计过程中的重要环节 下面我会通过具体的业务场景来解释这些概念 1 研发打样 场景例子 一家手机制造公司正在开发一款新型智能手机
  • 视频转文字用什么软件好?我来分享几款给你

    各位打工人是不是总是会接到整理会议视频的任务 你是否也曾为在整理会议视频时因为手速跟不上说话节奏而烦恼 你也曾因为转录大量内容而纠结于低效率的问题 你是否也曾为无法同时转录多个声音源而无法理解全场对话而苦恼 如果是的话不妨来看看下面这篇文章
  • Git Bash教程

    Git Bash教程 Pull操作 Pull操作 输入 git pull 呈现 base root xx git pull https github com xx xx git 得到 remote Enumerating objects 5
  • DC电源模块的应用范围与市场前景

    DC电源模块的应用范围与市场前景 DC电源模块广泛应用于各种电子设备和系统中 包括通信设备 计算机 工业自动化设备 医疗设备 航天航空设备 新能源设备等 它们为这些设备提供稳定的直流电源 保证设备的正常运行 DC电源模块主要用于为电子设备提
  • 判断字符串是否是16进制颜色工具类

    该方法接受一个字符串参数colorCode 表示需要校验的十六进制颜色值 方法内部使用正则表达式来匹配colorCode是否符合规则 如果 符合则返回true 否则返回false 正则表达式解释 表示匹配字符串的开头 表示匹配 字符 表示一
  • 光端机技术综述:从理论到实践的全面探索

    在当今数据驱动的时代 光端机技术 已成为通信领域的核心组成部分 从理论的深度研究到实践的广泛应用 光端机技术不断推动着信息社会的发展 成为连接不同设备和网络的关键技术 技术特点 高速数据传输 光端机 利用光纤传输数据 具有极高的传输速率 相
  • .cer格式证书文件和 .pfx格式证书文件有什么区别?

    这里我们将讨论 cer 和 pfx 文件类型之间的差异 什么是数字证书 数字证书在电子通信中用作验证身份的密码机制 我们需要这些证书来建立安全的在线通信渠道 并确保数字数据的隐私 真实性和正确性 数字证书包括主题 实体详细信息 颁发者 CA
  • 3 分钟为英语学习神器 Anki 部署一个专属同步服务器

    Anki 介绍 Anki 是一款基于间隔重复 Spaced Repetition 原理的学习软件 想象一下 你的大脑就像是一个需要定期维护的精密仪器 间隔重复就好比是一种精准的维护计划 它通过在最佳时刻复习信息 来确保知识在你的脑海中牢固地
  • 代码随想录算法训练营Day17 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236.二叉树的最近公共祖先

    LeetCode 530 二叉搜索树的最小绝对差 本题思路 看到二叉搜索树 我们可以知道 它的中序遍历的有序的 并且是单调递增 如下图所示 然后我们就可以计算出相隔的两个数之间的差值 然后找到最小的那一个即可 定义一个初始为 min 第二个
  • 组建一家IT公司的一些事项

    组建一家IT公司需要考虑多个方面 包括确定公司名称 选择注册地点 确定公司类型 组建团队 选择合适的技术和平台以及建立良好的客户关系等 以下是一些详细的步骤和建议 一 组建事项 确定公司名称 在选择公司名称时 需要考虑名称的含义和市场竞争性
  • 看完这篇 教你玩转镜像转换神器qumu实现虚拟机做题自由!

    前言 最近有小伙伴说比赛没设备 问有没有不需要设备也能实现做题自由的方法 今天这里分享一期 看完这篇你将学会 使用 qumu 转换镜像格式 一般我们做题都是 img 格式的环境 需要导入设备 有些小伙伴没有设备 就可以使用这种方法 把 im
  • 【2023最新版】黑客入门教程|三分钟手把手教会,非常简单

    前言 你知道在每天上网时 有多少黑客正在浏览我们计算机中的重要数据吗 黑客工具的肆意传播 使得即使是稍有点计算机基础的人 就可以使用简单的工具对网络中一些疏于防范的主机进行攻击 在入侵成功之后 对其中的数据信息为所欲为 当用户发现密码被盗
  • 【深度学习:(Contrastive Learning) 对比学习】深入浅出讲解对比学习

    对比学习允许模型从未标记的数据中提取有意义的表示 通过利用相似性和不相似性 对比学习使模型能够在潜在空间中将相似的实例紧密地映射在一起 同时将那些不同的实例分开 这种方法已被证明在计算机视觉 自然语言处理 NLP 和强化学习等不同领域都是有