SPCL:Siamese Prototypical Contrastive Learning

论文链接: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主要由四种部分组成:

  • the start-epoch clustering
  • the ordinary contrastive loss
  • the Siamese-style metric loss
  • the prototypical cross-entropy loss

2.Clustering and Feature Extracting

Clustering:以无监督方式将将嵌入特征分组到单独的簇中,这步通过K-means算法来完成,其中k为超参数。

具体过程:在每轮的开始,将数据集X划分若干mini-batches。对于每一个batch,生成对应的增强数据并提取增强样本的特征。然后合并(concatenate)所有嵌入特征,并执行聚类算法以获得原型集C = c1,…ck,其中ck是第k个簇的索引,记录样本的向量。

Feature Extracting:

SPCL:Siamese Prototypical Contrastive Learning_第1张图片

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,其他参数大致相同。

Comparison with State-of-the-arts
SPCL:Siamese Prototypical Contrastive Learning_第2张图片

你可能感兴趣的:(机器学习,人工智能,聚类)