对比学习论文综述总结

第一阶段:百花齐放(18-19中)

有InstDisc(Instance Discrimination)、CPC、CMC代表工作。在这个阶段方法模型都还没有统一,目标函数也没有统一,代理任务也没有统一,所以说是一个百花齐放的时代

1 判别式代理任务---个体判别任务

1.1 Inst Dict---一个编码器+一个memory bank

《Unsupervised Feature Learning via Non-Parametric Instance Discrimination

通过无参数的实例判别任务进行无监督特征学习

研究动机:通过观察分类结果,发现相似的类别分数高,不相似的类别分数低,认为原因不是因为标签不同而是因为相似类别的个体长得就是很相似。通过这一现象,提出了个体判别这个代理任务任务目标是,把每张图片都看做一个类别,目标是能够学习一种特征从而把每张图片都区分开。

方法:通过对比学习训练网络,对于个体判别任务,正样本即这个图片本身或经过数据增量,负样本是数据集中其他图片(即memory bank中随机抽取数据)。把所有负样本特征存放在 memory bank 中,每次minibatch的数据特征更换上一次memory bank中的特征。还有一些其他巧妙的设计,如proximal Regularization:为模型的训练增加了一个约束,从而可以使memory bank 中的特征进行动量式的更新;超参数的设定也被MoCo所严格执行。

主要贡献提出了个体判别任务(Instance Discrimination)代理任务;使用这个代理任务和NCE Loss做对比学习;提出了memory bank这种类似于字典的数据结构存储大量负样本;并提出了如何对特征进行动量的更新

1.2 Inva Spread---一个编码器

《Unsupervised Embedding Learning via Invariant and Spreading Instance Feature》

通过不变和扩展实例特征进行无监督嵌入式学习

Invariant和spreading,即:相似物体的特征应该保持不变性,不相似物体的特征应该尽可能分散

可以被理解成是 SimCLR 的前身。没有使用大量的数据结构去存储大量负样本,它的正负样本来源于同一个minibatch,(可使得)只使用一个编码器进行端到端的学习。

代理任务也是选取了个体判别这个任务。正负样本选取:图片x1的正样本是x1经过数据增强后的图片,负样本是其他剩下的所有图片,包括原始的图片以及经过数据增强后的图片。

主要贡献:不需要使用大量的数据结构去存储大量负样本;正负样本来源于一个batch:使用一个编码器进行端到端的学习。

2 生成式代理任务---预测、多模态

2.1 CPC---预测未来  一个编码器+一个自回归模型

《Representation Learning with Contrastive Predictive Coding》

利用对比预测编码进行表征学习----预测型代理任务

正负样本的定义:正样本是未来的输入通过编码器后得到的未来时刻的特征输出,这相当于做的预测是 query,而真正未来时刻的输出是由输入决定,也就是说它们相对于预测来说是正样本负样本的定义很广泛,如,可以任意选取输入通过编码器得到输出,则对于当前的预测时不相似的。

2.2 CMC--多模态  两个或多个编码器

《Contrastive Multiview Coding》--- 对比多视图编码  

摘要:核心观点是一个物体的很多个视角都可以被当做正样本。因为我们人观察这个世界是通过很多个传感器的,比如我们的眼睛和我们的耳朵,这些都充当着不同的传感器来给我们大脑提供不同的信号,每一个视角都有可能是带有噪声且不完整的,但是最重要的那些信息其实是在所有的这些视角中间共享的,如基础的物理定律、几何形状、语音信息这些都是共享的。比如一只狗,他可以被我们眼睛看见,也可以被耳朵听到,也可以被感受到。因为作者提出我们想学一个很强大的特征,具有视角的不变性,即不管你给我看哪个视角,到底是看到了一只狗,还是听到了狗叫声,我都能判断出这是一只狗。所以CMC这篇文章就是想增大这个互信息,如果能学到一种特征,可以抓到所有视角下的这个关键因素,那这个特征就很好了。

正负样本定义:一个物体的多个视角都可以当做其正样本,包括四个视角:原始图像、图像对应的深度信息(每个物体离观察者到底有多远)、surface normal、这个物体的分割图像。随机挑一个其他图片,该图片属于一个不配对的视角作为负样本。需使用两个或多个编码器。

总结

从第一阶段可以看到:它们使用的代理任务是不一样的,有个体判别,有预测未来,还有多视角多模态;它们使用的目标函数也不尽相同,有 NCE,有infoNCE,还有NCE的其它变体;它们使用的模型也都不一样,比如说invariant spread用了一个编码器;Inst Disc用一个编码器和memory bank;cpc有一个编码器,还有一个自回归模型;cmc可能有两个甚至多个编码器;它们做的任务从图像到视频到音频到文字到强化学习,非常的丰富多彩。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis_主从复制

8. 主从复制 8.1 简介 主从库采用读写分离的方式 读操作:主库、从库都可以处理写操作:首先写到主库执行,然后再将主库同步给从库。 实现读写分离,性能扩展 容灾快速恢复 8.2 主从复制步骤 创建一个目录 ,在root下创建一个m…

2009年下半年 软件设计师 上午试卷

博主介绍:✌全网粉丝3W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

RedisDesktopManage

RDM 简介下载安装 简介 RedisDesktopManager(RDM)是一个开源的跨平台图形界面工具,用于管理和操作 Redis 数据库。它提供了一个用户友好的界面,使用户能够轻松地连接、浏览、查询和修改 Redis 数据,而无需使用命令行界…

