参考博客:
https://blog.csdn.net/jcfszxc/article/details/135381129

对比学习本质上是在“重塑模型的嵌入空间(embedding space)”,让语义相似的样本距离更近、语义不相似的样本距离更远。

监督对比学习

在数据点对及其标签上进行训练以区分相似和不相似的实例。
https://arxiv.org/pdf/2409.12941
自监督对比学习与监督对比学习

在数据增强的基础上添加与锚点相同类别的样本

文章步骤:
表示学习框架(数据增强-编码网络-投影网络)
对比损失函数(自监督对比损失-用数据增强的结果进行对比损失|监督对比损失-添加同类样本进行学习)
内在的执行硬正负样本挖掘的能力,即保留以下功能,来自硬正/负样本(即与锚点继续对比对编码器有很大益处的样本)的梯度贡献很大,而来自易正/负样本(即与锚点继续对比对编码器只有轻微益处的样本)的梯度贡献很小,挖掘重要的样本很关键。

通常,损失应用于深度网络的最后一层,在测试时,利用先前层的嵌入进行下游秦阿姨任务、微调或直接检索任务。

自监督对比学习

从未标记的数据中学习表示,不依赖显式标签,利用借口任务设计,从未标记的数据中创建正负对,借口任务经过精心设计,旨在鼓励模型捕获数据中有意义的特征和相似性。
自监督中常用的借口任务之一是生成增强视图,创建同一个实例的多个增强版本将其视为正样本,而来自其它样本 实例则被视为负对,训练模型区分这些对,可以捕获更高级别的语义信息并很好地推广到下游任务。

自监督cv分类学习:先让模型知道“谁和谁是一样的”,再告诉它“这类到底是什么”,它就能举一反三地泛化到看过但没被标注过的图像。

对比学习运作机制
对比学习基本思想是鼓励相似的实例在学习的嵌入空间被映射得更近,同时将不相似的实例推得更远,通过将学习视为一项辨别任务,对比学习允许模型捕获数据中的相关特征和相似性。

对比学习步骤

1.数据增强

对比学习通常从数据增强开始,设计对未标记的数据应用各种转换或扰动构建不同实例或增强视图。
向模型提供同一实例的不同视角。

2.编码器网络

训练编码器网络,将增强实例作为输入,并将其映射到潜在的表示空间,捕获有意义的特征和相似性。网络学习从增强实例中提取和编码高级表示,从而有助于后续步骤中区分相似和不相似的实例。

3.投影网络

为了进一步细化学习到的表示,采用投影网络,投影网络获取编码器网络的输出并将其投影到地位空间。有助于增强所学习的表示的辨别能力,降低数据的复杂性与冗余。

4.对比学习

一旦增强实例被编码并投影到嵌入空间,就会应用对比学习目标,目标最大化正对之间的一致性,并最小化负对之间的一致性,模型经过训练,可以最小化嵌入空间中正对之间的距离并最大化负对之间的距离。

损失函数

需要选择有适合的损失函数进行对比学习
常见的对比学习中的损失函数包括以下:
(1)对比损失
(2)三重态损失
(3)N对损耗
(4)InfoNCE
(5)logistic loss

训练与优化

评估与概括

总结