对比学习论文综述总结
第一阶段:百花齐放(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可能有两个甚至多个编码器;它们做的任务从图像到视频到音频到文字到强化学习,非常的丰富多彩。
相关文章:
对比学习论文综述总结
第一阶段:百花齐放(18-19中) 有InstDisc(Instance Discrimination)、CPC、CMC代表工作。在这个阶段方法模型都还没有统一,目标函数也没有统一,代理任务也没有统一,所以说是一个百花齐放的时代 1 判别式代理任务---个体判别任务 1.1 Inst Dict---一个编码器+一个memory…...
【BASH】回顾与知识点梳理(二十三)
【BASH】回顾与知识点梳理 二十三 二十三. Linux 账号管理(二)23.1 账号管理新增与移除使用者: useradd, 相关配置文件, passwd, usermod, userdelusermoduserdel 23.2 用户功能(普通用户可使用)idfingerchfnchsh 23.3…...
用 Python 写一个 NoSQL 数据库
NoSQL 这个词在近些年正变得随处可见. 但是到底 “NoSQL” 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Python (我比较喜欢叫它, “轻结构化的伪代码”) 写一个 NoSQL 数据库来回答这些问题. OldSQL 很多情况下, SQL 已经成为 “数据库” (database)…...
Spring Security自定义登陆界面和密码验证逻辑
maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency> 创建配置文件处理跳转拦截等功能以及密码比对功能 package com.example.demo2.demos.web1;…...
Android布局【LinearLayout】
文章目录 常见属性orientation的选择项解释项目结构主要代码 常见属性 orientation:布局中组件的排列方式gravity:控制组件所包含的子元素的对齐方式,可多个组合layout_gravity:控制该组件在父容器里的对齐方式background&#x…...
搭建grafana+loki+promtail日志收集系统
准备工作 下载地址 https://github.com/grafana/loki/releases 安装包放在服务器目录:/opt wget https://github.com/grafana/loki/releases/download/v2.4.2/loki-linux-amd64.zip wget https://github.com/grafana/loki/releases/download/v2.4.2/promtail-lin…...
Electron+vue3项目使用SQLite3数据库
SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,我们不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程&am…...
SpringSpringBoot常用注解
目录 一、核心注解二、Spring Bean 相关2.1 Autowired2.2 Component, Repository, Service, Controller2.3 RestController 与 Controller2.4 Configuration 与 Component2.5 Scope 三、处理常见的 HTTP 请求类型3.1 GET 请求3.2 POST 请求3.3 PUT 请求3.4 DELETE 请求3.5 PATC…...
题目:2566.替换一个数字后的最大差值
题目来源: leetcode题目,网址:2566. 替换一个数字后的最大差值 - 力扣(LeetCode) 解题思路: 将从左到右第一个非 9 数字全部修改为 9 以得到最大值。将从左到右第一个数字全部修改为 0 以得到最小值&a…...
使用 NLP 进行文本摘要
一、说明 文本摘要是为较长的文本文档生成简短、流畅且最重要的是准确摘要的过程。自动文本摘要背后的主要思想是能够从整个集合中找到最重要信息的一小部分,并以人类可读的格式呈现。随着在线文本数据的增长,自动文本摘要方法可能会非常有用,…...
vue3挂载全局方法和组件
话不多说直接上代码 main.js import { createApp } from vue import App from ./App.vueconst app createApp(App)// 注册全局方法和组件 function myMethod(){console.log(Hello, world!); } app.provide("myMethod", myMethod) // provide注册全局方法 inject获取…...
mybatisplus学习笔记
1.踩过的坑 1.MybatisPlus 要与其代码生成器的版本一致; 2.要使用新版代码(3.5.1及以上)生成器则要使用springboot3,如果用springboot2使用新版代码生成器会导致builder.parent(“com.sdfsf”) // 设置父包名》重复!&…...
go mod 添加私有库GOPRIVATE
私有地址 形式仓库域名/组织名形式仓库域名形式*仓库域名 示例私有地址: gitee.com/takujo_admin 或者igitlab.com 多个私有地址,分割,示例: gitee.com,igitlab.com 修改env go env -w GOPRIVATE"私有地址" go env -w …...
07-HDFS入门及shell命令
1 文件系统 是一种存储和组织数据的方法,它使得文件访问和查询变得容易使得文件和树形目录的抽象逻辑概念代替了磁盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据底层存在硬盘哪里,只需记住这个文件的所属目录和文件…...
TiDB在科捷物流神州金库核心系统的应用与实践
业务背景 北京科捷物流有限公司于2003年在北京正式成立,是ISO质量管理体系认证企业、国家AAAAA级物流企业、海关AEO高级认证企业,注册资金1亿元,是中国领先的大数据科技公司——神州控股的全资子公司。科捷物流融合B2B和B2C的客户需求&#…...
React 18 更新 state 中的数组
参考文章 更新 state 中的数组 数组是另外一种可以存储在 state 中的 JavaScript 对象,它虽然是可变的,但是却应该被视为不可变。同对象一样,当想要更新存储于 state 中的数组时,需要创建一个新的数组(或者创建一份已…...
【css】css中使用变量var
CSS 变量可以有全局或局部作用域。 全局变量可以在整个文档中进行访问/使用,而局部变量只能在声明它的选择器内部使用。 如需创建具有全局作用域的变量,请在 :root 选择器中声明它。 :root 选择器匹配文档的根元素。 如需创建具有局部作用域的变量&am…...
判断自己网络所在的NAT类型
文章目录 各NAT类型介绍软件准备流程 各NAT类型介绍 NAT0: OpenInternet,没有经过NAT地址转换,公网IP NAT1: Full Cone NAT,动态家宽可以达到最优的状态,外网设备可以主动发信息给NAT1网络内的设备。 NAT2: Address-Restricted C…...
ClickHouse(十九):Clickhouse SQL DDL操作-1
进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…...
小程序保留2位小数据,不四舍五入
方法1: parseInt toFixed /* * 保留2位小数,不四舍五入 * 5.992550 >5.99 , 2 > 2.00 * */ const toFixed2Decimal (value) > {return (parseInt(value*100)/100).toFixed(2) } console.log(587.67*100) console.log(toFixed2Decimal(587.67…...
隐蔽通信技术:原理、实现与应用
1. 隐蔽通信技术概述隐蔽通信(Covert Communication)是一种特殊的信息传输技术,其核心目标是实现低检测概率(Low Probability of Detection, LPD)的通信。与传统的加密通信不同,隐蔽通信不仅保护通信内容的…...
全局退火算法:用神经网络驱动蒙特卡洛,突破组合优化瓶颈
1. 全局退火算法:为什么我们需要一种新的优化范式?在组合优化和统计物理领域,我们经常面对一个看似简单、实则令人头疼的核心问题:如何在一个由无数个可能状态构成的、崎岖不平的“能量景观”中找到那个最低的谷底——也就是全局最…...
完整掌握Stressapptest:高效系统稳定性测试的实用指南
完整掌握Stressapptest:高效系统稳定性测试的实用指南 【免费下载链接】stressapptest Stressful Application Test - userspace memory and IO test 项目地址: https://gitcode.com/gh_mirrors/st/stressapptest Stressful Application Test(简称…...
Cortex-M处理器RXEV输入详解与应用优化
1. Cortex-M系列处理器中的RXEV输入详解 在嵌入式系统设计中,Cortex-M系列处理器因其出色的能效比和实时性能而广受欢迎。其中RXEV(Receive Event)输入引脚是一个常被忽视但极为关键的功能接口,特别是在多核协同和低功耗场景下。作…...
数字孪生AI流水线设计:Function+Data Flow框架解析与实践
1. 项目概述:当数字孪生遇上机器学习流水线如果你正在构建一个数字孪生系统,无论是为了预测一座桥梁的疲劳寿命,还是模拟一台精密电机的电磁行为,你大概率会用到机器学习。这听起来很酷,但实际操作起来,往往…...
为什么你的Gemini总生成错误JOIN?深度拆解语义理解断层、外键缺失与上下文截断三大黑洞
更多请点击: https://intelliparadigm.com 第一章:为什么你的Gemini总生成错误JOIN?深度拆解语义理解断层、外键缺失与上下文截断三大黑洞 当Gemini面对多表SQL生成任务时,频繁输出逻辑错误的JOIN语句——例如对无关联字段的表强…...
将 Hermes Agent 工具链接入 Taotoken 的配置要点解析
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 将 Hermes Agent 工具链接入 Taotoken 的配置要点解析 Hermes Agent 是一款功能强大的 AI 智能体开发框架,支持通过自定…...
林志玲退文策院聘书,台湾大骂“中国玲”
林志玲到底咋了?这几天林志玲拒绝文策院董事的消息,在网上炸开了锅。可谁能想到,这个“拒绝”本身,反倒把她架在火上烤了一遍。先看岛内那边。一听说这事,一些极端网友直接炸毛,翻出她以前为祖国做的事儿&a…...
CentOS 7 SSH端口修改实战:SELinux、firewalld与密钥登录全闭环
1. 为什么改SSH端口不是“换把锁”,而是重构服务器的第一道防线很多人第一次接触Linux服务器安全,第一反应就是“改个SSH端口不就完事了?”——结果改完发现连不上,慌得重装系统;或者改完以为高枕无忧,三天…...
Zotero文献去重插件:高效清理重复文献的完整解决方案
Zotero文献去重插件:高效清理重复文献的完整解决方案 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 在学术研究过程中,…...
