【论文阅读】Self-supervised Learning: Generative or Contrastive

Abstract

研究了在计算机视觉、自然语言处理和图形学习中用于表示的新的自监督学习方法。全面回顾了现有的实证方法,并根据其目的将其归纳为三大类:生成性、对比性和生成性对比(对抗性)。进一步收集了关于自我监督学习的相关理论分析,以对自我监督学习为什么有效提供更深入的思考。最后,简要讨论了自我监督学习的开放问题和未来方向。

Introduction

在这里插入图片描述
自监督学习可以看作无监督学习的一个分支,因为不涉及手工label,狭义地说,无监督学习专注于检测特定的数据模式,如聚类、社区发现或异常检测,而自监督学习旨在恢复,这仍然处于监督环境的范式中。
有监督学习是数据驱动型的,严重依赖昂贵的手工标记、虚假相关性和对抗性攻击。我们希望神经网络能用更少的标签、更少的样本和更少的试验来学习更多。自注意力话大量的注意力在数据有效性和生成能力。在2020年AAAI的受邀演讲中,图灵奖得主Yann LeCun将自我监督学习描述为“机器为任何观察到的部分预测其输入的任何部分”。
自监督学习的特征可以概括为:

  1. 通过使用半自动的过程从数据本身获得label
  2. 从数据的其他部分预测这一部分

在这里插入图片描述

上图是这个综述文章的分类,生成性、对比性和生成性对比(对抗性);以及每一个类别下的典型的方法。

自监督学习的动机

为了解决基本的OOD(泛化能力差,简单的多层感知器泛化能力非常差(总是假设分布外(OOD)样本呈线性关系))和生成的问题。
自我监督学习的成功最关键的一点是,它找到了一种方法来利用大数据时代可用的大量未标记数据。
自监督学习可以分为三大类:

  1. 生成式:训练一个encoder去编码输入x到明确的向量z,和一个解码器去从z重建x。(eg:the cloze test, graph generation)
  2. 对比式:训练一个encoder去编码输入到一个明确的向量z,去衡量相似性。(eg:mutual information maximizetion.instance discrimination)
  3. 生成对比式(对抗式):训练一个encoder-decoder去省城fakesamples 和一个鉴别器去区分真实样本和生成样本。(eg:GAN)

在这里插入图片描述
这三个类别不同在于架构和目标函数的不同。
不同点:

  1. 对于潜在分布z,在声称是和对比式方法中,z是明确的经常被应用于下游任务,而GAN中,z是隐式建模的。
  2. 对于鉴别器。这个生成的方式没有鉴别器,然而GAN和对比网络有。对比式的网络相对来说鉴别器有更少的参数。 (e.g., a multi-layer perceptron with 2-3 layers) than GAN (e.g., a standard ResNet [53])
    一张自监督学习综述的图
    在这里插入图片描述

生成式的自监督学习

AR

在计算机视觉中,PixelRNN和PixelCNN,总体思路是利用自回归访华逐像素的对图像进行建模。对于2D图像,自回归模型只能更具特定方向来分解改了,所以在CNN架构中采用了掩模滤波器。基于PixelCNN, WaveNet[130]——一种原始音频生成模型被提出。为了处理长期的时间依赖性,作者开发了扩展的因果卷积来改善接受野。此外,门控残差块和跳过连接被用来增强更好的表达能力。
自回归模型的优点是可以很好地对上下文依赖性进行建模。然而,AR模型的一个缺点是,每个位置的令牌只能从一个方向访问其上下文。

Flow-based Model

基于流的模型的目标是从数据中估计复杂的高维密度函数p(x)。

AE

灵活。AE由一个编码器网络h = f e n c ( x ) f_{enc}(x) fenc(x)和一个解码器网络x’ = f d e c ( x ) f_{dec}(x) fdec(x)(h)组成。AE的目标是使x和x’尽可能相似(如通过均方误差)。可以证明线性自编码器与PCA方法相对应。
除了基础的AE,还有CPM,Denoising AE Model,Variational AE Model。
在这里插入图片描述
VQ-VAE的体系结构。与VAE相比,原始的隐藏分布被量化的矢量字典所取代。此外,先前的分布被预先训练的PixelCNN取代,该PixelCNN对图像的分层特征进行建模。

