对比学习(NIPS2020)
非常经典的九篇论文
1.SpCL
论文标题:Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID
论文方向:目标重识别,提出自步对比学习,在无监督目标重识别任务上显著地超越最先进模型高达16.7%
论文来源:NIPS2020
论文链接:https://arxiv.org/abs/2006.02713
论文代码:https://github.com/yxgeee/SpCL
本文提出自步对比学习(Self-paced Contrastive Learning)框架,包括一个图像特征编码器(Encoder)和一个混合记忆模型(Hybrid Memory)。核心是混合记忆模型在动态变化的类别下所提供的连续有效的监督,以统一对比损失函数(Unified Contrastive Loss)的形式监督网络更新,实现起来非常容易,且即插即用。
上文中提到混合记忆模型(Hybrid Memory)实时提供三种不同的类别原型,作者提出了使用动量更新(Momentum Update),想必这个词对大家来说并不陌生,在MoCo、Mean-teacher等模型中常有见到,简单来说,就是以“参数= (1-动量)x新参数+动量x参数”的形式更新。这里针对源域和目标域采取不同的动量更新算法,以适应其不同的特性。
对于源域的数据而言,由于具有真实的类别,作者提出以类为单位进行存储。这样的操作一方面节省空间,一方面在实验中也取得了较好的结果。将当前mini-batch内的源域特征根据类别算均值,然后以动量的方式累计到混合记忆模型中对应的类质心上去。对于目标域的数据而言,作者提出全部以实例为单位进行特征存储,这是为了让目标域样本即使在聚类和非聚类离群值不断变化的情况下,仍然能够在混合记忆模型中持续更新(Continuously Update)。具体而言,将当前mini-batch内的目标域特征根据实例的index累计到混合记忆模型对应的实例特征上去。
2.SimCLR V2(Hinton又一巨作)
论文标题:Big Self-Supervised Models are Strong Semi-Supervised Learners
论文方向:图像领域(Google出品)
论文来源:NIPS2020
论文链接:Big Self-Supervised Models are Strong Semi-Supervised Learners
论文代码:https://github.com/google-research/simclr
本文针对深度学习中数据集标签不平衡的问题,即大量的未标注数据和少量标注数据,作者提出了一种弱监督的模型SimCLRv2(基于SimCLRv1)。作者认为这种庞大的、极深的网络更能够在自监督的学习中获得提升。论文中的思想可以总结为一下三步:
1. 使用ResNet作为backbone搭建大型的SimCLRv2,进行无监督的预训练;
2. 然后在少量有标注的数据上进行有监督的finetune;
3. 再通过未标注的数据对模型进行压缩并迁移到特定任务上;
实验结果表明他们的模型对比SOTA是有很大的提升的:
作者采用SimCLR中的对比训练方法,即,最大化图片与其增强后(旋转、放缩、颜色变换等)之间的关联程度,通过优化在其隐空间上的对比损失,其公式如下:
SimCLR V2的网络结构如下所示:
在SimCLR V2中,相比V1有一下几点改进:
V2大大加深了网络的规模,最大的规模达到了152层的ResNet,3倍大小的通道数以及加入了SK模块(Selective Kernels),据说在1%标注数据的finetune下可以达到29%的性能提升;
首先V2使用了更深的projection head;其次,相比于v1在预训练完成后直接抛弃projection head,V2保留了几层用于finetune,这也是保留了一些在预训练中提取到的特征;
使用了一种记忆机制(参考了这篇论文),设计一个记忆网络,其输出作为负样本缓存下来用以训练。
3.Hard Negative Mixing for Contrastive Learning
论文标题:Hard Negative Mixing for Contrastive Learning
论文方向:图像和文本领域,通过在特征空间进行 Mixup 的方式产生更难的负样本
论文来源:NIPS2020
论文链接:https://arxiv.org/abs/2010.01028
难样本一直是对比学习的主要研究部分,扩大 batch size,使用 memory bank 都是为了得到更多的难样本,然而,增加内存或batch size并不能使得性能一直快速提升,因为更多的负样本并不一定意味着带来更难的负样本。于是,作者通过Mixup的方式来产生更难的负样本。该文章对这类问题做了详尽的实验,感兴趣的可以阅读原论文。
4.Supervised Contrastive Learning
论文标题:Supervised Contrastive Learning
论文方向:提出了监督对比损失(Google出品,必属精品)
论文来源:NIPS2020
论文链接:https://arxiv.org/abs/2004.11362
有监督方法vs自监督方法的对比损失:
- supervised contrastive loss(左),将一类的positive与其他类的negative进行对比(因为提供了标签), 来自同一类别的图像被映射到低维超球面中的附近点。
- self-supervised contrastive loss(右),未提供标签。因此,positive是通过作为给定样本的数据增强生成的,negative是batch中随机采样的。这可能会导致false negative(如右下所示),可能无法正确映射,导致学习到的映射效果更差。