【深度学习】对比学习

1.什么是对比学习

        对比学习有的paper中称之为自监督学习,有的paper称之为无监督学习,自监督学习是无监督学习的一种形式,现有的文献中没有正式的对两者进行区分定义,这两种称呼都可以用。其主要思想是模型能够更加重新的学习到编码器的特征:尽可能的缩小相似样本的距离,拉大正负样本的距离,这里可以理解为让聚类的界限更加明显。

        自监督学习(Self-supervised learning)可以避免对数据集进行大量的标签标注。把自己定义的伪标签当作训练的信号,然后把学习到的表示(representation)用作下游任务里。其目的就是学习一个编码器,此编码器对同类数据进行相似的编码,并使不同类的数据的编码结果尽可能的不同,通过代理任务引入更多的外部信息,以获得更通用的表征。

        首先要区分一下监督学习和无监督学习的区别。以下图为例,监督学习的训练数据是有标签的,它的目的判断出图1和图2是狗,图3是猫。而无监督学习的训练数据是没有标签的,它只需要判断出图1和图2是一个类别,图3与图1、图2不是一个类别,至于图片描述的啥,对于无监督学习来说这不重要!

         对比学习不需要知道每张图的真实标签,只需要知道到谁与谁相似,谁与谁不相似。假设三张图都通过一个网络,得到三张图片对应的特征f1、f2、f3,我们希望对比学习可以做到在特征空间中把f1和f2拉进,且远离f3。也就是说,对比学习要达到的目标是所有相似的物体在特征空间相邻的区域,而不相似的物体都在不相邻的区域。

        对比学习需要知道谁与谁相似,谁与谁不相似,那言外之意就是,对比学习不还得需要标签信息去做有监督学习吗?对比学习之所以被认为是一种无监督的训练方式,是因为人们可以使用代理任务(pretext task)来定义谁与谁相似,谁与谁不相似,代理任务通常是人为设定的一些规则,这些规则定义了哪张图与哪张图相似,哪张图与哪张图不相似,从而提供了一个监督信号去训练模型,这就是所谓的自监督。数据增强是代理任务的实现常见手段。

2.对比学习的范式

        对比学习的典型范式就是:代理任务+目标函数。代理任务和目标函数也是对比学习与有监督学习最大的区别。

        有监督学习的流程,输入x,通过模型输出得到y,输出的y和真实label(ground truth)通过目标函数计算损失,以此进行模型训练。

        而对于无监督学习或自监督学习来说,是没有ground truth的,那怎么办呢?代理任务就是来解决这个问题的,我们用代理任务来定义对比学习的正负样本,无监督学习一旦有了输出y和真实的label,就需要有一个目标函数来计算两者的损失从而指导模型的学习方向。代理任务和目标函数在对比学习中如何起作用?下面通过SimCLR提出的对比学习框架来说明。

 (1)代理任务作用阶段。对于同一样本x,经过两个代理任务分别生成\widetilde{x_{i}}\widetilde{x_{j}}两个样本,simCLR属于计算机视觉领域的paper,文中使用数据增强手段来作为代理任务,例如图片的随机裁剪、随机颜色失真、随机高斯模糊,\widetilde{x_{i}}\widetilde{x_{j}}就称为一个正样本对。

(2)特征提取编码器。f(⋅)就是一个编码器,用什么编码器不做限制,SimCLR中使用的是ResNet,\widetilde{x_{i}}\widetilde{x_{j}}通过f(⋅)分别得到h_{i}h_{j}。可理解为embedding向量。

(3)MLP层。通过特征提取之后,再进入MLP层,SimCLR中强调了这个MLP层加上会比不加好,MLP层的输出就是对比学习的目标函数作用的地方,通过MLP层输出z_{i}z_{j}

(4)目标函数作用阶段。对比学习中的损失函数一般是infoNCE loss,z_{i}z_{j}的损失函数定义如下:

        其中,N代表的是一个batch的样本数,即对于一个batch的N个样本,通过数据增强的得到N对正样本对,此时共有2N个样本,负样本是什么?SimCLR中的做法就是,对于一个给定的正样本对,剩下的2(N-1)个样本都是负样本,也就是负样本都基于这个batch的数据生成。上式中sim(zi,zj)其实就是cosin相似度的计算公式,1[k≠i]输入0或1,当k不等于i时,结果就为1否则为0。τ是温度系数。

        从上式可以看出,分子中只计算正样本对的距离,负样本只会在对比损失的分母中出现,当正样本对距离越小,负样本对距离越大,损失越小。

Reference:

        1.《Self-supervised Learning for Large-scale Item Recommendations》

        2.《Momentum Contrast for Unsupervised Visual Representation Learning》

        3.对比学习(Contrastive Learning),必知必会 - 知乎

猜你喜欢

转载自blog.csdn.net/weixin_44750512/article/details/132302847