作者 | 对白
出品 | 对白的算法屋
自监督学习(Self-supervised learning)最近获得了很多关注,因为其可以避免对数据集进行大量的标签标注。它可以把自己定义的伪标签当作训练的信号,然后把学习到的表示(representation)用作下游任务里。最近,对比学习被当作自监督学习中一个非常重要的一部分,被广泛运用在计算机视觉、自然语言处理等领域。它的目标是:将一个样本的不同的、增强过的新样本们在嵌入空间中尽可能地近,然后让不同的样本之间尽可能地远。这篇论文提供了一个非常详尽的对比自监督学习综述。
我们解释了在对比学习中常用的前置任务(pretext task),以及各种新的对比学习架构。然后我们对不同的方法做了效果对比,包括各种下游任务例如图片分类、目标检测、行为识别等。最后,我们对当前模型的局限性、它们所需要的更多的技术、以及它们未来的发展方向做了总结。
1. 介绍
深度学习从大量数据中自动学习的能力使其在各种领域广泛应用,例如CV和NLP。但是深度学习也有其瓶颈,就是它需要大量的人工标注的标签。例如在计算机视觉中,监督模型需要在图片的表示和图片的标签之间建立关联。
传统的监督学习模型极度依赖于大量的有标签数据。所以研究者们想研究出一种办法,如何利用大量的无标签数据。所以自监督学习的到了广泛关注,因为它可以从数据自己本身中寻找标签来监督模型的训练。
图一:对比学习的直观理解:让原图片和增强的图片变近,让原图片和其他图片变远
监督学习不仅需要大量的标注数据,它还面临着下面的各种问题:
- 模型的泛化性能
- 伪相关
- 对抗攻击
最近,自监督学习结合了生成模型和对比模型的特点:从大量无标签数据中学习表示。
一种流行的方式是设计各种前置任务(pretext task)来让模型从伪标签中来学习特征。例如图像修复、图像着色、拼图、超分辨率、视频帧预测、视听对应等。这些前置任务被证明可以学习到很好的表示。
图二:对比自监督学习训练范式
在2014年生成对抗网络(GAN)推出之后,生成模型得到了很多关注。它之后变成了许多强大的模型的基础,例如 CycleGAN, StyleGAN, PixelRNN, Text2Image, DiscoGAN 等。
这些模型启发研究者去研究自监督学习(不需要标签)。
他们发现基于GAN的模型很复杂,不容易训练,主要是由于下面原因:
- 难以收敛
- 判别器太强大而导致生成器难以生成好的结果
- 判别器和生成器需要同步
图三:不同的对比学习方法在ImageNet上的效果(TOP1 分类准确率)
与生成模型不同,对比学习是一种判别模型,它让相似样本变近,不同样本变远(见图一)。
为了达到这一点,一种衡量远近的指标被用来衡量嵌入之间的远近。
如图二所示,对比损失用来训练对比学习模型。一般来说,以图片为例,对比学习把一张图片的增强版本当作一个正例,其余图片当作反例,然后训练一个模型来区分正反例。区分依赖于某种前置任务。
这样做,学习到的表示就可以用到下游任务之中。
2.前置任务
前置任务是自监督学习中非常重要的一种策略。它可以用伪标签从数据中学习表示。
伪标签是从数据本身中定义而来的。
这些任务可以应用到各种数据之中,例如图片、视频、语言、信号等。
在对比学习的前置任务之中,原始图片被当作一种anchor,其增强的图片被当作正样本(positive sample),然后其余的图片被当作负样本。
大多数的前置任务可以被分为四类:
- 颜色变换
- 几何变换
- 基于上下文的任务
- 基于交叉模式的任务
具体使用哪种任务取决于具体的问题。
颜色变换
图四:颜色变换前置任务,包括:原图,高四噪声,高斯模糊,颜色失真(jitter)
颜色变换很好理解,不多说了。在这个前置任务中,图片经过变换,它们还是相似的图片,模型需要学会辨别这些经过颜色变换的图片。
几何变换
几何变换也很好理解,不多说了。
原图被当作全局视图(global view),转换过的图片被当作局部试图(local view):
图五:几何变换,包括:原图,裁剪、旋转、翻转等
基于上下文的
拼图
解决拼图问题是无监督学习中一个非常重要的部分。
在对比学习中,原图被当作anchor,打乱后的图片被当作正样本,其余图片被当作负样本。
图六:解决一个拼图问题被当作学习表示的前置任务
基于帧的
这个策略一般应用于时许数据,例如传感器的数据或者一系列视频帧。
策略背后的意义是:时间上相近的相似,时间上很远的不相似。
解决这样的前置任务可以让模型学习到一些跟时间有关的表示。
在这里,一个视频中的帧被当作正样本,其余视频被当作负样本。
其余的方法还包括:随机抽样一个长视频中的两个片段,或者对每个视频片段做几何变换。
目标是使用对比损失(contrastive loss)来训练模型,使得来自一个视频的片段在嵌入空间中相近,来自不同视频的片段不相近。
Qian 等人 [20] 提出的一个模型中将两个正样本和其余所有的负样本之间进行对比。
一对正样本是两个增强的来自同一个视频的视频片段。
这样,所有的视频在嵌入空间中都是分割开来的,每个视频占据一个小的嵌入空间。
未来预测
图七:对比预测编码CPC:contrastive predictive coding。图中的例子是音频预测。类似的想法可以用在图片、视频、文本等领域上
对于时序数据做对比一个最直观的方法是预测将来或者预测缺失的信息。
这个前置任务是基于已有的一系列时间点数据,去预测将来的高阶的信息。
在 [21] [22] 等模型中,高阶数据被压缩在一个低维度的隐藏嵌入空间之中。强大的序列模型被当作encoder来生成一个基于上下文的
,然后用 来预测未来的信息。其中蕴含的意义是最大化两者之间的互信息(Mutual information maximization)。