【计算机视觉】对比学习综述(自己的一些理解)

对比loss

对比学习的 loss(InfoNCE)即以最 大化互信息为目标推导而来。其核心是通过计算样本表示间的距离,拉近正样本, 拉远负样本,因而训练得到的模型能够区分正负例。

具体做法为:对一个 batch 输入的图片,随机用不同的数据增强方法生成两个 view,对他们用相同的网络 结构进行特征提取,得到 y 和 y’,来自同一张图像的两个不同的表示构成一对正样本对,来自不同图像任意表示对为一对负样本对。随后对上下两批表示两两计算 cosine similarity,得到 N*N 的矩阵,每一行的对角线位置代表 y 和 y’的相似 度,其余代表 y 和 N-1 个负样本对的相似度。计算公式如下(T 为超参):

 

MOCO(memory bank)

MOCO 的一个核心观点是,样本数量对于对比学习很重要。从 InfoNCE loss 我们可以看出,增加负例的数量可以防止过拟合,与此同时,负例越多,这个任务的难度就越大,因而通过增加负例的方式可作为一个优化方向。但是纯粹的增加 batch size 会使得 GPU 超负荷。一个可行的方法就是增加 memory bank,把之前编码好的样本存储起来,计算 loss 的时候随机采样负例。但是这样会存在一个问题,就是存储好的编码都是之前编码计算的,而 Xq 经过误差回传后一直在更新,样本缺乏一致性,影响目标优化。因而在此基础上 Moco 提出了一种动量对比 (Mometum contrast) 的方法提高每个 mini-batch 的负样本数量。

MOCO的改进方法:动量更新,主要是为了解决引入队列维护字典之后,字典的编码器无法通过梯度反传获得参数更新的问题。

Moco就提出Momentum Contrast的方法解决Memory Bank的缺点,该方法使用一个队列来存储和采样 negative 样本,队列中存储多个近期用于训练的 batch 的特征向量。队列容量要远小于 Memory Bank,但可以远大于 batch 的容量,如下图所示。这里momentum encoder可以和encoder完全一致参与梯度下降,也可以是对query encoder的平滑拷贝。

我的疑问:这样还有类似于memory bank的负采样吗?如果没有,那么bacthsize岂不是还是不能增大?这只是解决了encoder同步更新的问题。-----》以上下划线

SimCLR

在 encoder 之后增加了一个非线性映射。研究发现 encoder 编码后的 h 会保留和数据增强变换相关的信息,而非线性层的作用就是去掉这些信息,让表示回归数据的本质。

自监督学习速览 - 搬砖啦姜姜的文章 - 知乎

经典论文学习笔记——13篇对比学习(Contrastive Learning)

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

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

相关文章

Matlab绘图系列教程-Matlab 34 种绘图函数示例(上)

Matlab绘图系列教程:揭秘高质量科学图表的绘制与优化 文章目录 Matlab绘图系列教程:揭秘高质量科学图表的绘制与优化第一部分:入门指南1.1 简介关于本教程的目的与范围Matlab绘图在科学研究中的重要性 1.2 准备工作安装Matlab及其工具箱 1.3 …

探索Python条件语句的奇妙世界:解密逻辑与控制流

文章目录 前言if 语句if ... else ...多重判断(if ... elif ... else...)if 嵌套猜数字游戏三目运算符 前言 Python的条件语句用来根据特定的条件决定程序的执行流程。它允许程序根据条件的真假执行不同的代码块,从而实现不同情况下的不同操…

ES6: 模版字符串

前言: ES5 中我们表示字符串的时候使用 或者 "" 作用: 在 ES6 中,我们还有一个东西可以表示字符串,就是 (反引号) let str hello worldconsole.log(typeof str) // string和单引号还有双引号的区别: 反引号可以换行…

《面向分布式云的直播及点播云技术创新方案》获中国信通院“分布式云技术创新先锋案例”

由中国信息通信研究院、中国通信标准化协会主办的第三届“云边协同大会”于 6 月 30 日在京举办。阿里云视频云团队凭借 《面向分布式云的直播及点播云技术创新方案》 在一众产品服务中脱颖而出,荣获「分布式云技术创新先锋案例」。 面向分布式云技术的直播及点播云…

83、基于STM32单片机录音机录音笔语音存储回放TF卡TFT屏系统设计(程序+原理图+PCB源文件+参考论文+硬件设计资料+元器件清单等)

单片机主芯片选择方案 方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元&a…

git介绍和使用

目录 一、git概述 1、简介 2、下载安装 二、git代码托管服务 1、常用的 Git 代码托管服务 2、使用码云代码托管服务 三、git常用命令 1、git全局设置 2、获取git仓库 3、工作区、暂存区、版本库 概念 4、Git工作区中文件的状态 5、本地仓库操作 6、远程仓库操作 …

python简单实现人脸检测/跟随

import cv2# 加载人脸识别器的模型 face_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xml)# 打开摄像头 cap cv2.VideoCapture(0)# 初始化人脸框位置 prev_faces []# 定义绘制带圆角矩形边框的函数 def draw_rounded_rectangle(…

pip安装opencv-python不成功

一个比较笨但还算有效的方法:如果你的python版本较低,如现在2023-07-04使用python3.6环境,使用pip默认安装会是最新的4.8.0.7版本,但事实上这个版本不支持py3.6环境,所以你需要去这里查支持py3.6的最近的一个版本是什么…

从 AI 增强到大模型,企业使用数据的方式又将如何变化?

AI(Artificial Intelligence,人工智能)的发展不过百年,却已经深刻影响着人们的思维和见解,并逐渐关联到每个人生活和工作的方方面面。从最初的规则引擎和引入统计学方法,到基于知识表示和推理机制的专家系统…

VScode中的插件

开启VScode中最简单的内部浏览器 - 可以访问外网 - Browser Preview 插件安装: 插件使用:由下角 - 状态栏 - VS Browser按钮 live sass compiler-vscode插件将scss编译为css live sass compiler是VSCode扩展,可以实时地将SASS / SCSS文件…

POSTGRESQL SQL 执行用 IN 还是 EXISTS 还是 ANY

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到3群(共…

【youcans动手学模型】MobileNet 模型-CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】MobileNet 模型-CIFAR10图像分类 1. MobileNet 卷积神经网络模型1.1 模型简介1.2 论文介绍 2. 在 PyTorch 中定义 MobileNet V1 模型类2.1 深度可分离卷积(DSC&…

转换流~~

乱码如何解决: 使用字符输入转换流可以提取文件(GBK)的原始字节流,原始字节不会存在问题然后把字节流以指定编码转换成字符输入流,这样字符输入流中的字符就不乱码了 1:字符输入转换流 字符转换输入流&a…

uni-App踩坑记录

​ 1、uni自己封装的axios在真机中失效,发不出请求 uniapp中使用axios 需要配置适配器 (添加适配器有点费劲,直接封装uni自带请求也可以) axios-adapter-uniapp传送门 axios.defaults.adapter function(config) { //自己定义个适配器,用来…

2023年生猪行业研究报告

第一章 行业概况 生猪是指猪类动物中未经加工的、原始的、活体的猪,通常是指用于肉类生产的猪。生猪在全球范围内都是主要的肉类来源之一。它们的肉质丰富,营养价值高,同时还能用来制作各种加工肉类产品,如火腿、香肠等。 生猪养…

AR试穿试戴相关SDK或平台

1.火山引擎 链接 咨询过平台收费比较高几十万一年而且还是起步价 2.Geenee 链接 geenee在衣服、裤子、头饰以及鞋子方面可以实现试穿。 3.Wanna 链接 Wanna 试衣、试包、试鞋及手表都可以,我试过鞋子的试穿效果还不错 4.DeepAR …

nginx进行反向代理

Nginx是一个开源的高性能Web服务器和反向代理服务器。它最初是由Igor Sysoev在2004年开发的,现在由一个全球性的社区维护和支持。 Nginx的主要特点包括: 高性能:Nginx使用事件驱动模型,可以处理高并发请求,具有出色的…

信息服务上线渗透检测网络安全检查报告和解决方案4(网站风险等级评定标准、漏洞危害分级标准、漏洞安全建议)

系列文章目录 信息服务上线渗透检测网络安全检查报告和解决方案3(系统漏洞扫描、相对路径覆盖RPO漏洞、nginx漏洞修复)信息服务上线渗透检测网络安全检查报告和解决方案2(安装文件信息泄漏、管理路径泄漏、XSS漏洞、弱口令、逻辑漏洞、终极上传漏洞升级)信息服务上线渗透检测网…

常微分方程(ODE)求解方法总结(续)

常微分方程(ODE)求解方法总结(续) 1 隐式方法2 多步法2.1 二阶方法2.1.1 非自启动修恩方法2.2 开型和闭型积分公式2.3 高阶多步法 1 隐式方法 常微分方程(ODE)求解方法总结 里面介绍了我称为“正常思路”的…

C/C++的发展历程和未来趋势

文章目录 C/C的起源C/C的应用C/C开发的工具C/C未来趋势 C/C的起源 C语言 C语言是一种通用的高级编程语言,由美国计算机科学家Dennis Ritchie在20世纪70年代初期开发出来。起初,C语言是作为操作系统UNIX的开发语言而创建的。C语言的设计目标是提供一种功…