万物皆Contrastive Learning,从ICLR和NIPS上解读对比学习最新研究进展(二)

简介: 万物皆Contrastive Learning,从ICLR和NIPS上解读对比学习最新研究进展(二)

对比学习(NIPS2020)


非常经典的九篇论文


25.png


1.SpCL


26.png


论文标题: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


27.png


本文提出自步对比学习(Self-paced Contrastive Learning)框架,包括一个图像特征编码器(Encoder)和一个混合记忆模型(Hybrid Memory)。核心是混合记忆模型在动态变化的类别下所提供的连续有效的监督,以统一对比损失函数(Unified Contrastive Loss)的形式监督网络更新,实现起来非常容易,且即插即用。


28.png


上文中提到混合记忆模型(Hybrid Memory)实时提供三种不同的类别原型,作者提出了使用动量更新(Momentum Update),想必这个词对大家来说并不陌生,在MoCo、Mean-teacher等模型中常有见到,简单来说,就是以“参数= (1-动量)x新参数+动量x参数”的形式更新。这里针对源域和目标域采取不同的动量更新算法,以适应其不同的特性。


对于源域的数据而言,由于具有真实的类别,作者提出以类为单位进行存储。这样的操作一方面节省空间,一方面在实验中也取得了较好的结果。将当前mini-batch内的源域特征根据类别算均值,然后以动量的方式累计到混合记忆模型中对应的类质心上去。对于目标域的数据而言,作者提出全部以实例为单位进行特征存储,这是为了让目标域样本即使在聚类和非聚类离群值不断变化的情况下,仍然能够在混合记忆模型中持续更新(Continuously Update)。具体而言,将当前mini-batch内的目标域特征根据实例的index累计到混合记忆模型对应的实例特征上去。


2.SimCLR V2(Hinton又一巨作)


29.png


论文标题: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是有很大的提升的:


30.png


作者采用SimCLR中的对比训练方法,即,最大化图片与其增强后(旋转、放缩、颜色变换等)之间的关联程度,通过优化在其隐空间上的对比损失,其公式如下:


31.png


SimCLR V2的网络结构如下所示:


32.png


在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


33.png


论文标题: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


34.png


论文标题:Supervised Contrastive Learning


论文方向:提出了监督对比损失(Google出品,必属精品)


论文来源:NIPS2020


论文链接:https://arxiv.org/abs/2004.11362


35.png


有监督方法vs自监督方法的对比损失:


  • supervised contrastive loss(左),将一类的positive与其他类的negative进行对比(因为提供了标签), 来自同一类别的图像被映射到低维超球面中的附近点。


  • self-supervised contrastive loss(右),未提供标签。因此,positive是通过作为给定样本的数据增强生成的,negative是batch中随机采样的。这可能会导致false negative(如右下所示),可能无法正确映射,导致学习到的映射效果更差。


35.png



相关文章
|
人工智能 算法 PyTorch
TorchAcc:基于 TorchXLA 的分布式训练框架
阿里云研究员、阿里云人工智能平台 PAI 技术负责人--林伟在GTC 2024 大会 China AI Day 线上中文演讲专场上介绍了TorchAcc,这是一个基于 PyTorch/XLA 的大模型分布式训练框架。
|
3月前
|
缓存 NoSQL Unix
【实战指南】守护进程服务实现
本文介绍了在Linux系统中实现守护进程异常重启的几种方案。通过理解僵死进程和信号处理机制,提出了基于SIGCHLD信号监听、轮询proc文件系统及waitpid接口的三种方法,并给出了C++实现代码。最终选择轮询方式以提升稳定性,确保服务进程在崩溃后能自动重启,保障系统可靠性。
192 53
|
12月前
|
缓存 JavaScript 前端开发
深入理解 Vue 3 的 Composition API 与新特性
本文详细探讨了 Vue 3 中的 Composition API,包括 setup 函数的使用、响应式数据管理(ref、reactive、toRefs 和 toRef)、侦听器(watch 和 watchEffect)以及计算属性(computed)。我们还介绍了自定义 Hooks 的创建与使用,分析了 Vue 2 与 Vue 3 在响应式系统上的重要区别,并概述了组件生命周期钩子、Fragments、Teleport 和 Suspense 等新特性。通过这些内容,读者将能更深入地理解 Vue 3 的设计理念及其在构建现代前端应用中的优势。
385 1
深入理解 Vue 3 的 Composition API 与新特性
|
存储 安全 Linux
年底了,看老司机如何防 ssh 被暴力破解?
年底了,看老司机如何防 ssh 被暴力破解?
370 0
|
Kubernetes 容器 Perl
K8s是什么?k8s应用场景是什么?
K8s是什么?k8s应用场景是什么?
|
消息中间件 存储 编解码
带你读《云原生架构白皮书2022新版》——网易云音乐曲库研发负责人谈音视频算法的 Serverless 探索之路
带你读《云原生架构白皮书2022新版》——网易云音乐曲库研发负责人谈音视频算法的 Serverless 探索之路
832 107
|
SQL 缓存 关系型数据库
【Mycat】mycat综述(附安装配置)
【Mycat】mycat综述(附安装配置)
927 0
|
机器学习/深度学习 人工智能 计算机视觉
万物皆Contrastive Learning,从ICLR和NIPS上解读对比学习最新研究进展(三)
万物皆Contrastive Learning,从ICLR和NIPS上解读对比学习最新研究进展(三)
2483 0
万物皆Contrastive Learning,从ICLR和NIPS上解读对比学习最新研究进展(三)
|
存储 JSON NoSQL
|
机器学习/深度学习 Windows
深度学习原理篇 第三章:SWIN-transformer
简要介绍swin-transformer的原理。
926 0