【论文笔记_对比学习_2021】Supervised Contrastive Learning

监督对比学习

【论文笔记_对比学习_2021】Supervised Contrastive Learning

; 摘要

近年来,应用于自我监督表示学习的对比学习再次兴起,导致了深度图像模型的无监督训练中的艺术表现。现代批量对比方法包含或明显优于传统的对比损失,如三元组、最大余量和N对损失。在这项工作中,我们将自我监督的批量对比方法扩展到完全监督的设置,使我们能够有效地利用标签信息。属于同一类的点的聚类在嵌入空间中被拉在一起,同时推开来自不同类的样本的聚类。我们分析了监督对比(SupCon)损失的两种可能版本,确定了损失的最佳表现形式。在ResNet-200上,我们在ImageNet数据集上实现了81.4%的顶级准确性,比该架构的最佳报告值高出0.8%。我们在其他数据集和两个ResNet变体上表现出一致优于交叉熵的性能。这种损失显示了对自然损坏的鲁棒性的好处,并且对超参数设置(如优化器和数据扩充)更稳定。我们的损失函数易于实现,参考张量流代码在https://t.ly/supcon 发布。

1.介绍

交叉熵损失是深度分类模型的监督学习中最广泛使用的损失函数。许多工作已经探索了这种损失的缺点,例如缺乏对噪声标签的鲁棒性[64,46]和差裕度的可能性[10,31],导致泛化性能降低。然而,在实践中,大多数建议的替代方案对于大规模数据集(如ImageNet [7])并没有更好的效果,这可以通过持续使用交叉熵来实现最先进的结果[5,6,56,25]来证明。

【论文笔记_对比学习_2021】Supervised Contrastive Learning
图1:我们的Supcon损失始终优于标准数据扩充的交叉熵。我们在ResNet-50、ResNet-101和ResNet200上显示了ImageNet数据集的最高精度,并与AutoAugment [5]、RandAugment [6]和CutMix [60]进行了比较。

【论文笔记_对比学习_2021】Supervised Contrastive Learning
图2:监督与自我监督对比损失:自我监督对比损失(左,等式。1)将每个锚的单个正片(即同一图像的放大版本)与由该批的整个剩余部分组成的一组负片进行对比。本文中考虑的监督对比损失(右)(等式。然而,2)将来自同一类别的所有样本作为阳性与来自该批次剩余部分的阴性进行对比。如黑白小狗的照片所示,考虑类别标签信息导致嵌入空间,在该嵌入空间中,相同类别的元素比在自我监督的情况下更紧密地对齐。

近年来,对比学习工作的复兴导致了自我监督表征学习的重大进展[55,18,38,48,22,3,15]。这些作品中的共同思想是这样的:在嵌入空间中把一个锚和一个”正”样本拉在一起,把锚从许多”负”样本中推开。由于没有可用的标记,阳性对通常由样本的数据扩充组成,而阴性对由锚和从小批次中随机选择的样本形成。这在图2(左)中进行了描述。在[38,48]中,将对比损失与不同数据视图之间的互信息最大化联系起来。

在这项工作中,我们提出了监督学习的损失,通过利用标签信息建立在对比自我监督文献的基础上。来自同一类的规范化嵌入比来自不同类的嵌入更紧密地结合在一起。我们在这项工作中的技术创新是,除了许多负面因素之外,还要考虑每个锚的许多正面因素(与仅使用单一正面因素的自我监督对比学习相反)。这些积极因素是从与锚相同类别的样本中提取的,而不是像在自我监督学习中那样,是锚的数据增强。虽然这是自监督设置的简单扩展,但如何正确设置损失函数并不明显,我们分析了两个备选方案。图2(右)和图1(补充)直观地解释了我们提出的损失。我们的损失可以看作是三重损失[53]和N对损失[45]的概括;前者每个主播只用一个正样本和一个负样本,后者用一个正样本和多个负样本。对每个锚使用许多正面和许多负面使我们能够实现最先进的性能,而不需要硬负面挖掘,这可能很难正确调整。据我们所知,这是第一个在大规模分类问题上持续优于交叉熵的对比损失。此外,它提供了一个统一的损失函数,可用于自我监督或监督学习。

