再介绍一篇最新的Contrastive Self-supervised Learning综述论文(一)

简介: 再介绍一篇最新的Contrastive Self-supervised Learning综述论文(一)

作者 | 对白


出品 | 对白的算法屋


自监督学习(Self-supervised learning)最近获得了很多关注,因为其可以避免对数据集进行大量的标签标注。它可以把自己定义的伪标签当作训练的信号,然后把学习到的表示(representation)用作下游任务里。最近,对比学习被当作自监督学习中一个非常重要的一部分,被广泛运用在计算机视觉、自然语言处理等领域。它的目标是:将一个样本的不同的、增强过的新样本们在嵌入空间中尽可能地近,然后让不同的样本之间尽可能地远。这篇论文提供了一个非常详尽的对比自监督学习综述。


我们解释了在对比学习中常用的前置任务(pretext task),以及各种新的对比学习架构。然后我们对不同的方法做了效果对比,包括各种下游任务例如图片分类、目标检测、行为识别等。最后,我们对当前模型的局限性、它们所需要的更多的技术、以及它们未来的发展方向做了总结。


b77ba793a925a0a4166b3c19490a103d.png


1. 介绍




深度学习从大量数据中自动学习的能力使其在各种领域广泛应用,例如CV和NLP。但是深度学习也有其瓶颈,就是它需要大量的人工标注的标签。例如在计算机视觉中,监督模型需要在图片的表示和图片的标签之间建立关联。


传统的监督学习模型极度依赖于大量的有标签数据。所以研究者们想研究出一种办法,如何利用大量的无标签数据。所以自监督学习的到了广泛关注,因为它可以从数据自己本身中寻找标签来监督模型的训练。


图一:对比学习的直观理解:让原图片和增强的图片变近,让原图片和其他图片变远


监督学习不仅需要大量的标注数据,它还面临着下面的各种问题:


  • 模型的泛化性能


  • 伪相关


  • 对抗攻击


最近,自监督学习结合了生成模型和对比模型的特点:从大量无标签数据中学习表示。


一种流行的方式是设计各种前置任务(pretext task)来让模型从伪标签中来学习特征。例如图像修复、图像着色、拼图、超分辨率、视频帧预测、视听对应等。这些前置任务被证明可以学习到很好的表示。


bfcd060e77d27da42b6d9d2a1f0ab69a.png


图二:对比自监督学习训练范式


在2014年生成对抗网络(GAN)推出之后,生成模型得到了很多关注。它之后变成了许多强大的模型的基础,例如 CycleGAN, StyleGAN, PixelRNN, Text2Image, DiscoGAN 等。


这些模型启发研究者去研究自监督学习(不需要标签)。


他们发现基于GAN的模型很复杂,不容易训练,主要是由于下面原因:


  1. 难以收敛


  1. 判别器太强大而导致生成器难以生成好的结果


  1. 判别器和生成器需要同步


c5b1efba12da358dd503bb60194b5407.png


图三:不同的对比学习方法在ImageNet上的效果(TOP1 分类准确率)


与生成模型不同,对比学习是一种判别模型,它让相似样本变近,不同样本变远(见图一)。


为了达到这一点,一种衡量远近的指标被用来衡量嵌入之间的远近。


如图二所示,对比损失用来训练对比学习模型。一般来说,以图片为例,对比学习把一张图片的增强版本当作一个正例,其余图片当作反例,然后训练一个模型来区分正反例。区分依赖于某种前置任务。


这样做,学习到的表示就可以用到下游任务之中。


2.前置任务



前置任务是自监督学习中非常重要的一种策略。它可以用伪标签从数据中学习表示。


伪标签是从数据本身中定义而来的。


这些任务可以应用到各种数据之中,例如图片、视频、语言、信号等。


在对比学习的前置任务之中,原始图片被当作一种anchor,其增强的图片被当作正样本(positive sample),然后其余的图片被当作负样本。


大多数的前置任务可以被分为四类:


  • 颜色变换


  • 几何变换


  • 基于上下文的任务


  • 基于交叉模式的任务


具体使用哪种任务取决于具体的问题。


颜色变换



622078bf2a164cdc538b96b8f4c35010.png


图四:颜色变换前置任务,包括:原图,高四噪声,高斯模糊,颜色失真(jitter)


颜色变换很好理解,不多说了。在这个前置任务中,图片经过变换,它们还是相似的图片,模型需要学会辨别这些经过颜色变换的图片。


几何变换



几何变换也很好理解,不多说了。


原图被当作全局视图(global view),转换过的图片被当作局部试图(local view):


54ea03642cac37dd19681d10dfe521ff.png


图五:几何变换,包括:原图,裁剪、旋转、翻转等


