点击上方,选择星标或置顶,每天给你送上干货
作者|对白
出品|公众号:对白的算法屋
我为大家整理了对比学习在最新各大顶会上的论文合集及相应代码,所列举的论文涉及领域包括但不限于CV,NLP,Audio,Video,Multimodal,Graph,Languagemodel等,GitHub地址:
(请大家多多点赞支持ヽ(▽)ノ,笔芯!)
大家好,我是对白。
对比学习(ICLR2021/2020)
值得一读的八篇论文
1.PCL
论文标题:PrototypicalContrastiveLearningofUnsupervisedRepresentations
论文方向:图像领域,提出原型对比学习,效果远超MoCo和SimCLR
作者提出了原型对比学习****(PCL),它是无监督表示学习的一种新方法,综合了对比学习和聚类学习的优点。
在高层次上,PCL的目标是找到给定观测图像的最大似然估计(MLE)模型参数:
在期望最大化框架下,作者证明以前的对比学习方法是PCL的一个特例。
此外,作者在少样本迁移学习、半监督学习和目标检测三个任务上对PCL进行评估,在所有情况下都达到了SOTA的性能。
作者希望PCL可以扩展到视频,文本,语音等领域,让PCL激励更多有前途的非监督式学习领域的研究,推动未来人工智能的发展,使人工标注不再是模型训练的必要组成部分。
2.BalFeat
论文标题:ExploringBalancedFeatureSpacesforRepresentationLearning
论文方向:图像领域,主要解决类别分布不均匀的问题
现有的自监督学习(SSL)方法主要用于训练来自人工平衡数据集(如ImageNet)的表示模型。目前还不清楚它们在实际情况下的表现如何,在实际情况下,数据集经常是不平衡的。基于这个问题,作者在训练实例分布从均匀分布到长尾分布的多个数据集上,对自监督对比学习和监督学习方法的性能进行了一系列的研究。作者发现与具有较大性能下降的监督学习方法不同的是,自监督对比学习方法即使在数据集严重不平衡的情况下也能保持稳定的学习性能。
这促使作者探索通过对比学习获得的平衡特征空间,其中特征表示在所有类中都具有相似的线性可分性。作者的实验表明,在多个条件下,生成平衡特征空间的表征模型比生成不平衡特征空间的表征模型具有更好的泛化能力。基于此,作者提出了k-positive对比学习,它有效地结合了监督学习方法和对比学习方法的优点来学习具有区别性和均衡性的表示。大量实验表明,该算法在长尾识别和正常平衡识别等多种识别任务中都具有优越性。
3.MiCE
论文方向:图像领域,对比学习结合混合专家模型MoE,无需正则化
目前深度聚类方法都是使用two-stage进行构建,即首先利用pre-trained模型进行表示学习,之后再使用聚类算法完成聚类,但是由于这两个stage相互独立且现有的baseline在表示学习中并没有很好的建模语义信息,导致后面无法得到很好的聚类。
作者提出一个统一概率聚类模型MixtureofContrastiveExperts(MiCE),其同时利用了对比学习学习到的判别性表示(discriminativerepresentation)和潜在混合模型获取的语义结构(semanticstructures)。受多专家模型(mixtureofexperts,MoE)启发,通过引入潜变量来表示图像的聚类标签,从而形成一种混合条件模型,每个条件模型(也称为expert)学习区分实例的子集,同时该模型采用门控函数(gatingfunction)通过在专家之间分配权重,将数据集根据语义信息划分为子集。进一步,为了解决潜在变量引起的非简单推断(nontrivialinference)和其他训练问题,作者进一步构建了可扩展的EM算法,并给出了收敛性证明。其中E步,根据观测数据得到潜在变量后验分布的估计,M步最大化关于所有变量的对数条件似然。
MICE具有以下优点:
定义无标签数据集合,其中每个样本会被分配一个独一无二的代理标签,即任两个不同的样本代理标签不同(该代理标签可以与图片索引有关)。使用无监督方法学习representation,考虑两个encoder,分别生成经过L2归一化后的(每个样本输入之前会经过随机数据增强),我们可以将概率分类器建模为
MixtureofContrastiveExperts(MiCE)
数据量为的数据集,cluster数量为,考虑一个潜在变量为图片的clusterlabel,则作者将(1)式改写为MiCEGateFunction
门控函数根据输入图像的语义为expert加权,将实例判别任务分为K个子任务,定义encoder,则对于图片的输出为,则门控函数定义如下
其中为temperature,表示gatingprototype,所有prototype和图像都在空间经过L2归一化。
门控函数根据图像和gatingprototype之间的余弦相似度对数据集进行软划分(softpartitioning),我们可以把它看作是一个基于prototype的判别聚类模块,使用后验推理来获得聚类标签,以考虑expert中的附加信息。
Experts
每个expert(定义为无正则化模型)解决由门控函数安排的实例判别子任务,因此图像被第个expert识别为第的概率为
其中,为归一化因子,通常难以计算。
类似MoCo,构建学生网络将图像映射成个连续同样教师网络的输出为,具体来说,分别表示在第expert上的学生和教师,参数化非归一化模型为
其中表示expert的clusterprotype。
在(5)式中,第一个instance-wise点积计算实例层次(instance-level)信息,以在每个expert中产生具有判别性的表示(discriminativerepresentation),第二个instance-prototype点积将类别层次(class-level)信息整合到表示学习中,使之能够围绕prototype形成清晰的集群结构,因此产生的embedding具有语意结构同时有足够的判别性来表示不同实例
该式子基于MoCo和EMA构造,更多细节查看原文附录D。
4.i-Mix
论文标题:i-Mix:AStrategyforRegularizingContrastiveRepresentationLearning
论文方向:图像领域,少样本+MixUp策略来提升对比学习效果
对比表示学习已经证明了从未标记数据中学习表示是有效的。然而,利用领域知识精心设计的数据增强技术已经在视觉领域取得了很大进展。
作者提出了i-Mix,一个简单而有效的领域未知正则化策略,以改善对比表示学习。作者将MixUp技巧用在了无监督对比学习上,可有效提升现有的对比学习方法(尤其是在小数据集上):给每个样本引入虚拟标签,然后插值样本空间和label空间进行数据增强。实验结果证明了i-Mix在图像、语音和表格数据等领域不断提高表示学习的质量。
5.ContrastiveLearningwithHardNegativeSamples
论文标题:ContrastiveLearningwithHardNegativeSamples
论文方向:图像&文本领域,研究如何采样优质的难负样本
对比学习在无监督表征学习领域的潜力无需多言,已经有非常多的例子证明其效果,目前比较多的针对对比学习的改进包括损失函数、抽样策略、数据增强方法等多方面,但是针对负对的研究相对而言更少一些,一般在构造正负对时,大部分模型都简单的把单张图像及其增强副本作为正对,其余样本均视为负对。这一策略可能会导致的问题是模型把相距很远的样本分得很开,而距离较近的负样本对之间可能比较难被区分。
基于此,本文构造了一个难负对的思想,主要目的在于,把离样本点距离很近但是又确实不属于同一类的样本作为负样本,加大了负样本的难度,从而使得类与类之间分的更开,来提升对比学习模型的表现。
好的难负样本有两点原则:1)与原始样本的标签不同;2)与原始样本尽量相似。
这一点就与之前的对比学习有比较明显的差异了,因为对比学习一般来说并不使用监督信息,因此除了锚点之外的其他样本,不管标签如何,都被认为是负对,所以问题的一个关键在于“用无监督的方法筛出不属于同一个标签的样本”。不仅如此,这里还有一个冲突的地方,既要与锚点尽可能相似,又得不属于同一类,这对于一个无监督模型来说是有难度的,因此本文在实际实现过程中进行了一个权衡,假如对样本的难度要求不是那么高的时候,就只满足原则1,而忽略原则2。同时,这种方法应该尽量不增加额外的训练成本。
6.LooC
论文标题:WhatShouldNotBeContrastiveinContrastiveLearning
论文方向:图像领域,探讨对比学习可能会引入偏差
当前对比学习的框架大多采用固定的数据增强方式,但是对于不同的下游任务,不同的数据增强肯定会有不一样的效果,例如在数据增强中加入旋转,那么下游任务就会难以辨别方向,本文针对该问题进行研究。
如果要应用一个数据增强集合到模型中,传统模型的做法是将图片数据进行两次独立的数据增强(数据增强参数具有一定随机性)。作者提出LooC,方法是执行种数据增强,第一种是将图片数据进行两次独立的数据增强,也即是对所有数据增强方式全应用;剩下N种是将参数固定,这样就保证了最终训练出来的模型会对这种变换敏感,这n+1种数据增强方式最终会生成n+1种嵌入空间。最终loss如下:
作者发现原来的对比学习都是映射到同一空间,但是这样会有害学习其他的特征,所以作者把每个特征都映射到单独的特征空间,这个空间里都只有经过这一种数据增强的数据。
总而言之,数据增强是要根据下游任务来说的,分成不同的Embedding空间来适合多种不同的下游任务,但是对需要两种以上特征的下游任务效果可能就不好了。比如不仅仅需要结构信息,还需要位置。
7.CALM
论文标题:Pre-trainingText-to-TextTransformersforConcept-centricCommonSense
论文方向:文本领域,利用对比学习和自监督损失,在预训练语言模型中引入常识信息
预训练语言模型在一系列自然语言理解和生成任务中取得了令人瞩目的成果。然而,当前的预训练目标,例如Masked预测和Masked跨度填充并没有明确地对关于日常概念的关系常识进行建模,对于许多需要常识来理解或生成的下游任务是至关重要的。
为了用以概念为中心的常识来增强预训练语言模型,在本文中,作者提出了从文本中学习常识的生成目标和对比目标,并将它们用作中间自监督学习任务,用于增量预训练语言模型(在特定任务之前下游微调数据集)。此外,作者开发了一个联合预训练框架来统一生成和对比目标,以便它们可以相互加强。
大量的实验结果表明,CALM可以在不依赖外部知识的情况下,将更多常识打包到预训练的文本到文本Transformer的参数中,在NLU和NLG任务上都取得了更好的性能。作者表明,虽然仅在相对较小的语料库上进行了几步的增量预训练,但CALM以一致的幅度优于baseline,甚至可以与一些较大的预训练语言模型相媲美,这表明CALM可以作为通用的“即插即用”方法,用于提高预训练语言模型的常识推理能力。
8.Support-setbottlenecksforvideo-textrepresentationlearning
论文标题:Support-setbottlenecksforvideo-textrepresentationlearning
论文方向:多模态领域(文本+视频),提出了cross-captioning目标
对比学习(NIPS2020)
非常经典的九篇论文
1.SpCL
论文标题:Self-pacedContrastiveLearningwithHybridMemoryforDomainAdaptiveObjectRe-ID
论文方向:目标重识别,提出自步对比学习,在无监督目标重识别任务上显著地超越最先进模型高达16.7%
本文提出自步对比学习(Self-pacedContrastiveLearning)框架,包括一个图像特征编码器(Encoder)和一个混合记忆模型(HybridMemory)。核心是混合记忆模型在动态变化的类别下所提供的连续有效的监督,以统一对比损失函数(UnifiedContrastiveLoss)的形式监督网络更新,实现起来非常容易,且即插即用。
上文中提到混合记忆模型(HybridMemory)实时提供三种不同的类别原型,作者提出了使用动量更新(MomentumUpdate),想必这个词对大家来说并不陌生,在MoCo、Mean-teacher等模型中常有见到,简单来说,就是以“参数=(1-动量)x新参数+动量x参数”的形式更新。这里针对源域和目标域采取不同的动量更新算法,以适应其不同的特性。
对于源域的数据而言,由于具有真实的类别,作者提出以类为单位进行存储。这样的操作一方面节省空间,一方面在实验中也取得了较好的结果。将当前mini-batch内的源域特征根据类别算均值,然后以动量的方式累计到混合记忆模型中对应的类质心上去。对于目标域的数据而言,作者提出全部以实例为单位进行特征存储,这是为了让目标域样本即使在聚类和非聚类离群值不断变化的情况下,仍然能够在混合记忆模型中持续更新(ContinuouslyUpdate)。具体而言,将当前mini-batch内的目标域特征根据实例的index累计到混合记忆模型对应的实例特征上去。
2.SimCLRV2(Hinton又一巨作)
论文标题:BigSelf-SupervisedModelsareStrongSemi-SupervisedLearners
论文方向:图像领域(Google出品)
论文链接:BigSelf-SupervisedModelsareStrongSemi-SupervisedLearners
本文针对深度学习中数据集标签不平衡的问题,即大量的未标注数据和少量标注数据,作者提出了一种弱监督的模型SimCLRv2(基于SimCLRv1)。作者认为这种庞大的、极深的网络更能够在自监督的学习中获得提升。论文中的思想可以总结为一下三步:
1.使用ResNet作为backbone搭建大型的SimCLRv2,进行无监督的预训练;
2.然后在少量有标注的数据上进行有监督的finetune;
3.再通过未标注的数据对模型进行压缩并迁移到特定任务上;
实验结果表明他们的模型对比SOTA是有很大的提升的:
作者采用SimCLR中的对比训练方法,即,最大化图片与其增强后(旋转、放缩、颜色变换等)之间的关联程度,通过优化在其隐空间上的对比损失,其公式如下:
SimCLRV2的网络结构如下所示:
在SimCLRV2中,相比V1有一下几点改进:
3.HardNegativeMixingforContrastiveLearning
论文标题:HardNegativeMixingforContrastiveLearning
论文方向:图像和文本领域,通过在特征空间进行Mixup的方式产生更难的负样本
4.SupervisedContrastiveLearning
论文标题:SupervisedContrastiveLearning
论文方向:提出了监督对比损失(Google出品,必属精品)
有监督方法vs自监督方法的对比损失:
论文核心点:
实验方面,主要在ImageNet上进行了实验,通过accuracy验证其分类性能,通过commonimagecorruption验证其鲁棒性。
5.ContrastiveLearningwithAdversarialExamples
论文标题:ContrastiveLearningwithAdversarialExamples
论文方向:对抗样本+对比学习
本文在标准对比学习的框架中,引入了对抗样本作为一种数据增强的手段,具体做法为在标准对比损失函数基础上,额外添加了对抗对比损失作为正则项,从而提升了对比学习基线的性能。简单来说,给定数据增强后的样本,根据对比损失计算对该样本的梯度,然后利用FGSM(FastGradientSignMethod)生成相应的对抗样本,最后的对比损失由两个项构成,第一项为标准对比损失(两组随机增强的样本对),第二项为对抗对比损失(一组随机增强的样本以及它们的对抗样本),两项的重要性可指定超参数进行调节。
6.LoCo
论文标题:LoCo:LocalContrastiveRepresentationLearning
论文方向:利用对比学习对网络进行各层训练
上图左边,展示了一个使用反向传播的常规端到端网络,其中每个矩形表示一个下采样阶段。在中间,是一个GIM,其中在每个阶级的末尾加上一个infoNCE损失,但是梯度不会从上一级流回到下一级。编码器早期的感受野可能太小,无法有效解决对比学习问题。由于相同的infoNCE损失被应用于所有的局部学习块(包括早期和晚期),早期阶段的解码器由于感受野有限,很难得到表征进行正确的区分正样本。例如,在第一阶段,我们需要在特征图上使用的核执行全局平均池化,然后将其发送到解码器(非线性全连接)进行分类。
我们可以在解码器中加入卷积层来扩大感受野。然而,这种增加并没有对端到端的simclr产生影响,因为最后阶段的感受野足够很大。其实,通过在局部阶段之间共享重叠级,就我们可以有效地使解码器的感受野变大,而不会在前向传递中引入额外的成本,同时解决了文中描述的两个问题。
7.WhatMakesforGoodViewsforContrastiveLearning
论文标题:WhatMakesforGoodViewsforContrastiveLearning
论文方向:提出InfoMin假设,探究对比学习有效的原因(Google出品,必属精品)
首先作者提出了三个假设:
其次,作者举了一个非常有趣的例子,如下图所示:
数字,在某个随机背景上以一定速度移动,这个数据集有三个要素:
左边的v1即为普通的view,右边v2+是对应的正样本,所构成的三组正样本对分别共享了数字、数字的位置和背景三个信息,其余两个要素均是随机选择,故正样本也仅共享了对应要素的信息.负样本对的各要素均是随机选择的。
作者紧接着,提出了一些构造novelviews的办法。正如前面已经提到过的,novelviewsv1,v2应当是二者仅共享一些与下游任务有关的信息,抓住这个核心。这样会形成一个U型,最高点定义为甜点,我们的目标就是让两个视图的信息能够刚好达到甜点,不多不少,只学到特定的特征。
8.GraphCL
论文标题:GraphContrastiveLearningwithAugmentations
论文方向:图+对比学习
如上图所示,通过潜在空间中的对比损失来最大化同一图的两个扩充view之间的一致性,来进行预训练。
在本文中,作者针对GNN预训练开发了具有增强功能的对比学习,以解决图数据的异质性问题。
9.ContraGAN
论文标题:ContraGAN:ContrastiveLearningforConditionalImageGeneration
论文方向:条件图像生成领域
本文的方法是:判别器的大致结构和projGAN类似,首先输入图片x经过特征提取器D,得到特征向量;然后分两个分支,一个用于对抗损失判断图片是否真实,一个用于将特征经过一个projectionheadh变成一个维度为k的向量(这个D+h的过程称为)。对于图片的类别,经过一个类别emmbedding变成一个也是维度为k的向量。
损失函数也是infoNCEloss只不过使用类标签的嵌入作为相似,而不是使用数据扩充。
上面的损害将参考样本xi拉到更靠近嵌入e(yi)的类别,并将其他样本推开。但是这个loss可以推开具有与yi相同标签的被认为是负样本。因此,我们还要拉近具有相似类别的图片的距离:
这样,就拉近图片和其类别的距离,同时拉近相同类别的图片的距离。
总结
对比学习已广泛应用在AI各个领域中,且作为自监督学习中的代表,效果甚至已经超越了很多有监督学习任务。很多互联网公司内部其实都有许许多多这样的业务需要大量人力进行标注,AI才能进行训练,从而得到一个不错的效果(无监督一般不敢上),而有了对比学习这个思想后,既能降本又能增效,AI炼丹师们终于可以开心的得到一个更好的效果,实现”技术有深度,业务有产出“这样的目标。期待对比学习这个领域诞生出更多好的作品,在各个应用方向开花结果,也期待NIPS2021的优秀论文们!