正如我们的实证结果所示,我们的最终损失SupCon实现简单,训练稳定。它在ResNet-50和ResNet-200架构上的ImageNet数据集上实现了出色的顶级准确性[17]。在ResNet-200 [5]上,我们实现了81.4%的顶级精度,比相同架构上的现有技术[30]交叉熵损失提高了0.8%(见图1)。在ImageNet-C数据集[19]上测量,top-1精度的提高伴随着鲁棒性的提高。 我们的主要贡献总结如下:
1.我们对对比损失函数提出了一种新的扩展,允许每个锚点有多个阳性,从而使对比学习适应完全监督的设置。通过分析和经验,我们证明了一个简单的扩展比我们提出的版本要差得多。
2.我们表明,我们的损失为许多数据集的前1名准确性提供了一致的提升。它对自然损坏也更健壮。
3.我们分析证明,我们的损失函数的梯度鼓励学习硬积极和硬消极。
4.我们从经验上表明,我们的损失比交叉熵对一系列超参数更不敏感。

; 2.相关工作

我们的工作借鉴了自监督表示学习、度量学习和监督学习的现有文献。在这里,我们将重点放在最相关的文件。交叉熵损失作为一个强大的损失函数被引入来训练深度网络[40,1,29]。关键思想简单而直观:每个类被分配一个目标(通常是1-hot)向量。然而,尚不清楚为什么这些靶标记应该是最佳的,一些工作已经试图识别更好的靶标记载体,例如[57]。许多论文研究了交叉熵损失的其他缺点,例如对噪声标签的敏感性[64,46],对立例子的存在[10,36],以及差的余量[2]。已经提出了替代损失,但实践中最有效的想法是改变参考标签分布的方法,如标签平滑[47,35],数据扩充,如Mixup [61]和CutMix [60],以及知识提取[21]。

基于深度学习模型的强大的自我监督表示学习方法最近在自然语言领域得到了发展[8,58,33]。在图像领域,像素预测方法也被用于学习嵌入[9,62,63,37]。这些方法试图预测输入信号的丢失部分。然而,更有效的方法是用低维表示空间中的损失来代替密集的每像素预测损失。在对比学习[55,18,22,48,43,3,51]的保护伞下,收集了使用这种范式的自我监督表示学习模型的最新进展。在这些工作中,损耗是由噪声对比估计[13,34]或N对损耗[45]引起的。通常,损耗应用于深层网络的最后一层。在测试时,来自前一层的嵌入被用于下游传输任务、微调或直接检索任务。[15]介绍了仅通过部分损失反向传播的近似方法,以及使用记忆库形式的陈旧表示的近似方法。

与对比学习密切相关的是基于度量远程学习或三元组的损失家族[4,53,42]。这些损失已经被用于学习强有力的表示,通常是在监督的环境中,其中标签被用于引导正负对的选择。三重损失和对比损失的主要区别在于每个数据点的正负对数;三重损耗在每个锚上正好使用一个正对和一个负对。在受监督的度量学习设置中,正对从同一类中选择,负对从其他类中选择,几乎总是需要硬负挖掘以获得良好的性能[42]。类似地,自我监督对比损失对每个锚样本仅使用一个正对,使用同现[18,22,48]或数据扩充[3]选择。主要区别是每个锚使用了许多负对。这些通常是使用某种形式的弱知识均匀随机选择的,例如来自其他图像的小块,或者来自其他随机选择的视频的帧,依赖于这种方法产生非常低的假阴性概率的假设。

类似于我们的监督对比方法的是在[41]中引入并在[54]中使用的软最近邻损失。像[54]一样,我们通过归一化嵌入并用内积代替欧几里德距离来改进[41]。我们通过增加使用数据扩充、一次性对比头和两阶段训练(对比后交叉熵)进一步改进了[54],更重要的是,改变损失函数的形式以显著改善结果(见第3节)。[12]也使用与我们的密切相关的损耗公式,通过最大化损耗来纠缠中间层的表示。与我们的方法最相似的是Kamnitsas等人的通过标签传播(CCLP)正则化的紧凑聚类。[24].虽然CCLP主要集中在半监督的情况下,在完全监督的情况下,正则化减少到几乎完全是我们的损失公式。重要的实际差异包括我们在单位球面上的对比嵌入的标准化、对比物镜中温度参数的调整以及更强的增强。此外,Kamnitsas等人使用对比嵌入作为分类头的输入,该分类头与CCLP正则化子联合训练,而Supcon使用两阶段训练并丢弃对比头。最后,Kamnitsas等人的实验规模比这幅作品要小得多。融合本文和CCLP的研究成果是半监督学习研究的一个有前途的方向。

