首页 > 其他分享 >MoCo

MoCo

时间:2023-04-15 23:45:30浏览次数:31  
标签:样本 学习 监督 MoCo 对比 图片

MoCo作为一个无监督表征学习工作,在不仅分类而且其他例如检测、分割、人体关键点检测等主流视觉任务上超越了有监督模型(即ImageNet上的预训练模型),这给CV领域吃了一颗定心丸,证明无监督真的可行。Lecun早在2016年就用一张蛋糕图表明如果机器学习是一个蛋糕,强化学习只是上面的一颗樱桃,有监督学习只是表面奶油,真正的主体应当是无监督的。

对比学习:假设有三张图片,两张是人,一张是狗,对比学习就是不需要知道图片里具体对象的名称,但需要知道前两张相似,最后一张和前两章不一样。具体地讲就是将图片通过一个模型后映射为一个特征,那么这三张图片分别是特征空间中的三个点,我们的目标是前两个特征的距离要尽可能的近,最后一个要要和之前尽可能的远。也就是说类似的东西在特征空间的表示要尽量在相同的区域内。

但是要注意到,让模型学会分辨这三张图片的关系虽然说不需要对每个图片打具体标签,但仍然需要知道前两张图片类似等这一类信息,相当于还是需要提供一部分信息做有监督学习。但是在视觉领域对比学习仍然被认为是无监督的,因为可以通过设计一些巧妙的代理任务(pretext task)从而人为设定一些规则来提供上述这种监督信号。其中最广为应用的代理任务就是个体判别(instance discrimination),它认为每一张图片都和别人不相似,而从同一张图片上随即裁剪下来的块以及其数据增广认为是相似的。相似图片我们称为正样本,不相似称为负样本。那么ImageNet中有一百万张图片,自带的类别标签是一千个,但是如果用这种instance discrimination的话就相当于有一百万个类别。

对比学习中剩下的内容,比如说给出模型框架 以及对比学习专用的损失函数,总的来说套路和其他没有什么区别了。

这个东西最厉害的地方在于灵活性,因为这种代理任务(定义什么是正样本和负样本的方式)是非常灵活的,可以大开脑洞的设计。例如同一个视频里的任意两帧是正样本,或者nlp中有一个工作用同一个句子两次经过同一个forward,并使用不同的dropout,那么也能得到两种不同的特征表示,认为是正样本。例如同一个物体的不同视角可以作为正样本。就是说只要脑洞够大,每个领域都能找到各种不同的代理任务方式,实现这种自监督。

 

这里我个人有一点想法,就是在深度学习中,很多东西理解的还是比较狭隘不够深刻,我总觉得例如ViT的分patch的方式,用一维向量表示二维图片,对比学习里提到的这种代理任务。接触这些东西的第一反应就是这个玩意是不work的,有些东西好像不太符合逻辑,但是实际中人家又确实效果不错。有的时候需要打开思路,抛弃以前对传统东西的狭隘的看法,尤其是ViT和MAE中的许多实验(比如用一维向量进行二位位置编码这件事),作者开始的直观感受和我们也是一样的,这个东西效果能好吗,但是对于深度学习模型来说完全不是这样。

 

题目:MoCo的意思是动量对比,动量这个事在优化算法里接触过,可以理解为加权移动平均,就是不用当下时刻的输出,而是集合一下过去的结果,比较稳定。 MoCo应用这种特性来缓慢的更新编码器,从而让学习到的特征尽可能的保持一致。

摘要:从另外一个角度看对比学习,把对比学习看成一个字典查询的任务。MoCo是第一个在CV领域自监督训练,并迁移学习到下游任务中取得实质性进展的工作,超越了有监督的工作。这个有一个很重要的点在于,可以在许多没有足够数据的任务上采用预训练好的自监督模型。

 

标签:样本,学习,监督,MoCo,对比,图片
From: https://www.cnblogs.com/andoblog/p/17318378.html

相关文章

  • 【博学谷学习记录】超强总结,用心分享|moco
    一、介绍1、什么是mock1)mock就是对于一些难以构造的对象,使用虚拟的技术来实现测试的过程。2)mock测试:在测试过程中,对于某些不容易构造或者不容易获取的对象,可以用一个虚......
  • moco搭建和使用
    一、环境安装见:moco环境安装这里安装的目前最新:moco-runner-1.3.0-standalone.jar,jdk-19_windows-x64_bin.exe,jdk环境变量配置好moco地址:https://github.com/dreamhead/......
  • Facebook AI何恺明又一新作 | 研究MoCo(动量对比学习),超越Hinton的SimCLR,刷新SOTA准确
    扫码关注我们公众号 :计算机视觉战队扫码回复:无监督,获取下载链接经常闲逛何老师主页,应该有所察觉,FacebookAI的何恺明老师有来一个新作,这次更加猛烈,远远比Hinton老师的Sim......
  • mock介绍及moco框架搭建使用
    https://cloud.tencent.com/developer/article/1759972?from=article.detail.1465591一Mock介绍1什么是mockmock测试就是在测试过程中,对于某些不容易构造或者不容易获......
  • 走进Java接口测试之简单快速的Mock Server Moco
    https://cloud.tencent.com/developer/article/1465591引言在上文走进Java接口测试之Mock(概念篇)中,我们介绍Mock的基本概念,本文我们将详细介绍其中一个快速简单MockSer......
  • MockServer工具-Moco
    https://cloud.tencent.com/developer/article/1737211?from=article.detail.1465591前言前段时间介绍了Mock基本知识以及市面上常见的Mock工具(Mock工具介绍),今天重点介绍......
  • moco框架搭建接口mock服务
    1、什么是接口Mock测试?应用场景思考?1.在前后端分离的项目中,假如后端代码还未开发完,前端代码需要调用后端接口进行调试,该怎么办?2.本公司的电商平台需要对接第三方支付接口,......