《MoCo:Momentum Contrast for Unsupervised Visual Representation Learning》中文校对版

news2024/11/24 10:58:20

系列文章目录


文章目录

  • 系列文章目录
  • 摘要
  • 1.简介
  • 2.相关工作
  • 3.方法
    • 3.1.作为字典查找的对比学习
    • 2、
    • 3、
  • 五、
    • 1、
    • 2、
    • 3、
  • 六、
    • 1、
    • 2、
    • 3、
  • 七、
    • 1、
    • 2、
    • 3、
  • 八、
    • 1、
    • 2、
    • 3、


摘要

我们提出了用于无监督视觉表示学习的动量对比(MoCo)。从对比学习[29]作为字典查找的角度来看,我们构建了一个带有队列和移动平均编码器的动态字典。这使得能够在运行中构建大的且一致的字典,其促进对比无监督学习。MoCo在ImageNet分类的通用线性协议下提供了具有竞争力的结果。更重要的是,MoCo学习到的表示可以很好地转移到下游任务中。MoCo可以在PASCAL VOC,COCO和其他数据集上的7个检测/分割任务中优于其监督的预训练对手,有时甚至远远超过它。这表明,在许多视觉任务中,无监督表示学习和监督表示学习之间的差距已经基本消除。

1.简介

无监督表示学习在自然语言处理中非常成功,例如,[12]如图所示,[50]和[51]的BERT [12]。但监督式预训练在计算机视觉中仍然占主导地位,而非监督式方法通常落后。原因可能源于它们各自的信号空间的差异。语言任务具有离散的信号空间(单词,子单词单位等)。用于构建标记化词典,无监督学习可以基于该标记化词典。相比之下,计算机视觉还涉及字典构建[54,9,5],因为原始信号处于连续的高维空间中,并且未被构造成用于人类通信(例如,不像字)。
最近的几项研究[61,46,36,66,35,56,2]提出了使用与对比损失相关的方法的无监督视觉表征学习的有希望的结果[29]。尽管这些方法受到各种动机的驱动,但它们可以被认为是构建动态词典。字典中的“关键字”(标记)是从数据(例如,并且由编码器网络来表示。无监督学习训练编码器执行字典查找:编码的“查询”应该与其匹配的关键字相似,而与其他关键字不相似。学习被表述为最小化对比损失[29]。
在这里插入图片描述动量对比度(MoCo)通过使用对比损失将编码的查询q与编码的关键字的字典进行匹配来训练视觉表示编码器。字典关键字{k 0,k1,k2,…}由一组数据样本动态地定义。字典构建为一个队列,当前的小批处理入队,最早的小批处理出列,使其与小批处理大小分离。键由缓慢前进的编码器编码,由查询编码器的动量更新驱动。该方法能够实现用于学习视觉表示的大且一致的字典。
从这个角度出发,我们假设希望建立这样的词典:(i)大的并且(ii)在训练期间随着它们的发展而一致。直观地,较大的字典可以更好地采样底层连续的、高维的视觉空间,而字典中的关键字应该由相同或相似的编码器表示,以便它们与查询的比较是一致的。然而,使用对比损失的现有方法可能在这两个方面中的一个方面受到限制(稍后在上下文中讨论)。
我们提出了动量对比度(MoCo)作为一种构建大型一致字典的方法,用于具有对比度损失的无监督学习(图1)。我们将字典维护为数据样本的队列:当前小批量的编码表示被入队,最早的被出列。队列将字典大小与迷你批处理大小分离,从而允许它变得更大。此外,由于字典关键字来自前几个小批量,一个缓慢进展的关键字编码器,实现为基于动量的移动平均查询编码器,提出了保持一致性。
MoCo是一种为对比学习构建动态词典的机制,可以用于各种借口任务。在本文中,我们遵循一个简单的实例判别任务[61,63,2]:如果查询是编码视图(例如,不同的作物)相同的图像。使用这个借口任务,MoCo在ImageNet数据集中的线性分类的常见协议下显示了竞争结果[11]。
无监督学习的主要目的是预先训练表示(即,功能),可以通过微调转移到下游任务。我们发现,在与检测或分割相关的7个下游任务中,MoCo无监督预训练可以超过ImageNet监督预训练,在某些情况下,可以超过非平凡的边缘。在这些实验中,我们探索了在ImageNet或10亿张Instagram图像集上预训练的MoCo,证明MoCo可以在更真实的世界中工作,十亿张图像规模,以及相对未经策划的场景。这些结果表明,MoCo在很大程度上缩小了许多计算机视觉任务中无监督和有监督表示学习之间的差距,并且可以在几个应用中作为ImageNet监督预训练的替代方案。

2.相关工作

无监督/自我监督1学习方法通常涉及两个方面:借口任务和损失函数。术语“借口”意味着正在解决的任务不是真正感兴趣的,而是仅仅为了学习良好的数据表示的真正目的而解决的。损失函数通常可以独立于托词任务来研究。MoCo侧重于损耗函数方面。接下来我们就这两个方面的相关研究进行探讨。
损失函数。定义损失函数的常见方式是测量模型的预测与固定目标之间的差,诸如重构输入像素(例如,自动编码器),或者将输入分类为预定义的类别(例如,八个位置[13]、颜色箱[64])。如下所述的其它替代方案也是可能的。
对比损失[29]衡量的是样本对在一个表示空间中的相似性。在对比损失公式中,目标可以在训练期间动态变化,并且可以根据网络计算的数据表示来定义,而不是将输入与固定目标相匹配[29]。对比学习是最近几部关于无监督学习的著作的核心[61,46,36,66,35,56,2],我们将在后面的上下文中对此进行详细阐述(第第3.1段)。
对抗性损失[24]衡量的是概率分布之间的差异。它是一种广泛成功的无监督数据生成技术。在[15,16]中探讨了用于表征学习的对抗方法。在生成对抗网络和噪声对比估计(NCE)[28]之间存在关系(见[24])。
代理任务。提出了一系列广泛的借口任务。示例包括在某些损坏情况下恢复输入,例如,去噪自动编码器[58]、上下文自动编码器[48]或交叉通道自动编码器(彩色化)[64,65]。一些借口任务形成伪标签,例如,单个(“样本”)图像的变换[17]、块排序[13,45]、跟踪[59]或分割视频中的对象[47]、或聚类特征[3,4]。
对比学习与代理任务。各种借口任务可以基于某种形式的对比损失函数。实例判别方法[61]与基于范例的任务[17]和NCE [28]相关。对比预测编码(CPC)[46]中的托词任务是上下文自动编码[48]的一种形式,而在对比多视图编码(CMC)[56]中,托词任务与着色[64]相关。

3.方法

3.1.作为字典查找的对比学习

对比学习[29]及其最近的发展,可以被认为是训练编码器进行字典查找任务,如下所述。
考虑编码查询q和编码样本集 { k 0 , k 1 , k 2 , . . . } \{k 0,k1,k2,...\} {k0k1k2...}。是字典的关键字。假设在q匹配的字典中存在单个关键字(表示为 k + k_+ k+)。对比损失[29]是一个函数,当 q q q与其正键 k + k_+ k+相似而与所有其他键(被认为是q的负键)不相似时,该函数的值较低。通过点积衡量相似性,本文考虑了一种称为InfoNCE [46]的对比损失函数形式:
L q = − log ⁡ exp ⁡ ( q . k + / τ ) ∑ i = 0 K exp ⁡ ( q . k i / τ ) \mathcal{L}_q=-\log\frac{\exp(q.{k_+}/\tau)}{\sum_{i=0}^K \exp(q.{k_i/\tau})} Lq=logi=0Kexp(q.ki/τexp(q.k+/τ)
其中 τ τ τ是根据[61]的温度超参数。总和是一个阳性样本和K个阴性样本的总和。直观地,该损失是试图将q分类为 k + k_+ k+的基于(K+1)路软极大值的分类器的对数损失。对比损失函数也可以基于其他形式[29,59,61,36],例如基于边际的损失和NCE损失的变体。
对比损失用作训练表示查询和密钥的编码器网络的无监督目标函数[29]。一般而言,查询表示是 q = f q ( x q ) q = f_q(x^q) q=fqxq,其中fq是编码器网络, x q x^q xq是查询样本(同样, k = f k ( x k k = f_k(x^k k=fkxk))。它们的实例化取决于特定的借口任务。输入 x q x_q xq x k x_k xk可以是图像[29,61,63]、补丁[46]或包括一组补丁[46]的上下文。网络 f q f_q fq f k f_k fk可以是相同的[29,59,63]、部分共享的[46,36,2]或不同的[56]。

2、

3、

五、

1、

2、

3、

六、

1、

2、

3、

七、

1、

2、

3、

八、

1、

2、

3、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2185928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

死锁的成因与解决方案

目录 死锁的概念与成因 栗子 死锁的情况 哲学家问题 如何避免死锁 必要条件 死锁的解决方案 总结 死锁的概念与成因 多个线程同时被阻塞,他们中的其中一个或者全部都在等待某个资源的释放,导致线程无限期被阻塞,程序无法停止 栗子 我和美女a出去吃饺子,吃饺子要醋和酱油…

【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换,和文本日期格式转换。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换。使用…

Pikachu-csrf-CSRF(get)

登陆,修改个人信息;发现这是个get请求 把请求连接复制出来 ​http://192.168.3.224:8082/vul/csrf/csrfget/csrf_get_edit.php?sex1&phonenum1&add2&email3&submitsubmit就是 get请求的csrf 攻击payload

阿里云域名解析和备案

文章目录 1、域名解析2、新手引导3、ICP备案 1、域名解析 2、新手引导 3、ICP备案

重放Net-NTLM HASH 实验

先记录relay2SMB的,relay2LDAP的会补上来。 后面的一些利用EXCHANGE服务器的writedacl权限来relay2EWS DCSync的等我安了EXCHANGE再说吧2333。。 1. relay2SMB 0x01 smbrelayx.py 监听Net-NTLM,然后中继到win2008的SMB服务,执行whoami命…

CSS多列

CSS多列 前言 有的时候希望文本能按照多列效果显示,如: 这时候就要把文本显示效果改成多列显示,标题独占一行 CSS文本多列使用 ① column-count 指定文本分为几列,如: column-count: 3;② column-gap 指定列之…

微型导轨在IC制造设备的应用与优势

微型导轨的精度和稳定性对于机器的准确执行任务至关重要,其精确度通常用微米或毫米来衡量。其尺寸可以做到非常小,常运用在小型设备上,尤其是在IC制造设备中,其应用非常广泛。 在IC制造设备中主要用于半导体芯片的切割、封装和测试…

【C++】多态(下)

个人主页~ 多态(上)~ 多态 四、多态的原理1、虚表的存储位置2、多态的原理3、动态绑定和静态绑定 五、单继承和多继承关系的虚函数表1、单继承中的虚函数表2、多继承中的虚函数表 六、多态中的一些小tips 四、多态的原理 1、虚表的存储位置 class A {…

AIGC(AI网站分享)

博客C知道 人工智能(Artificial Intelligence,简称AI)是一门研究如何使机器能够像人一样思考和行动的科学。它涉及到模拟和复制人类智能的各个方面,包括学习、推理、问题解决、感知、原创性等。人工智能技术的发展使得计算机可以模拟人类的思维过程,并根据外界的输入做出相…

day02笔试练习

1.牛牛的快递 题目链接&#xff1a;牛牛的快递_牛客题霸_牛客网 public static void main(String[] args){Scanner in new Scanner(System.in);double a in.nextDouble();char c in.next().charAt(0);int ret 0;if(a < 1){ret 20;}if(a > 1){ret 20 (int) Math…

C++ | Leetcode C++题解之第447题回旋镖的数量

题目&#xff1a; 题解&#xff1a; class Solution { public:int numberOfBoomerangs(vector<vector<int>> &points) {int ans 0;for (auto &p : points) {unordered_map<int, int> cnt;for (auto &q : points) {int dis (p[0] - q[0]) * (p…

波数k(空间中角频率的变化速度,即走多少长度,变化多少角频率)

K不是电磁波的移动速度&#xff0c;那个是相速度。 K是空间中角频率的变化速度&#xff0c;即走多少长度&#xff0c;变化多少角频率

第25天:web攻防-通用漏洞sql读写注入MYSQLMSSQL

#知识点&#xff1a; 1、sql注入-mysql数据库 2、sql注入-mssql数据库 3、sql注入-postgreSQL数据库 #详细点&#xff1a; Access无高权限注入点-只能猜解&#xff0c;还是暴力猜解 MYSQL&#xff0c;PostgreSQL&#xff0c;MSSQL高权限注入&#xff0c;可升级为读写执行。…

[C#]C# winform部署yolov11目标检测的onnx模型

【测试环境】 vs2019 netframework4.7.2 opencvsharp4.8.0 onnxruntime1.16.2 【效果展示】 【实现部分代码】 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; usi…

自给自足:手搓了一个睡眠监测仪,用着怎么样?

很久不分享手搓党作品拉&#xff01; 今天分享一个“基于毫米波雷达的睡眠监测仪”作品&#xff01; 用Air700E开发板毫米波雷达&#xff0c;手搓一个开箱即用的睡眠监测仪&#xff0c;不花冤枉钱&#xff01; 来仔细瞧瞧&#xff01; 一、项目原理及硬件制作 毫米波是指频率…

1688商品API接口:电商数据自动化的新引擎

1688作为中国领先的B2B电子商务平台&#xff0c;为广大商家和制造商提供了一个展示和交易商品的广阔市场。随着1688商品API接口的推出&#xff0c;开发者和商家现在能够通过编程方式自动化获取和管理商品数据&#xff0c;极大地提高了工作效率和数据处理的灵活性。 一、1688商品…

(作业)第三期书生·浦语大模型实战营(十一卷王场)--书生入门岛通关第3关Git 基础知识

任务编号 任务名称 任务描述 1 破冰活动 提交一份自我介绍。 2 实践项目 创建并提交一个项目。 破冰活动 提交一份自我介绍。 每位参与者提交一份自我介绍。 提交地址&#xff1a;https://github.com/InternLM/Tutorial 的 camp3 分支&#xff5e; 安装并设置git 克隆仓库并…

解锁PDF阅读器的神奇功能与应用场景

PDF格式的文档因其稳定性、兼容性和安全性&#xff0c;成为了广泛传播和存储信息的重要载体。而PDF阅读器则是我们打开这个数字知识宝库的关键钥匙。接下来&#xff0c;让我们一同走进福昕PDF阅读器和它小伙伴们的世界&#xff0c;去探索它们的神奇之处。 1.福昕阅读器 链接一…

学校在线学习作业批改教学管理平台的设计与实现SpringBoot+VUE

目录 一、项目背景及目标 二、技术选型 三、系统功能模块设计 四、关键技术实现 五、总结 在当今社会上&#xff0c;随着社会的发展和进步&#xff0c;对于现代的学生来说网络课程已经广泛应用于学校的每个角落&#xff0c;而一个课程教学管理平台对于现如今的课堂是不可缺…

使用OneAPI+Ollama+Dify搭建一个兼容OpenAI的API发布及AI应用开发系统(二)客户端设置

这一编我们介绍Ollama客户端的设置&#xff0c;那么客户端在这里指的就是你放在家里的Ollama服务器&#xff0c;通过与VPS里安装的OneAPI配合&#xff0c;从而实现了为Ollama生成API访问的服务&#xff0c;并为后端服务器提供安全保障。 一&#xff1a;安装客户端软件 客户端…