目录
什么是自监督学习,它是如何工作的以及它在 Vision Ai 中的应用是什么?了解正在进行的研究并获得训练自我监督模型的实践经验。
在过去十年中,人工智能领域在机器学习系统方面取得了重大发展,可以使用监督学习的范式解决广泛的计算机视觉问题。
然而,监督学习需要大量仔细标记的数据,并且数据标记过程往往漫长、昂贵且容易出错。
此外,使用监督学习训练的模型可以很好地泛化它所训练的数据,但无法获得泛化未标记数据的新分布的“技能”,因此被证明是深度学习进一步发展的瓶颈。
无监督学习是另一种机器学习范式,它试图通过各种技术来理解未标记的数据。
自监督学习 (SSL) 就是这样一种方法,可以从未标记的数据中学习复杂的模式。SSL 允许 AI 系统在部署时更有效地工作,因为它具有自我训练的能力,因此需要更少的训练时间。
在接下来的几分钟内,您将了解有关自我监督学习的所有信息,以及这种方法如何改变我们构建和思考 AI 的方式。我们还将重点介绍 SSL 已经在转变的一些最令人兴奋的方向和领域。
自监督学习 (SSL) 是一种机器学习范式,其中模型在输入非结构化数据作为输入时,会自动生成数据标签,这些标签在后续迭代中进一步用作基本事实。
自监督学习的基本思想是通过在第一次迭代中以无监督方式提供给它的未标记数据来生成监督信号。
然后,模型使用生成的数据标签中的高置信度数据标签在下一次迭代中训练模型,就像通过反向传播的任何其他监督学习模型一样。唯一的区别是,在每次迭代中用作基本事实的数据标签都会发生变化。
它最广泛地用于解决计算机视觉问题,例如图像分类、对象检测、 语义分割或实例分割。
监督学习需要使用具有与之关联的高质量手动标签的数据来训练模型,以相应地调整模型权重。
自监督学习还需要使用数据及其标签来训练模型,但这里的标签是由模型本身生成的,一开始并不可用。
无监督学习适用于没有可用标签的数据集,并且这种学习范式试图在其训练的任何阶段不使用标签的情况下理解所提供的数据。
因此,从这个讨论中,我们可以推断 SSL 是无监督学习的一个子集,因为两者都只提供非结构化数据。然而,无监督学习致力于聚类、分组和降维,而 SSL 像任何监督模型一样执行分类、分割和回归等决定性任务。
尽管监督学习在广泛的应用领域取得了广泛的成功,但也存在一些与之相关的问题。
监督学习严重依赖大量高质量的标记数据,获取这些数据非常昂贵且耗时。这在医学成像等领域是一个巨大的限制,只有专业的医学专业人员才能手动注释数据。
此外,当每个类别的数据具有或多或少相等数量的样本时,监督学习模型的工作最佳。类不平衡会对模型性能产生不利影响。然而,为稀有类别获取足够的数据是困难的——例如,新发现的野生鸟类的数据。
SSL 消除了对数据标记的需要。
SSL 的概念在自然语言处理 (NLP) 的背景下得到普及,当时它被应用于BERT等转换器模型,用于文本预测、文本主题确定等任务。
以下是自我监督学习的一些好处。
可扩展性
如上所述,监督学习的成功很大程度上取决于高质量数据标签的数量。此外,在测试时无法容纳监督模型训练之外的新类。另一方面,SSL 适用于非结构化数据,并且可以对大量数据进行训练。
了解人类思维的运作方式
监督学习需要人工标注的标签来训练模型。在这里,计算机试图通过他们已经标记的例子来了解人类是如何思考的。但是,正如我们所讨论的那样,标记如此大量的数据并不总是可行的。
强化学习是另一种方法,模型可以根据模型预测调整权重而得到奖励或惩罚。然而,这对于许多实际情况也是不可行的。
SSL 通过在 AI 循环中无需任何人的情况下自动生成标签来探索机器独立思考的能力——就像人类一样。模型本身需要决定生成的标签是否可靠,并在下一次迭代中相应地使用它们来调整其权重。
新的人工智能能力
SSL 最初是在 NLP 的上下文中使用的。
从那时起,它已扩展到解决各种计算机视觉任务,如图像分类、视频帧预测等。SSL 领域正在进行积极的研究,以进一步增强其能力,使其与监督学习模型一样准确。
以下是自监督学习的一些限制。
需要大量的计算能力
在 SSL 中,模型需要理解提供的未标记数据,并生成相应的标签,这比为监督学习任务训练的模型负担更大。当提供具有基本事实的示例时,可以更快地训练模型。
例如,在对比学习类型 SSL(我们将很快解释)中,对于每个 anchor-positive 对(例如同一图像的两个裁剪片段),几个 anchor-negative 对(测试图像的裁剪片段,以及几个不同的裁剪图像)需要在每次迭代中进行采样,从而使训练过程慢得多。
精度低
SSL 模型为数据集生成自己的标签,我们没有任何外部支持可以帮助模型确定其计算是否正确。因此,不能期望 SSL 模型与传统的监督学习模型一样准确。
在 SSL 中,如果模型以非常高的置信度分数预测了错误的类,则模型将继续相信该预测是正确的,并且不会针对该预测调整权重。
在本节中,我们将探讨常用的 SSL 框架的各种类型。
基于能量的模型尝试使用数学函数计算两个给定输入之间的兼容性。当给定两个输入时,如果 EBM 产生低能量输出,则意味着输入具有高兼容性。高能量输出表明高度不相容性。
例如,同一幅图像的两个增强版本,比如一条狗,当作为 EBM 的输入时,应该产生低能量输出,而作为输入的狗的图像和猫的图像应该产生高能量输出。
联合嵌入架构是一个双分支网络,其中每个分支的构造都是相同的。为每个分支提供两个输入以计算它们单独的嵌入向量。网络头部有一个模块,它将两个嵌入向量作为输入,并计算它们在潜在空间中的距离。

联合嵌入架构
因此,当两个输入彼此相似时(狗图像的两个增强版本),计算的距离应该很小。网络参数可以很容易地调整,以确保潜在空间中的输入彼此接近。
在对比学习型 SSL 中,我们通过将输入(如文本、图像、视频片段)(称为“锚”)与正面和负面示例进行对比来训练模型。正样本是指与anchor属于同一分布的样本,而负样本与anchor的分布不同。
让我们借助一个例子来理解这一点。

假设我们有一个深度模型“”,我们想要训练它来对图像进行分类。当给模型一个输入“x”时,得到的输出表示为:(x)。此外,假设我们有作为狗图像一部分的锚点 xa 及其对应的输出 (xa)。
现在,对应于 xa 的正样本是狗的同一图像的裁剪部分,用 x+ 表示,而负样本是另一个图像(假设是一只猫)的裁剪部分,用 x- 表示。在对比学习中,目标是最小化特征空间中xa和x+之间的距离,同时最大化xa和x-之间的距离。
对比预测编码 (CPC)
本文首次提出了对比预测编码的思想。
这里的直觉是学习对数据不同部分之间的底层共享信息进行编码的表示,同时丢弃更局部的低级信息和噪声。

对比预测编码概述
例如,给定图像的上半部分,模型应该预测图像的下半部分。在上图中,“x”是一个时间序列信号,其数据在时间“t”之前可用,模型需要预测信号直到时间“t+4”。这里,“genc”是一个嵌入网络,它从信号“xt”中提取特征“zt”,“gar”是一个自回归模型,它总结了嵌入空间中的所有 z≤t 以产生上下文潜在表示 ct=gar(z ≤t)。这种复杂的表示用于对密度比进行建模,该密度比保留了预测信号和聚合上下文 ct 之间的互信息。
这个想法也可以扩展到图像、视频和文本数据。因此,在 CPC 中,我们将未来观察的预测(预测编码)与概率对比损失(如下所示的表达式)相结合,从而为该方法命名。

概率对比损失
实例判别方法
这类方法将对比学习的一般思想应用于整个数据实例(如整个图像)。
例如,同一狗图像的两个旋转或翻转版本可以用作锚正对,而猫图像的旋转/翻转版本可以用作负样本。现在,与基本原理类似,anchor-positive 对之间的距离要最小化,而 anchor-negative 对之间的距离需要最大化。
该技术背后的主要思想是,经过一些基本数据转换的输入应该仍然属于同一类别,即深度学习模型应该对转换保持不变。狗的图像,当垂直翻转并转换为灰度时,仍然表示“狗”类。
在这类方法中,拍摄随机图像并对其应用随机数据转换(如翻转、裁剪、添加噪声等)以创建正样本。现在,将数据集中的其他几张图像作为负样本,并设计了类似于 CPC 的损失函数,以最大化锚负样本对之间的距离。
此类别下两种常用的方法是SimCLR和MoCo,它们的负样本处理过程不同。
对比集群分配
2020年,一篇论文提出了SwAV(Sw APPing A assignments between multiple Views)模型,这是一种比较聚类分配以对比不同图像视图而不依赖显式成对特征比较的方法。

这种方法的目标是在没有监督的情况下以在线方式学习视觉特征。为此,作者提出了一种基于在线聚类的自我监督方法。典型的基于聚类的方法是离线的,因为它们在整个数据集的图像特征被聚类的聚类分配步骤和为不同图像视图预测聚类分配(即“代码”)的训练步骤之间交替。
不幸的是,这些方法不适合在线学习,因为它们需要多次遍历数据集来计算聚类所需的图像特征。在 SwAV 中,作者强制执行来自同一图像的不同增强的代码之间的一致性。
该解决方案受到对比实例学习的启发,因为代码不被视为目标,而仅用于在同一图像的视图之间强制执行一致的映射。SwAV 可以解释为通过比较它们的集群分配而不是它们的特征来在多个图像视图之间进行对比的一种方式。因此,这种方法可以扩展到潜在的无限数据量。
非对比自我监督学习 (NC-SSL) 是一种学习范式,其中仅使用正样本对来训练模型,这与同时使用正样本和负样本对的对比学习不同。这似乎违反直觉,因为似乎只试图最小化正对之间的距离可能会崩溃成一个恒定的解决方案。
然而,NC-SSL 已经证明能够使用额外的预测器和停止梯度操作来学习仅使用正对的非平凡表示。此外,学习到的表示在下游任务中表现出相当(甚至更好)的性能。
这带来了两个基本问题:(1)为什么学习的表示不会崩溃为琐碎(即常数)的解决方案,以及(2)没有负对,NC-SSL 从训练中学到什么表示以及学习的表示如何减少下游任务中的样本复杂性。
为了回答第一个问题,在 NC-SSL 中,提出了不同的技术来避免崩溃。BYOL和SimSiam使用额外的预测器和停止梯度操作。除此之外,BatchNorm(包括其变体)、去相关、白化、居中和在线聚类都是在样本之间强制执行隐式对比约束以防止崩溃的有效方法。
王等人。在本文中寻找第二个问题的答案,他们证明了可以在线性网络设置中学习理想的投影矩阵并降低下游任务的样本复杂度。此外,他们的分析强调了权重衰减在 NC-SSL 中的关键作用,它丢弃了在增强下具有高方差的特征并保持不变的特征。
正如我们上面提到的,SSL 被广泛用于语音识别。但是,让我们也看看一些最有前途的计算机视觉 SSL 应用程序。
如前所述,获取生物医学领域的标记数据极其困难,既出于隐私原因,也出于需要多名专家医生手动注释数据的需要。这需要能够准确处理少量生物医学数据的无监督方法。
在本文中,对比自我监督学习已用于无监督组织病理学图像分类,以检测癌症。在这里,作者使用了 SSL 的实例识别方法,他们使用样本图像的增强副本来创建正对。

SSL 在医疗保健中的其他应用可能是医学图像的分割,例如,从 X 射线图像中分割器官(如上图所示)。这些信息有助于医生诊断多种疾病。
定向 3D 对象是许多包装和组装任务自动化的关键组成部分。因此,SSL 也被用于该领域,例如在本文中,他们使用深度信息使用机器人正确定位新的 3D 对象。

签名的验证可以作为一个自我监督的学习问题提出,其中可以提供新的数据来检测伪造。

V7 配备了文本扫描器模型,您可以使用它来解决最复杂的OCR 任务。
灰度图像或视频的自动着色是一项有用的自我监督学习任务。在这里,任务归结为将给定的灰度图像/视频映射到量化颜色值输出的分布。

这里使用的概念还可以扩展到图像修复、上下文填充,即文本预测或预测语音记录中的间隙。
预测视频序列数据中的未来帧是一种非常有用的 SSL 应用范例。由于视频是按顺序排列的语义相关帧的集合,因此可以在此类任务中获得高精度。有些逻辑总是按照帧的顺序来进行的,例如物体的运动总是平稳的,重力总是向下作用的。
机器人领域有有趣的 SSL 应用。机器人不能被训练来处理现实世界中的每一种情况,它需要自主地做出一些决定。
例如,火星探测器任务在很大程度上依赖于无人监督的导航机制,因为地球和火星之间的时间差使得手动操作它们是不可行的。
监督学习在解决计算机视觉挑战方面取得了广泛的成功。然而,它对大量高质量标记数据的依赖使得训练这样的模型变得困难重重。
自监督学习现在是一个更可行的选择,因为我们可以使用我们的先进技术获取大量非结构化数据,但以人为中心的标记操作既昂贵又耗时。
SSL 对作为输入给出的非结构化数据进行注释,并使用这些自生成的数据标签作为未来迭代训练模型的基本事实。这种源自 NLP 应用程序的学习范式在计算机视觉任务(如图像分类和分割、对象识别等)中显示出前景。
现在存在几种类型的 SSL(两种最常用的方法是对比学习范式和非对比学习范式),根据它们的工作原理,每种都有自己的优点和缺点。仍在对 SSL 方法进行积极研究,以提高其性能并降低其计算要求。
在过去十年中,人工智能领域在机器学习系统方面取得了重大发展,可以使用监督学习的范式解决广泛的计算机视觉问题。