Hybird Fenerative Models

包括结合AR和AE的模型、结合AE和Flow-based Model。

Pros and Cons

优点:不假设下游任务的情况下,重建原始图像分布的能力。现有的生成任务严重依赖生成式自监督学习。
缺点

  1. 生成子监督学习在一些分类情境下,相比于对比学习有很少的竞争力。因为对比学习的目标函数天然地符合分类学习的目标。
  2. 生成式模型逐点的特性使它有一些内在的缺点:敏感性和保守性分布,低级抽象的目标不适合一高级抽象目标的分类任务。
    作为一种相反的方法,生成对比式自我监督学习放弃了逐点目标。它转向更健壮的分布式匹配目标,并更好地处理数据流形中的高级抽象挑战。

对比自监督学习

分为两类:上下文-实例对比、实例-实例对比。

上下文-实例对比

注重于对局部特征和全局上下文语义的对比。
例如:Predict Relative Position
注重于学习局部部分之间的相对位置。全局的上下位作为一个隐式的需求。
在这里插入图片描述
Maximize Mutual Information
MI专注于学习局部部分和全局乡下问之间的直接的归属关系,局部位置之间的关系被忽略了。
在这里插入图片描述

实例-实例之间的对比

度量学习的一个重要重点是在提高负采样效率的同时执行硬正采样。它们可能在基于MI的模型的成功中发挥着更关键的作用。
作为替代,实例-实例对比学习抛弃了MI,直接研究不同样本的实例级局部表示之间的关系。对于广泛的分类任务,实例级表示比上下文级表示更为重要。

例如:Cluster Discrimination
Instance Discrimination(实例判别)
在这里插入图片描述
第一种是端到端的范式,有两个编码器,两个编码器都进行梯度更新,依赖于大的batchsize提供更多的负样本。第二个是有memory bank的方式,有一个编码器,只对这一个编码器进行梯度更新,负样本从memory bank中提取,每次都更新memory bank中随机位置的特征,特征一致性不好,每一个batchsize,模型都会更新,但是memory bank只更新一部分。正样本和负样本进行对比的时候,正样本是当前的encoder产生的,负样本不知道是什么时候的encoder产生的。第三个Moco使用动量编码器,在第一个基础上把右边的编码器改成动量编码器,并且采用队列形式的字典。把对比学习当作动态的字典查询问题。

在这里插入图片描述
SIMLR采用了多种数据增强和一个proj在最后加一个非线性层,获得了比Moco高的效果。
在这里插入图片描述

BYOL不用负样本,获得了很好的效果。

半监督自我训练的自我监督对比预训练

Chen等人[20]的SimCLR v2支持了上述结论,表明只有10%的原始ImageNet标签,通过联合预训练和自我训练,ResNet-50可以超过监督的。他们提出了一个三步框架:

  1. 像SimCLR v1一样进行自我监督的预训练,并进行一些小的架构修改和更深的ResNet.
  2. 仅使用1%或10%的原始ImageNet标签微调最后几层。
  3. 使用微调后的网络作为教师模型,在未标记的数据上产生标签,以训练较小的学生ResNet-50。知识蒸馏

优点和缺点

优点:对比学习没有解码器,因此对比学习是轻量级的,在下游鉴别任务中表现很好。
存在的问题

  1. 对比学习在NLP领域没有取得令人信服的结果。现在大多数在BERT上进行微调。。很少有算法被提出在预训练阶段应用对比学习。由于大多数语言理解任务都是分类的,因此对比语言预训练方法应该比目前的生成语言模型更好。
  2. 采样有效性。负抽样对于大多数对比学习是必须的,但这个过程通常是棘手的,有偏见的,耗时的。不清楚负样本在对比学习中的作用。
  3. 数据增强,数据增强能提高对比学习的性能。但它为什么以及如何起作用的理论仍然相当模糊。这阻碍了它在其他领域的应用,比如NLP和图学习,这些领域的数据是离散和抽象的。