基于上下文的



拼图


解决拼图问题是无监督学习中一个非常重要的部分。


在对比学习中,原图被当作anchor,打乱后的图片被当作正样本,其余图片被当作负样本。


2dbceab6fbf963dafb0b9dbf6c97b493.png


图六:解决一个拼图问题被当作学习表示的前置任务


基于帧的



这个策略一般应用于时许数据,例如传感器的数据或者一系列视频帧。


策略背后的意义是:时间上相近的相似,时间上很远的不相似。


解决这样的前置任务可以让模型学习到一些跟时间有关的表示。


在这里,一个视频中的帧被当作正样本,其余视频被当作负样本。


其余的方法还包括:随机抽样一个长视频中的两个片段,或者对每个视频片段做几何变换。


目标是使用对比损失(contrastive loss)来训练模型,使得来自一个视频的片段在嵌入空间中相近,来自不同视频的片段不相近。


Qian 等人 [20] 提出的一个模型中将两个正样本和其余所有的负样本之间进行对比。


一对正样本是两个增强的来自同一个视频的视频片段。


这样,所有的视频在嵌入空间中都是分割开来的,每个视频占据一个小的嵌入空间。


未来预测



f5ba5160afd91f3ce5abf1c1afefe1a9.png


图七:对比预测编码CPC:contrastive predictive coding。图中的例子是音频预测。类似的想法可以用在图片、视频、文本等领域上


对于时序数据做对比一个最直观的方法是预测将来或者预测缺失的信息。


这个前置任务是基于已有的一系列时间点数据,去预测将来的高阶的信息。


在 [21] [22] 等模型中,高阶数据被压缩在一个低维度的隐藏嵌入空间之中。强大的序列模型被当作encoder来生成一个基于上下文的

,然后用 来预测未来的信息。其中蕴含的意义是最大化两者之间的互信息(Mutual information maximization)。


相关文章
|
算法 定位技术
八爪鱼RPA在微信的十大高频场景,让你的工作事半功倍!
在微信中,rpa(机器人流程自动化)技术可以应用于各种情况,为用户提供更高效、便捷的工作体验。本文将介绍微信中的十大高频场景,并说明rpa可以如何应用于这些场景中,从而让工作事半功倍。
|
机器学习/深度学习
大模型开发:解释正则化及其在机器学习中的作用。
正则化是防止机器学习过拟合的技术,通过限制模型参数和控制复杂度避免过拟合。它包含L1和L2正则化,前者产生稀疏解,后者适度缩小参数。选择合适的正则化方法和强度对模型性能关键,常用交叉验证评估。
410 1
|
数据可视化 物联网 vr&ar
THREE.JS 实现看房自由(VR 看房)
目前随着元宇宙概念的爆火,THREE技术已经深入到了物联网、VR、游戏、数据可视化等多个平台,今天我们主要基于THREE实现一个三维的VR看房小项目
2357 4
|
8月前
|
JSON 监控 API
京东商品列表 API 接口系列(京东 API)
京东商品列表API接口为开发者提供获取店铺内商品详细信息的功能,包括名称、价格、库存、图片、ID、销量等。通过HTTP GET请求并包含必要参数(如店铺ID、API密钥),可获取JSON格式的商品列表数据,适用于展示、库存管理、价格监控等场景。示例代码展示了使用Python调用该接口的方法,返回的数据包含状态码、商品总数、分页信息及具体商品详情。
|
11月前
|
JSON 缓存 API
在 Python 中使用公共类处理接口请求的响应结果
在 Python 中使用公共类处理接口请求的响应结果
142 1
|
数据安全/隐私保护 Python Windows
三种方法,Python轻松提取PDF中全部图片
三种方法,Python轻松提取PDF中全部图片
426 3
|
12月前
|
存储 缓存 关系型数据库
MySQL 视图:数据库中的灵活利器
视图是数据库中的虚拟表,由一个或多个表的数据经筛选、聚合等操作生成。它不实际存储数据,而是动态从基础表中获取。视图可简化数据访问、增强安全性、提供数据独立性、实现可重用性并提高性能,是管理数据库数据的有效工具。
219 0
|
Rust Java C++
Rust生态系统与社区支持:跨语言比较的探究
【2月更文挑战第1天】本文旨在比较Rust语言与其他主流编程语言(如Python、Java、C++)在生态系统与社区支持方面的差异与优势。我们将从标准库、第三方库、工具链、社区活跃度和文档质量等多个维度进行深入分析,以揭示Rust在这些方面所展现出的独特之处和潜力。
|
数据采集 搜索推荐 关系型数据库
分享65个Python管理系统源代码总有一个是你想要的
分享65个Python管理系统源代码总有一个是你想要的
1358 0