论文链接: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:

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相关推荐

  1. 《PROTOTYPICAL CONTRASTIVE LEARNING OF UNSUPERVISED REPRESENTATIONS》学习笔记

    PROTOTYPICAL CONTRASTIVE LEARNING 引言 方法 实验 Low-shot classification 特征可视化 消融实验 引言 本文提出了一种无监督表征学习方法,主要 ...

  2. 【论文阅读】MLGCL:Multi-Level Graph Contrastive Learning

    目录 摘要 1 引言 2 准备工作 3 MLGCL框架 3.1 图数据增强 3.2 编码器 3.3 多级损失函数 4 实验 摘要 在本文中,我们提出了一个多层次图对比学习(MLGCL)框架,通过对比图 ...

  3. 2022_WWW_Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning

    [论文阅读笔记]2022_WWW_Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Lear ...

  4. 21-ICLR-Prototypical Contrastive Learning of Unsupervised Representations

    对比学习 PCL(Prototypical Contrastive Learning) 对比学习 摘要 Motivation 实现 摘要 本文提出了原型对比学习,连接了对比学习和聚类的无监督表示学习方 ...

  5. Contrastive Learning Rivals Masked Image Modeling in Fine-tuning via Feature Distillation

    特征蒸馏FD:让对比学习匹敌图像掩码自监督学习 paper:[2205.14141] Contrastive Learning Rivals Masked Image Modeling in Fine ...

  6. Fully Unsupervised Person Re-identification via Selective Contrastive Learning

    1. 整体摘要 1.1 问题 1)完全无监督学习的基本方法就是使用聚类算法或分类算法预测伪标签或者训练一个神经网络用于生成伪标签.但是这种方法依赖于标签预测的正确率,并且使得无监督行人重识别不再是一个 ...

  7. 【层级多标签文本分类】Incorporating Hierarchy into Text Encoder: a Contrastive Learning Approach for Hierarchic

    Incorporating Hierarchy into Text Encoder: a Contrastive Learning Approach for Hierarchical Text Cla ...

  8. 文献阅读:SimCSE:Simple Contrastive Learning of Sentence Embeddings

    文献阅读:SimCSE:Simple Contrastive Learning of Sentence Embeddings 1. 文献内容简介 2. 主要方法介绍 3. 主要实验介绍 1. STS ...

  9. 论文阅读:Self-supervised Video Representation Learning with Cross-Stream Prototypical Contrasting

    题目:Self-supervised Video Representation Learning with Cross-Stream Prototypical Contrasting 作者:Marti ...

  10. 论文阅读:Graph Contrastive Learning with Augmentations

    Abstract 图结构数据上的广义.可转移和鲁棒表示学习仍然是当前图神经网络(GNNs)面临的一个挑战.与用于图像数据的卷积神经网络(CNNs)不同,对gnn的自我监督学习和预训练的探索较少.在本文 ...

最新文章

  1. 华为认证物联网开发利器:小熊派IoT开发板
  2. java中编写单选按钮的程序_java的单选按钮GUI程序设计
  3. 亲和属性和链路管理组的TE隧道路径控制原理
  4. Linux笔记-iptables规则原理和组成
  5. 2022牛客寒假算法基础集训营4 签到题7题
  6. 安装SQL2005后SQL Server Management Studio 没有出来的解决方案
  7. AD15将PCB变为自己想要的形状
  8. 【Andriod Studio实现拨打电话和发送短信功能】
  9. 你不知道的JavaScript(上中下)全册
  10. 陈洁kiki宠粉节狂欢夜观看破千万!四年磨一剑将宠粉做到极致
  11. 不能是underfined.xxx
  12. MySQL备份报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  13. Kylin RT OLAP reassign流程即重新分配replica_set 流程
  14. 走进tensorflow第九步——WARNING(警告)也值得关注
  15. android 横向照片流,MAC下将Android照片与iCloud照片流同步的方法
  16. 隐形的翅膀怎么用计算机弹出来,《隐形的翅膀》原版吉他谱分享,用音阶指法弹简谱其实很简单 … …-520吉他网...
  17. [python]判断麻将和牌算法
  18. MATLAB下载github仓库
  19. 猜字小游戏java方法体_java实现猜字小游戏
  20. 英文字体打包下载 常用英文字体收集备用

热门文章

  1. lua在线手册 lua在线lua学习教程 lua参考手册中文翻译
  2. [cocos2d-x]SpaceFighting[安卓/IOS都适用]
  3. 华为太极magisk安装教程_【玩机必会技能】小米手机通用刷TWRP RECOVERY|ROOT|刷第三方ROM教程...
  4. 使用Certbot申请ssl证书
  5. python发微信消息_利用python实现微信消息自动提醒
  6. love2d贪吃蛇---画方格
  7. HDU6638 Snowy Smile
  8. AdminLTE2的模态框(弹出框)
  9. 脱壳_00_压缩壳_ASPACK
  10. Python制作动态桌面壁纸程序-摆脱付费-Mili_Wallpaper