生成对比学习

总之,对抗性方法吸收了生成法和对比法的优点,同时也存在一些缺点。在我们需要适应隐式分布的情况下,这是一个更好的选择。

使用完整输入

通过部分输入恢复

图像着色、图像修复、超分辨率

预训练语言模型

图学习

领域适应和多模态表示

优点和缺点

优点:生成-对比(对抗性)自监督学习在图像生成、转换和处理方面特别成功
缺点

  1. 在NLP和图领域应用受限。
  2. 容易坍塌
  3. 不是用于特征提取

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

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

相关文章

Java浮点数精度问题与BigDecimal详解

第1章:引言 大家好,我是小黑,咱们在日常的Java编程中,经常会遇到处理金融数据的情况,比如计算商品的价格或者处理用户的账户余额。在这些场景下,精确的数值计算就显得尤为重要。这时候,BigDeci…

【SPDK】【NoF】使用SPDK实现NVMe over Fabrics Target

本文使用两台PC,一台做NVMe over Fabrics Target(服务端),一台做NVMe over Fabrics initiator(客户端)。首先使用SoftRoCE来实现底层的rdma传输,然后使用SPDK来实现NVMe over Fabrics Target。 …

内存卡为什么会提示格式化,内存卡提示格式化还能恢复吗

对于许多电脑用户来说,执行内存卡格式化操作导致数据丢失是一个常见的问题。在日常生活中,数据丢失的情况并不少见,但内存卡格式化后的数据恢复相对较难。目前,能够使用的方法较少,且成功率较低,但并不是没…

全网快递查询工具:批量查询,提升工作效率的利器

在快递行业日新月异的今天,高效、准确的快递信息管理显得尤为重要。固乔快递查询助手正是一款专为快递网点设计的实用工具,它可以帮助您快速、批量查询全网快递单号,为您的网点运营带来诸多便利。 一、固乔快递查询助手的用途 批量查询&…

java: 5-3 for循环

