【论文视频】MoCo 论文逐段精读. CVPR 2020 zui佳论文提名【论文精读】

2023-10-16 19:59

本文主要是介绍【论文视频】MoCo 论文逐段精读. CVPR 2020 zui佳论文提名【论文精读】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

文章目录

  • 1. 四个问题
  • 2. 视频正文
    • 什么是对比学习?
    • 论文内容
      • 1. 题目和作者
      • 2. 摘要
      • 3. 引言
      • 4. 结论
      • 5. 相关工作
      • 6. MoCo方法
      • 7. 实验
      • 8. 总结
  • 3. 参考资料

1. 四个问题

  1. 解决什么问题
    做无监督的表征学习

  2. 用什么方法解决
    本文提出了MoCo去做无监督的表征学习,虽然是基于对比学习的,但是本文是从另外一个角度来看对比学习,也就是说把对比学习看作是一个字典查询的任务。
    具体来说,就是做一个动态的字典,这个动态的字典由两个部分组成:

    • 第一个部分是一个队列,因为队列中的样本不需要做梯度回传,所以就可以往队列中放很多负样本,从而使得这个字典变得很大
    • 第二个部分是一个移动平均的编码器,使用这个移动平均的编码器的目的是想让字典中的特征尽量的保持一致。作者发现在训练的过程中,如果能有一个很大而且比较一致的字典,会对无监督的对比学习非常有好处
  3. 效果如何
    MoCo作为一个无监督的预训练模型,能够在7个下游任务(分割、检测等)上,而且比如说在VOC、COCO这些数据集上超越之前的有监督的预训练模型,有时候甚至是大幅度超越。
    最后作者总结说,这就意味着对于很多视觉任务来说,无监督和有监督的表征学习中间的鸿沟已经填上了。

  4. 还存在什么问题
    无监督对比学习学到的特征分布跟有监督学习学到的特征的分布是非常不同的 ,哪里不同,有多不同? 【等待学习中…】

2. 视频正文

什么是对比学习?

在这里插入图片描述
那不还是需要标签使 模型知道哪几张图片为一类吗?

那为什么 对比学习一般在视觉领域被认为是无监督的训练方式呢?

因为在视觉领域,大家巧妙地设计代理任务,从而人为定义一些规则,这些规则可以用来定义哪些图片是相似的,哪些图片是不相似的,从而可以提供一个监督信号去训练模型,这也就是所谓的自监督训练

讲一个最广泛的代理任务:instance discrimination

如何定义哪些图片是相似的,哪些图片是不相似的呢?
instance discrimination 是这么做的:只有从自己图片裁剪下来的才是正样本,属于同一类,其它都是负样本。
在这里插入图片描述
这样一个框架就是对比学习常见的实现方式了。看起来好像平平无奇,但对比学习就厉害的地方就是它的灵活性。只要你能找到一种方式定义什么是正样本,什么是负样本,这就够了,剩下的操作都是比较标准。

大开脑洞去制定很多正样本负样本的规则,

  • 比如在视频领域,同一视频的任意两帧都是正样本,而其它视频里所有帧都是负样本。
  • 在NLP领域,NLP, simCSE 把同样的句子扔给模型,但是做 2 次 forward,通过不同的 dropout 得到一个句子的 2 个特征;和其它所有句子的特征都是负样本。
  • CMC 论文:一个物体的不同视角 view(正面、背面;RGB 图像、深度图像)作为不同形式的正样本。

对比学习实在是太灵活了,比天比地比空气,什么都能比,只要你脑洞够大,哪个领域都能用。

扩展到多模态领域,也就造就了open AI 的 CLIP 模型

论文内容

在这里插入图片描述

1. 题目和作者

什么是动量Momentum
在这里插入图片描述

2. 摘要

本文提出了MoCo去做无监督的表征学习,虽然是基于对比学习的,但是本文是从另外一个角度来看对比学习,也就是说把对比学习看作是一个字典查询的任务

具体来说,就是做一个动态的字典,这个动态的字典由两个部分组成

  • 第一个部分是一个队列,因为队列中的样本不需要做梯度回传,所以就可以往队列中放很多负样本,从而使得这个字典变得很大
  • 第二个部分是一个移动平均的编码器,使用这个移动平均的编码器的目的是想让字典中的特征尽量的保持一致。作者发现在训练的过程中,如果能有一个很大而且比较一致的字典,会对无监督的对比学习非常有好处

这篇论文主要的亮点在于它的结果,所以剩下大篇幅的摘要留给了结果

更重要的是MoCo学习到的特征能够很好地迁移到下游的任务,这才是整篇文章的精髓

MoCo作为一个无监督的预训练模型,能够在7个下游任务(分割、检测等)上,而且比如说在VOC、COCO这些数据集上超越之前的有监督的预训练模型,有时候甚至是大幅度超越

最后作者总结说,这就意味着对于很多视觉任务来说,无监督和有监督的表征学习中间的鸿沟已经填上了

  • 之前虽然有一些无监督的工作能够在某个数据集或者是某个任务上能够比它对应的有监督预训练模型好一点,但是MoCo是第一个能够在这么多主流视觉任务上,全面地让无监督训练的模型比有监督训练的模型表现要好

3. 引言