3.方法

我们的方法在结构上类似于[48,3]中用于自我监督对比学习的方法,只是针对监督分类进行了修改。给定一批输入数据,我们首先应用两次数据扩充来获得该批数据的两个副本。两个副本都通过编码器网络向前传播,以获得2048维的归一化嵌入。在训练期间,这种表示通过投影网络进一步传播,该投影网络在推理时被丢弃。在投影网络的输出上计算监督对比损失。为了使用训练的模型进行分类,我们使用交叉熵损失在冻结的表示之上训练线性分类器。补充材料中的图1提供了直观的解释。
3.1表征学习框架
[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:4bdace39-fd04-4b13-bea1-2d591bdce4df

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:9763f526-299b-4544-a1ae-328e72f52f1e

1.数据扩充模块,Aug(·)。对于每个输入样本x,我们生成两个随机增广量,~x = Aug(x ),每个增广量代表数据的不同视图,并且包含原始样本中信息的某个子集。sec4给出了增强的细节。
2.编码网络,Enc(·),它将x映射到一个表示向量,r = Enc(x) ∈ R DE。两个扩充样本被分别输入到同一编码器,产生一对表示向量。r在RDE被归一化为单位超球(在本文的所有实验中DE = 2048)。与[42,52]的发现一致,我们的分析和实验表明,这种归一化提高了top-1的准确性。
3.投影网络,P roj(·),将r映射到向量z = P roj® ∈ R DP。我们将P roj()实例化为具有大小为2048的单个隐藏层和大小为DP = 128的输出向量的多层感知器[14],或者只是大小为DP = 128的单个线性层;我们将最优P roj(·)体系结构的研究留给未来的工作。我们再次将该网络的输出归一化为位于单位超球面上,这使得能够使用内积来测量投影空间中的距离。正如在自我监督对比学习[48,3]中一样,我们在对比训练结束时丢弃P roj()。因此,我们的推理时间模型包含的参数数量与使用相同编码器Enc(·)的交叉熵模型完全相同。

3.2对比损失函数
给定这个框架,我们现在看对比损失的家族,从自我监督域开始,并分析使其适应监督域的选项,显示一个公式是优越的。对于一组N个随机采样的样本/标签对,{xk,yk}k=1…n,用于训练的相应批次由2N对组成,{̘~xl,~y l } l= 1…2N,其中~x2k和~x2k-1是xk (k = 1…N)的两个随机扩充(也称为”视图”)和~y 2k-1 = ~y 2k = y k。在本文的剩余部分,我们将把一组N个样本称为一个”批次”,把一组2N个增加的样本称为一个”多视角批次”。

【论文笔记_对比学习_2021】Supervised Contrastive Learning

3.2.1自监督对比损失
在多视图批处理中,让i∈I ≡{ 1…2N}是任意扩充样本的索引,设j(i)是源自同一源样本的另一个扩充样本的索引。在自我监督的对比学习中(例如[3,48,18,22]),损失有以下形式:

【论文笔记_对比学习_2021】Supervised Contrastive Learning
【论文笔记_对比学习_2021】Supervised Contrastive Learning
其中,…,·表示内积,…是缩放参数…。索引i称为锚,j(i)是正样本,其他2(N-1)是负样本。

注意,对于每个锚i,有1个正对和2N-2个负对。分母总共有2N-1项(正负)。
3.2.2 有监督对比损失
对于监督学习,等式1的对比损失不能处理这样的情况,即由于标签的存在,已知一个以上的样本属于同一类别。然而,推广到任意数量的正数,会导致在多个可能的函数之间进行选择。等式2和3给出了两种最直接的方法来概括等式1.

【论文笔记_对比学习_2021】Supervised Contrastive Learning
【论文笔记_对比学习_2021】Supervised Contrastive Learning
推广到任意数量的正数。Eqs2和3的主要结构变化在于,对于任何锚,多观察批次中的所有阳性(即,基于扩增的样品以及具有相同标记的任何剩余样品)都对分子有贡献。对于随机生成的批量,其大小相对于类的数量较大,将会出现多个附加项(平均N/C,其中C是类的数量)。受监督的损失促使编码器对来自同一类的所有条目给出紧密对齐的表示,从而产生比从等式1生成的表示空间更健壮的表示空间聚类。正如我们在Sec4中的实验所支持的。
否定越多,对比力越强。Eqs2和3都在等式的对比分母中保留了等式1中负数的和。这种形式很大程度上是由噪声对比估计和N对损失[13,45]引起的,其中通过添加更多的否定示例来提高区分信号和噪声(否定)的能力。这一特性对于通过自我监督的对比学习进行表征学习非常重要,许多论文显示,随着否定数量的增加,表现也会增加[18,15,48,3]。
执行硬正/负挖掘的内在能力。当与归一化表示一起使用时,等式1中的损失诱导产生隐式硬正/负挖掘的梯度结构。来自硬肯定/否定(即,继续对比锚极大地有益于编码器的那些)的梯度贡献大,而来自容易肯定/否定(即,继续对比锚仅微弱有益于编码器的那些)的梯度贡献小。此外,对于硬阳性,这种效应随着阴性的数量增加而增加(渐近地)。Eqs2和3都保留了这个有用的性质,并将其推广到所有积极的方面。这种隐含的属性允许对比损失避开显式硬开采的需要,这是许多损失的微妙但关键的部分,如三重损失[42]。我们注意到,这种隐含的性质适用于监督和自我监督的对比损失,但我们的推导是第一次清楚地表明这种性质。我们从补充材料的损耗梯度中提供了这一性质的完整推导。

然而,这两种损失公式是不等价的。因为log是凹函数,所以Jensen不等式[23]暗示Lsup in ≤ Lsup out。因此,人们期望Lsup out是较优的监督损失函数(因为它是Lsup in的上限)。这一结论也得到了分析支持。表1比较了在ResNet-50 [17]架构上使用Lsup out和Lsup in对不同批量(N)的ImageNet [7] top-1分类精度。Lsup out supervised loss的性能明显高于Lsup in。我们推测这是由于Lsup的梯度,具有比Lsup out更不适合训练的结构。对于Lsup out,阳性归一化因子(即1/|P (i)|)用于消除多视图批次中阳性中导致损失的偏差。然而,尽管中的Lsup也包含相同的归一化因子,但它位于日志内部。因此,它只对总损耗贡献一个附加常数,而不影响梯度。在没有任何标准化效应的情况下,Lsup in的梯度更容易受到阳性偏差的影响,从而导致次优训练。

【论文笔记_对比学习_2021】Supervised Contrastive Learning
表1:6144批次的监督对比损失在ResNet-50上的ImageNet Top-1分类准确度。

对梯度本身的分析支持这一结论。如补充中所示,Lsup out,I或Lsup in,I相对于嵌入zi的梯度具有以下形式:

【论文笔记_对比学习_2021】Supervised Contrastive Learning
这里N(I)≡{ N∈A(I):≘yn 6 =≘yi }是多视点批中所有底片的指数的集合,Pix≡exp(zi zx/τ)/P A∈A(I)exp(zi za/τ)。两个损耗的梯度之差用Xip表示。
【论文笔记_对比学习_2021】Supervised Contrastive Learning

如果将每个zp设置为(偏差较小的)平均正表示向量-z,Xin ip将变为Xout ip:

【论文笔记_对比学习_2021】Supervised Contrastive Learning
从∂Lsup i /∂zi的形式,我们得出结论,稳定由于使用积极的手段有利于训练。在本文的其余部分,我们只考虑Lsup out。

3.2.3与三重损耗和N对损耗的关系
监督对比学习与三元组损失[53]密切相关,三元组损失是监督学习中广泛使用的损失函数之一。在附录中,我们证明了当使用一个正和一个负时,三重损失是对比损失的特殊情况。当使用一个以上的负值时,我们证明了Supcon损耗变得等同于N对损耗[45]。

; 4.实验

Original: https://blog.csdn.net/qq_45128278/article/details/125981661
Author: 乱搭巴士
Title: 【论文笔记_对比学习_2021】Supervised Contrastive Learning

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/561708/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球