文章目录 1. for1.1 基本语法1.2 练习1.3 执行流程1.4 细节1.5 编程思想 (练习) 【老韩b站视频笔记p121-p125】 1. for 让你的代码可以循环执行。 1.1 基本语法 for 关键字,表示循环控制。for 有四要素: (1)循环的初始变量。 (2)循环的条件(变量条件&…

代码随想录算法训练营第25天 | 216.组合总和III 17.电话号码的字母组合

目录 216.组合总和III 💡解题思路 回溯三部曲 💻实现代码 17.电话号码的字母组合 💡解题思路 # 数字和字母如何映射 # 回溯法来解决n个for循环的问题 💻实现代码 216.组合总和III 题目链接:216.组合总和III …

百家大吉·夕阳关爱——昌岗街微型养老博览会

居民热情参与博览会 为让长者了解及选择适合自己的养老服务,昌岗街在2023年12月27日开展以“百家大吉夕阳关爱”为主题的昌岗街微型养老服务公益博览会活动,通过搭建养老服务机构供需服务平台,拓宽社区长者了解正规养老服务机构的渠道&#…

仿真验证方法(1)——动态验证

一、概述 1.1 验证的目的和方法 在现代集成电路设计中,验证所占工作量超过70%。验证要求真实而完备,它决定了设计的成败与成本。 验证的目的 原始描述是否正确?(代码) 逻辑功能是否正确?(功能…

OpenGl 19高级GLSL

一.GLSL的内建变量 在着色器中,需要当前着色器以外地方的数据的话,必须把数据传进来。之前我们是通过uniform类型和采样器来完成的。之外,GLSL还支持另外几个以gl为前缀的变量,提供更多读写数据的方式,比如说顶点着色…

C语言操作符详解与进制

目录 一:操作符的分类 二:二进制和进制转换 2.1 2进制转10进制 2.1.1 10进制转2进制数字 2.2 2进制转8进制和16进制 2.2.1 2进制转8进制 2.2.2 2进制转16进制 三: 原码、反码、补码 四:移位操作符 4.1左移操作符 4.2 右…

C语言指针(一)

目录 1.什么是指针 2.指针变量和地址 1.解引用操作符 2.指针变量类型的意义 3.void*指针 4.const修饰指针 1.const放在*左边 2.const放在*右边 3.指针的运算 1.指针加减整数 2.指针减指针 3.指针比较大小 4.野指针 1.没有给指针变量初始化 2.指针指向的空间释放 …

XSS的利用(包含:蓝莲花、beef-xss)

0x00、环境搭建 dvwa靶场 操作指南和最佳实践:使用 DVWA 了解如何防止网站漏洞_dvwa源代码-CSDN博客 xss漏洞接收平台 下载:GitHub - firesunCN/BlueLotus_XSSReceiver 将解压后的BlueLotus_XSSReceiver原代码放置 phpstudy 安装目录的WWW文件夹下 访问平台:http://127…

力扣刷题记录(28)LeetCode:797、200、463

797. 所有可能的路径 解题思路&#xff1a;回溯算法&#xff0c;当收集到的路径的最后一个值等于n-1时&#xff0c;收集答案。 参数&#xff1a;图、当前结点 class Solution { public:vector<int> path;vector<vector<int>> ans;void dfs(vector<vector…

企业培训系统源码:构建智能、可扩展的学习平台

企业培训系统在现代企业中扮演着至关重要的角色。本文将通过深度解析企业培训系统的源码&#xff0c;介绍如何构建一个智能、可扩展的学习平台&#xff0c;涉及关键技术和代码实例。 1. 技术栈选择与项目初始化 在构建企业培训系统之前&#xff0c;选择适当的技术栈是至关重…

Linux操作系统----实用工具Git(配实操图)

绪论​ “针对问题 解决问题 针对问题&#xff01;”&#xff0c;本章主要讲解的是Git是什么以及Git的如何搭建仓库和如何在Linux环境下通过指令的形式提交自己的代码到远程仓库。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 1.Git的来源以…

vulnhub靶场之DC-5

一.环境搭建 1.靶场描述 DC-5 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing. The plan was for DC-5 to kick it up a notch, so this might not be great for beginners, but should be ok for p…

el-select 单选时,选择后输入框的is-focus状态并没有取消

前两天在封装组件的时候&#xff0c;发现el-select 单选时&#xff0c;选择后输入框的is-focus状态并没有取消&#xff0c;需要手动点其它地方才会取消&#xff0c;于是想着找找为什么 一、通过调试源码发现&#xff0c;输入框在点击选项后触发blur&#xff0c;紧接着又触发了…

STM32学习笔记二十一:WS2812制作像素游戏屏-飞行射击游戏(11)探索游戏脚本

还记得上次在第十七章中为BOSS创建的路径动画吧。我们写了一大坨的代码来描述BOSS的运动路径&#xff0c;但凡是写过几年代码的人都不会干出这样的事情。-_-! 没办法&#xff0c;谁叫那时候还没有脚本呢。这章就来补齐这块短板。 脚本属于配置化的一种&#xff0c;你可以把脚…

大模型学习与实践笔记(四)

一、大模型开发范式 RAG&#xff08;Retrieval Augmented Generation&#xff09;检索增强生成&#xff0c;即大模型LLM在回答问题或生成文本时&#xff0c;会先从大量的文档中检索出相关信息&#xff0c;然后基于这些检索出的信息进行回答或生成文本&#xff0c;从而可以提高回…

【实用技巧】Steam Wallpaper Engine 壁纸引擎向手机导入壁纸方法

一、内容简介 本文介绍如何使用电脑上的 Wallpaper Engine &#xff08;Steam 平台中的壁纸引擎&#xff09;向安卓手机导入并使用壁纸。 二、所需原材料 安卓手机&#xff08;以笔者使用的华为荣耀50为例&#xff09;、安装有Steam以及Wallpaper Engine的电脑 三、导入方法…