信号空间:

  1. 自然语言:离散的信号空间,也就是说是用单词,词根词缀去表示的,从而可以很容易地吉建tokenized字典(tokenized :把某一个词对应某一个特征),一旦有了这个字典,可以把这个字典的key想象成类别,这不就是有监督学习的范式了吗?所以在NLP领域,无监督学习就很容易建模,也容易优化
  2. CV 原始信号是连续的、高维的,不像单词具有浓缩好的、简洁的语义信息,不适合构建 个字典。如果没有字典,无监督学习很难建模 。所以导致在视觉这边,无监督学习还远不如有监督学习。

构造动态字典:
第二段:别人怎么用对比学习的方法在 CV 的无监督学习里?dynamic dictionaries
近期结合 对比学习和 CV 的无监督学习效果不错,出发点motivation 不一样,但可以被归纳为 “动态字典法”
在这里插入图片描述
这个字典满足两个要求:1.大(高维的视觉信息抽样);2.一致性(keys用相同或者相似的编码器得到的,这样跟query去对比才尽可能一致,否则query可能找到一个key跟它使用相同的编码器,而不是真的含有相同语义信息的key,变相地引入一个shortcut ,这样模型学不好)
在这里插入图片描述

介绍完了研究动机,还有之前工作的局限性,还有想要达到的目标,那么很自然地作者提出他们的方法了。

贡献:

  1. queue(使这个字典大)
  2. momentum(动量能够让这个字典缓慢更新)

在这里插入图片描述
在这里插入图片描述
第五段:MoCo 的代理任务 pretext task? instance discrimination
MoCo只是建立中间模型的方式,只是为对比学习提供了一个动态字典。
选择什么代理任务去做自监督学习呢?instance discrimination(简单,效果好)
在这里插入图片描述
最后一段老套路:卖一下结果
迁移下游任务,跟有监督的训练打个平手甚至在某些领域大幅度领先,模型永无止境,有望取代有监督的预训练的模型
在这里插入图片描述

4. 结论

在这里插入图片描述
最后一句话点题总结:希望MoCo 能对其它那些使用对比学习的代理任务有帮助
==之所以强调对比学习,MoCo 设计的初衷:去构造一个大的字典,从而让正负样本能够更有效地去对比,提供一个稳定的自监督信号,最后去训练这个模型 ==

5. 相关工作

在这里插入图片描述

对比学习的目标函数,在一个特征空间里,衡量各个样本的相似性。要达到的目标:让相似物体的特征拉得尽量近,不相似的物体特征推开得尽量远。
在这里插入图片描述
在这里插入图片描述

代理任务 pretext tasks,脑洞大开
在这里插入图片描述
在这里插入图片描述

对比学习和代理任务
在这里插入图片描述
在这里插入图片描述

总结一下:
在这里插入图片描述

在这里插入图片描述

6. MoCo方法

参考文字参考1——MoCo 论文逐段精读【论文精读】

NCE(noise contrastive estimatation ) loss

Info NCE
在这里插入图片描述

已经有了代理任务提供的正负样本,也有了目标函数,接下来该考虑模型的输入输出了
在这里插入图片描述

(整个论文,每一段和每一段之间最好都有承上启下的段落,每当开始讲一个新的东西的时候最好先讲一下为什么需要它,一旦有了这个承上启下的段落,也就是因为所以的逻辑关系之后,论文读起来就会更加顺畅。否则论文上来每一段都是直接讲方法的话,很容易让人看得一头雾水,无论自己觉得写的有多清晰,读者可能从一开始就没明白为什么要这么做)

文章的第一个贡献:如何把一个字典看成队列

文章的第二个贡献:如何使用动量的思想去更新编码器

作者在引言中提到过,之前的那些对比学习方法都可以看作是字典查找,但是它们都或多或少受限于字典的大小和字典的一致性的问题,这里作者将之前的方法总结了一下,归纳成了两种架构

第一种就是比较直接的端到端学习的方式

  • 端到端学习的优点在于编码器是可以实时更新的,所以导致它字典里的那些key的一致性是非常高的,但是它的缺点在于因为它的字典大小(就是batch-size的大小),导致这个字典不能设置的过大,否则硬件内存吃不消

第2种:memory bank

  • 更关注字典的大小,而牺牲一些一致性

在这里插入图片描述
在这里插入图片描述

MoCo的伪代码,走一遍 前向过程
在这里插入图片描述
建议看一下官方代码,写得极其出色,非常简洁明了,基本同伪代码

在这里插入图片描述

7. 实验

参考文字参考1——MoCo 论文逐段精读【论文精读】

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

划重点:无监督学习最主要的目标就是学习一个可以迁移的特征

  • 用ImageNet做有监督的预训练,它最有用、最有影响力的时候就是在当在下游任务上做微调,可以用这个预训练模型做模型的初始化,从而当下游任务只有很少的标注数据的时候也能获得很好的效果
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

8. 总结

MoCo这篇论文以及它高效的实现,能让大多数人有机会用普通的GPU就能跑对比学习的实验,做研究

因为MoCo在各个视觉任务上取得了更好的性能,也激发了很多后续分析性的工作,去研究MoCo学出来的特征到底和有监督学出来的特征有什么不同,还能从别的什么方向去提高对比学习

3. 参考资料

MoCo 论文逐段精读【论文精读】

文字参考1——MoCo 论文逐段精读【论文精读】

文字参考2——MoCo 论文逐段精读【论文精读】

这篇关于【论文视频】MoCo 论文逐段精读. CVPR 2020 zui佳论文提名【论文精读】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/220463

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin