Contrastive Self-Supervised Learning 的对比学习框架和设计新方法

2023-11-03

翻译自:
建议阅读原文

https://towardsdatascience.com/a-framework-for-contrastive-self-supervised-learning-and-designing-a-new-approach-3caab5d29619

近来,一系列“新颖”的自监督学习领域算法取得了不错的成果,如:AMDIM[2],CPC[3],Moco[5],SimCLR[4],BYOL[6]等。YADIM[1]设计了一个框架来表达对比性自我监督学习方法,受该框架启发,本文从4个方面了分析近来的对比自监督算法:CPC,AMDIM,MOCO,SimCLR和BYOL,并表明尽管这些方法在表面上看起来有所不同,但实际上它们彼此之间都是细微的调整。

在此博客中,我们将:

  • 回顾自监督的学习;
  • 回顾对比学习;
  • 拆解对比自监督算法框架;
  • 使用框架比较CPC,AMDIM,MOCO,SimCLR和BYOL。

实作
您可以找到我们在PyTorch Lightning中实现的本文中介绍的所有增强功能和方法,这将使您能够在任意硬件上进行训练,并使每种方法的并排比较更加容易。
AMDIM
BYOL
CPC V2 (only verified implementation outside of DeepMind to our knowledge).
Moco V2
SimCLR

1.Self-Supervised Learning

回想一下,在监督学习中,系统被赋予输入(x)和标签(y),
在这里插入图片描述
在自监督学习中,仅给定系统(x),而系统学习的不是(y),而是“学会根据输入的其他部分来预测其输入的一部分”
在这里插入图片描述
实际上,这种表达方式是多样化的,可以创造性地“分解”输入内容, 这些策略称为 pretext tasks。研究人员尝试了各种方法,这里举三个示例:(1)预测两个斑块的相对位置,(2)解决拼图游戏,(3)给图像着色。
在这里插入图片描述
尽管上述方法充满创意,但实际上在实践中效果并不理想。

然而,当使用对比学习的最新方法时,自监督学习已经开始明显缩小在ImageNet上与监督学习之间的差距。
在这里插入图片描述

2 Contrastive Learning

大多数机器学习算法背后的基本思想是,相似的示例应该组合在一起,并且与其他群集相距甚远。

这个想法是最早进行对比学习的著作之一,即“区别学习相似性度量,并应用于人脸验证”(Chopra等人于2004年提出)

下图说明了这个主要思想:
在这里插入图片描述
对比学习通过使用三个关键要素来实现这一目标,即正样本,锚点和负样本表示。 要创建一个正对,我们需要两个相似的例子,而对于负对,我们要使用一个不相似的例子。

在这里插入图片描述
但是在自监督学习中,我们不知道示例的标签。因此,无法知道两个图像是否相似。 假设存在大小为N的数据集中,每个图像都是其自己的类别,那么就可以使用数据增强来生成这些三元组(the positive and negative pair)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Contrastive Self-Supervised Learning 的对比学习框架和设计新方法 的相关文章

随机推荐

  • ifconfig命令无法识别,提示“Command 'ifconfig' is available in '/sbin/ifconfig'”

    有台虚拟机 用的时候发现ifconfig命令不好用了 提示如下 Command ifconfig is available in sbin ifconfig The command could not be located because
  • 需求:vue用流程图展示数据

    问题描述 如标题所示 粗略的写了一版 没有细化 UI 红框的地方本来想用canvas自己写 但是找资料的时候发现了一个插件LeaderLine 非常符合要求 然后发现了一篇文章vue横向树级组件 流程图 组件递归 套用了一下 然后按照自己的
  • 将json-bigint处理为数值分区数组的字段全部自动转为字符串

    json bigint虽然能帮我们处理好id 但 他的模式 显然不是直接可以用的 我们如果要到业务逻辑单独处理 那就太麻烦了 对系统也非常不友好 我们可以在vue项目中 src目录下创建一个utils 下面创建一个conversionLon
  • 线程共享&&独有

    线程共享 进程代码段 进程的公有数据 利用这些共享数据 线程很容易的实现相互之间的通讯 进程打开的文件描述符 信号的处理器 进程的当前目录和进程用户ID与进程组ID 线程独有 线程ID 桟 错误返回码 error 线程优先级
  • IDEA配置仓库提交简易说明

    1 码云注册并创建仓库 2 IDEA顶部菜单VCS 如果没有 删除代码文件夹里面的 git文件 3 Create git 4 选择需要提交的代码文件夹 5 IDEA顶部菜单Git 6 Commit 提交暂存 选择需要提交的代码文件 选择Co
  • SQLi LABS Less-18

    第十八关请求方式为 GET请求 注入点为 User Agent 注入方式为 错误注入 第一步 判断注入方式 先看源码 后台代码对 特殊字符进行了过滤 常规的注入方式行不通 只有通过代码审计来判断注入方式 登录成功后 有一个保存用户主机信息的
  • 文本三剑客之sed

    sed简介 sed 是Linux中提供的一个外部命令 他是一个行 流 编辑器 非交互式的对文件内容进项增删改查操作 那它和文本编辑器有什么区别呢 区别是 文本编辑器 编辑对象是文件 行编辑器 编辑对象是文件中的行 也就是前者一次处理一个文本
  • Anaconda使用conda连接网络时,出现网络错误CondaHTTPError(包括Anaconda安装与入门)

    今天准备安一个Anaconda来管理我的Python环境 在官网下载支持Python3 7的版本 直接安装即可 使用Anaconda Navigator可以方便地创建环境和管理各种外部包 conda version 查看版本 是否安装成功
  • element-ui 中标签el-select选中无反应问题

    el select标签 如果外部还嵌套循环 点击选中标签无反应 删除也不好使 原因由于层次太多 导致render函数没有自动更新 在el select标签内加入 change forceUpdate 强制刷新视图即可
  • 怎样删除Github中的项目

    我们在GitHub上创建项目的时候 如果想要删除当前项目 怎样进行操作呢 下面就简单介绍一下怎样去删除GitHub中的项目 1 选择要删除的项目 2 进入项目中的setting 设置 中 3 一直下拉 看到有红色字体出现 进入Danger
  • 都2022年了,出去面试连分布式锁的源码你都不会画?

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 一 写在前面 二 Redisson实现Redis分布式锁的底层原理 1 加锁机制 2 锁互斥机制 3 watch dog自动延期机制 4 可重入加锁机制 5 锁
  • Linux基础笔记17

    磁盘基础概念知识 计算机主要存储媒介之一 由一个或多个铝制 玻璃的碟片组成 碟片外覆盖具有铁磁性材料 磁盘内部由磁道 柱面 扇区 磁头等关键部位组成 Linux 系统中硬件设备文件放在 dev 下 不同磁盘接口 系统识别的设备名称不一样 I
  • MySQL查询操作

    MySQL查询操作 1 建表 CREATE TABLE 学生 学号 char 7 NOT NULL PRIMARY KEY 姓名 char 8 NOT NULL 性别 char 2 年龄 tinyint 入学时间 datetime 专业 v
  • 【科普贴】MOS管开关原理及应用详解

    前言 MOS管通常被用作电源开关使用 通常使用PMOS做为上管 将NMOS做为下管使用 当然也有反过来使用的场景 但使用较少 此贴为科普贴 就不做累述了 MOS原理介绍 1 NMOS管介绍 电流方向从D S 漏极流向源极 导通条件为VGS有
  • i.mx287学习笔记4-使用QT控制LED

    上面是我的微信和QQ群 欢迎新朋友的加入 目录 1 安装QT CREATOR 2 硬件连接 3 驱动源码 4 编译驱动 测试驱动 5 创建QT界面 6 编译QT 7 运行 8 源码 1 安装QT CREATOR sudo apt get i
  • AVPlayer 播放的时候有黑色边

    iOS视频开发中 使用系统的AVPlayer的几率非常高 然 在部分Plus机型会出现黑边的情况 平时不容易发现 但你的视频若是白色色调 就比较明显 解决方法 修改AVPlayerLayer的属性 使playerLayer光栅化 即位图化
  • python需要学多长时间

    随着人工智能和机器学习的持续升温 Python 目前是首选的AI语言 在数据科学和AI中占据主导地位 而且随着互联网的发展 Python的应用越来越广泛 学习Python的人也越来越多 主要是因为Python门槛低 上手很快 而且通用性和实
  • npm ERR! 400/403 Bad Request - PUT https://registry.npmjs.org/xxx- “xxx“ is invalid for new packages

    npm ERR 403 403 Forbidden PUT https registry npmjs org df ui You do not have permission to publish df ui Are you logged
  • TypeError: 'builtin_function_or_method' object is not subscriptable的一种错误情况

    TypeError builtin function or method object is not subscriptable的一种错误情况 初学python 今天在做练习时为一个Error苦恼了很久 最终找到了解决方法 错误代码块如下
  • Contrastive Self-Supervised Learning 的对比学习框架和设计新方法

    翻译自 建议阅读原文 https towardsdatascience com a framework for contrastive self supervised learning and designing a new approac