论文链接:https://arxiv.org/abs/2208.08819 BMVC 2021
abstract
CSL(Contrastive Self-supervised Learning)的一个缺点是,对比损失函数需要大量的负样本,以提供更好的理想互信息边界。
通过变大batch size来增加负样本数理,同时也会增强假负例的影响(某张同类图被错误认为原图的负例),即语义相似的样本(其他同类图片)被远离了原图,从而降低了模型效果。
通过引入一个简单的对比学习模型Siamese Prototypical Contrastive Learning(SPCL)来解决上述问题。关键是使用siamese-style的度量损失(metric loss)来匹配原型内特征,同时增加原型间特征之间的距离。
introduction
CSL核心思想是利用样本的增强图去构建对应的pretext任务。此任务学习深度神经网络提取特征表示的能力,可进一步用于大量下游任务,如图像分类,目标检测,语义分割。
之前说过CSL的缺点即假负例,其有如下解决方法:
1)一种直接的方法就是使用样本的标签信息,即监督对比学习。
2)另一种方法是使用原型(prototype),以task-agnostic(任务无关)的方式解决问题。
注:"prototype"指嵌入空间中的样本聚类
实验发现直接添加原型的交叉熵损失会降低性能。此外,通过最小化聚类中心的相似性来分离聚类中心是没有帮助的。实验推测在原始嵌入空间中区分语义假负例是不可行的。为了解决这个问题,提出了一种Siamese-style metric loss,以最大化原型间距离,同时保持原型内相似性。实验揭露在对比投影空间(contrastive projection space)中,假负例与其原图的相似性降低。
Related Works
1.Self-supervised Learning
自监督学习在视觉特征上的高效性可以认为是两方面带来的:pretext tasks,contrastive learning
其中辅助任务有colorization, context autoencoders, spatial jigsaw puzzles and discriminate orientation
2.contrastive learning
SimCLR使用大的batch size来提高性能;
PIRL applies a memory bank来存储和更新在特定阶段所学习到的特征(但是计算量较大);
MoCo and MoCo v2依旧使用memory bank,但是使用动量的方式更新encoder参数,解决了队列中新旧候选样本编码不一致的问题;
Siamese network最大化two views of the anchor的相似性;
DenseCL和SCRL将对比学习应用于像素级和空间级特征,以提高与图像相关的任务的性能。
3.Prototypical Contrastive Learning
与实例对比方法相比,目前使用原型对比方法的模型相对较少。
SwAV专注于使用基于“交换”聚类的机制对相似表示进行分组。
PCL使用原型作为潜在变量,并使用提出的原型损失在基于期望最大化(EM)的框架中执行迭代聚类。
论文使用聚类作为一种无监督学习方法来生成原型作为“伪标签”。此外,提出了siamese-style metric loss来匹配类内特征,并增加类间特征之间的距离。“度量”损失( metric loss)类似于SupCon中的监督约束损失。
Method
1.Overview
Our goal is to learn meaningful visual representations in an unsupervised and task-agnostic style
为了完成上述目标,提出了SCPL,其主要思想为:
SCPL主要由四种部分组成:
2.Clustering and Feature Extracting
Clustering:以无监督方式将将嵌入特征分组到单独的簇中,这步通过K-means算法来完成,其中k为超参数。
具体过程:在每轮的开始,将数据集X划分若干mini-batches。对于每一个batch,生成对应的增强数据并提取增强样本的特征。然后合并(concatenate)所有嵌入特征,并执行聚类算法以获得原型集C = c1,…ck,其中ck是第k个簇的索引,记录样本的向量。
Feature Extracting:
3.Contrastive loss
就是常规对比损失,InfoNCE损失:
4.Siamese-style metric loss
实验证明典型的交叉熵损失使用不会提高下游任务的性能,一个原因是原型集群没有很好地分开,远离聚类中心的样本可能是假正例,并被拉向原图样本,话句话说,原型的语义信息变得更加模糊。
为了解决上述问题,引入Siamese-style metric loss,其匹配类内特征并增加类间特征之间的距离。对于ahcnor原型p的每个特征表示,从p和q中提取两个特征嵌入作为正负对,记为{hp,hp},{hp,hq}
最终利用head projection来预测正负对之间的距离。
5.Prototypical cross-entropy loss
在SPCL中引入了原型交叉熵损失,以将一个样本的增强数据引导到其对应的原型。当样本对应的增强数据之间的相似性很小时,此损失项很有用,且该对比损失项仅产生极小幅度的梯度。
注:gp(h)是一个linear projection head,其将特征映射到标签上。
6.SPCL总损失公式
Ltotal = αLcontra + βLmetric + γLproto
Experimental Results
分别使用了3种数据集CIFAR10/100,ImageNet-1K进行实验
注:消融实验内容请看原论文。
1.对于CIFAR10/100
encoder使用的是ResNet-50,optimizer使用的是LARS,学习率是1.0,weight decay为10-6
同时对于起初的10epochs使用linear warmup,学习率器使用的是cosine decay schedule
超参数K为512,代表512个原型用于聚类。
2.对于 ImageNet-1K
超参数K为2048,其他参数大致相同。