自监督学习(十九):对比学习方法综述

A SURVEY ON CONTRASTIVE SELF-SUPERVISED LEARNING

Introduction

这里我们介绍一篇对比学习的综述文章。对比学习是最近非常热门的自监督表示学习方法,在很多的下游任务上都达到或超过了ImageNet预训练的效果。本文比较系统地总结了目前对比学习的几个常用的方法。文章地址:https://arxiv.org/abs/2011.00362

在之前我们介绍的自监督表示学习方法中,pretext task的设计五花八门,从实验结果来看,都取得了一定的效果,但是和ImageNet预训练模型相比还是有差距。对比学习方法采用全新的pretext task,在性能上取得了大的提升。pretext task定义为:对于同一图像及其变体(叫做正样本,通常由数据増广获得)网络应该提取相似的特征,对于不同图像(叫做负样本,从数据集中重采样获得),网络提取的特征要尽量远离。该过程用下图表示:
在这里插入图片描述
如图,左上为原图,左下为经过数据増广之后得到的正样本,对于这两张图网络应该输出相似的特征,但是对于右边的两张图,应该输出不同的特征。我们通常使用余弦距离来衡量特征之间的相似性,假设原图及其正负样本分别记为 X , X + , X − X,X^+,X^- X,X+,X,网络提取的特征记为 R , R + , R − R,R^+,R^- R,R+,R,则特征之间的相似度记为:
s i m ( R , R + ) = R T R + ∣ ∣ R ∣ ∣ . ∣ ∣ R + ∣ ∣ sim(R,R^+)=\frac{R^TR^+}{||R||.||R^+||} sim(R,R+)=R.R+RTR+
对比学习的损失函数可以记为:
L = s i m ( R T , R + ) s i m ( R T , R + ) + ∑ R − s i m ( R T , R − ) L=\frac{sim(R^T,R^+)}{sim(R^T,R^+)+\sum_{R^-}sim(R^T,R^-)} L=sim(RT,R+)+Rsim(RT,R)sim(RT,R+)
通过优化以上损失函数,可以得到预训练模型。尽管直接使用该方法也可以取得效果,但是很明显负样本的质量限制了该方法的性能。对于正样本,由于是经过数据増广得到的,所以在视觉上本来就很像。然而,由于数据集的规模很大,因为负样本的选择随机性太强,提升对比学习性能的关键是设计合理的负样本选取方法。

Architectures

根据当前方法的负样本生成原理,这篇文章将对比学习方法分为了四类:
在这里插入图片描述
下面对这几种方法进行简要的介绍,后续会单独详细介绍:
1) End-to-End
这种结构的方法代表作是hinton组的文章SimCLR。在这种结构下,算法中的所有模块都是可微的,并且参与反向传播。网络的详细图如下:
在这里插入图片描述
输入数据首先经过两次变换,得到2*N个数据,然后正样本之间求sim,其他的样本均为负样本。这种方法需要很大的batchsize。
2) Memory Bank
该方法使用一个在内存中的memory bank保存所有的 R R R,并且不同的 R R R在训练过程中会以滑动平均的方式更新,网络中直接输入的样本均为正样本,负样本从memory bank中取,所以不需要很大的batchsize
3) Momentum Encoder
Memory Bank尽管对batchsize的需求不大,但是却需要非常大的内存空间来保存特征。Momentum Encoder事何凯明提出的方法,通过构建一个队列来控制负样本的数量,通过设计动量encoder来保存网络历史的记录。
4) Clustering
聚类的方法将对比学习与聚类相结合,在训练的过程中,会动态的学到一个类别信息。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值