研读何凯明大作Momentum contrast for unsupervised representation learning

Abstract

本文提出Momentum ContrastMoCo)用于无监督视觉表征学习。从contrastive learning的角度,通过一个队列和移动平均的encoder构建动态词典。在线构建一个大的且一致性词典,灵活适配于contrastive unsupervised learning

Introduction

无监督表征在NLP领域获得极大成功,例如GPTBERT。但是,在计算机视觉领域,有监督预训练依然占据主导地位,无监督方法进展缓慢。可以从它们所对应的信号空间进行理解。语言任务采用离散信号空间(词,子词单元等)来构建标记化词典,无监督学习真是基于此。与之相反,计算机视觉的原始信号是连续的高维空间,且不是结构化的。

无监督学习的一个主要目的是预训练表征(如特征),使得具体任务可以通过finetune进行优化。

Related work

         Unsupervised/self-supervised learning通常包含两部分:pretext taskloss function。何为pretext任务,指的并不是真实的任务,而是一种好的数据表征。

Method

Contrastive learning as dictionary look-up

Contrastive learning可以认为是为字典查找任务训练一个编码器。

         考虑一个query q和字典的key集合{k0,k1,k2,…}。希望字典中有一个和q匹配。Contrastive loss就是一个函数,使得在q匹配且和其它key不相似值时值较小。可以采用点乘形式来表达inforNCE

下面的累和是一个正例和K个反例。

 

Momentum contrast

好的特征表示可以通过较大字典学习获得。

本文方案的核心在于将字典维护成一个数据采样队列。从而重复利用中间过程的mini-batches编码的keys。这样字典的大小就不用受限于mini-batch的大小,可以做到远大于。字典中的样本是持续更新的,最近的mini-batch数据入队列,最久远的mini-batch数据出队列。

Momentum update

使用队列可以使字典足够大,但是它也存在不足,不能通过bp来更新编码器(梯度将传递给队列中的所有样本)。一种简单的做法是忽略梯度,将query encoder拷贝给key encoder。这种方案的结果不好。本文推测这是由于编码器更新过快,降低了key表征的一致性。

 

 

上图展示了三种方案,展示了三种不同的字典大小和一致性。

End-to-end:采用当前mini-batch数据建立字典,确保了key编码的一致性。字典的大小受制于mini-batch的大小,受制于GPU显存大小。

Memory bank:一个memory bank中包含数据库中所有样本的特征。每个mini-batch的字典从memory bank中随机采样,无梯度传递,可以支持较大尺寸字典。但是,memory bank中的样本表示,采样key的一致性较弱。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值