ubuntu部署haproxy

HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理. 1、更新系统报 通过在终端中运行以下命令,确保所有系统包都是最新的 sudo apt updatesudo apt upgrade 2、安装Haproxy sudo apt install haproxy 设置开机自动启动haproxy服务 sudo systemctl enable h…

都说go协程性能好,这次我们来试试java协程

java 协程原理 在Java中,协程(Coroutine)是一种轻量级的线程解决方案,它可以在代码中实现类似于多线程的并发操作,但不涉及线程的创建和切换开销。 在传统的Java多线程编程模型中,线程的切换开销较大&…

0142 存储系统2

目录 3.存储系统 3.4外部存储器 3.5高速缓冲存储器 3.6虚拟存储器 部分习题 3.存储系统 3.4外部存储器 3.5高速缓冲存储器 3.6虚拟存储器 部分习题 1.一个磁盘转速为7200转/分,每个磁道有160个扇区,每个扇区有512字节,则在理想情况下&…

SQL | 使用函数处理数据

8-使用函数处理数据 8.1-函数 SQL可以用函数来处理数据。函数一般是在数据上执行的,为数据的转换和处理提供了方便。 8.1.1 函数带来的问题 每种DBMS都有特定的函数,只有很少一部分函数,是被所有主要的DBMS等同的支持。 虽然所有的类型的…

YOLO相关原理(文件结构、视频检测等)

超参数进化(hyperparameter evolution) 超参数进化是一种使用了genetic algorithm(GA)遗传算法进行超参数优化的一种方法。 YOLOv5的文件结构 images文件夹内的文件和labels中的文件存在一一对应关系 激活函数:非线性处理单元 activation f…

使用Python和pyodbc库将文件信息插入Access数据库

将文件信息插入 Access 数据库的博客文章示例: 简介: 在日常编程工作中,我们经常需要处理文件和文件夹。有时,我们需要遍历文件夹中的所有文件,并将文件的路径、类型、文件名以及修改日期和创建日期等信息保存到数据库…

Ajax 笔记(一)—— Ajax 入门

笔记目录 1. Ajax 入门1.1 Ajax 概念1.2 axios 使用1.2.1 URL1.2.2 URL 查询参数1.2.3 小案例-查询地区列表1.2.4 常用请求方法和数据提交1.2.5 错误处理 1.3 HTTP 协议1.3.1 请求报文1.3.2 响应报文 1.4 接口文档1.5 案例1.5.1 用户登录(主要业务)1.5.2…

会玩这 10 个 Linux 命令,一定是个有趣的 IT 男!

Linux当中有很多比较有趣的命令,可以动手看看,很简单的。 1.rev命令 一行接一行地颠倒所输入的字符串。 运行: $rev如输入:shiyanlou shiyanlou2.asciiview命令 1.先安装aview $sudo apt-get install aview2.再安装imagema…

react中使用路由起手式,一些思路和细节。

一.安装并配置 我们选择使用react-router实现路由效果 yarn add react-router-dom下载后需要对Route进行引入,是个内置的组件。该组件是有两个属性一个是path,一个是component,path是组件对应的路由,component是对应的组件 二.…

蓝帽杯 取证2022

网站取证 网站取证_1 下载附件 并解压 得到了一个文件以及一个压缩包 解压压缩包 用火绒查病毒 发现后门 打开文件路径之后 发现了一句话木马 解出flag 网站取证_2 让找数据库链接的明文密码 打开www文件找找 查看数据库配置文件/application/database.php(CodeI…

php如何对接伪原创api

在了解伪原创api的各种应用形态之后,我们继续探讨智能写作背后的核心技术。需要说明的是,智能写作和自然语言生成、自然语言理解、知识图谱、多模算法等各类人工智能算法都有紧密的关联,在百度的智能写作实践中,常根据实际需求将多…

C++11时间日期库chrono的使用

chrono是C11中新加入的时间日期操作库,可以方便地进行时间日期操作,主要包含了:duration, time_point, clock。 时钟与时间点 chrono中用time_point模板类表示时间点,其支持基本算术操作;不同时钟clock分别返回其对应…

Jmeter-压测时接口按照顺序执行-临界部分控制器

文章目录 临界部分控制器存在问题 临界部分控制器 在进行压力测试时,需要按照顺序进行压测,比如按照接口1、接口2、接口3、接口4 进行执行 查询结果是很混乱的,如果请求次数少,可能会按照顺序执行,但是随着次数增加&a…

XML 数据传输格式

目录 XML简介 一、初识XML 1.什么是 XML? 2.XML 和 HTML 之间的差异 3.XML 不会做任何事情 4.通过 XML 您可以发明自己的标签 5.XML 不是对 HTML 的替代 二、XML 用途 1.XML 把数据从 HTML 分离 2.XML 简化数据共享 3.XML 简化数据传输 三、XML 树结构 1.一个 XML 文…

大语言模型:LLM的概念是个啥?

一、说明 大语言模型(维基:LLM- large language model)是以大尺寸为特征的语言模型。它们的规模是由人工智能加速器实现的,人工智能加速器能够处理大量文本数据,这些数据大部分是从互联网上抓取的。 [1]所构建的人工神…

Word(1):文章页码设置

1.需求 在文档的封皮页不设置页码,在目录页页码设置为罗马数字,在正文使用阿拉伯数字。 2.解决方法 step1: 在封皮页的最后,点击”插入“-分隔符-分节符(下一页) step2:在目录页的最后&…