自监督学习(SSL)是一种利用原始、未标记数据来训练算法模型的人工智能(AI)方法。使用各种方法和学习技术,自监督模型在预训练阶段创建标签和注释,旨在迭代实现准确的地面实况,以便模型可以投入生产。
如果您难以找到时间和资源来注释和标记机器学习项目的数据集,SSL 可能是一个不错的选择。这种方法不同于无监督学习,且不需要耗费大量时间进行数据标记。
在本文中,我们将解释自监督学习,包括:
让我们开始吧…
自监督学习(SSL)是机器学习(ML)中的一种训练方式,它鼓励模型使用未标记的数据进行学习。
它不是依赖于大量标记和注释数据的模型(在监督学习的情况下),而是根据非结构化输入为数据生成标签。
在计算机视觉 (CV) 中,您可以使用灰度图像或半张图像来训练 ML 模型,以便它能够准确预测另一半或哪些颜色的去向。
自监督学习在计算机视觉和自然语言处理 (NLP) 中特别有用,在这些应用中,训练模型所需的标记数据量可能非常大。使用自监督方法在较少的数据上训练模型更具成本效益和时间效率,因为您不需要注释和标记那么多数据。
如果模型获得足够的数据并通过迭代过程生成准确结果,它可以更快地达到生产就绪状态。
在我们深入研究自我监督学习之前,将其与两种主要的替代方案进行比较是很有用的:监督学习和无监督学习。
监督学习 需要在高质量标记和注释数据上训练人工智能 (AI)、机器学习 (ML)、计算机视觉 (CV) 或其他算法生成的模型。这些标记数据以监督方式输入模型,人类机器学习工程师通过迭代反馈循环对其进行训练。
无监督学习 涉及在未标记的数据上训练模型,其中模型尝试查找数据中的模式和关系,而无需以标签形式给出明确的反馈。
自监督学习 是一种基于 ML 的训练格式和一系列鼓励模型从未标记数据进行训练的方法。基础模型和视觉基础模型 (VFM) 通常以这种方式训练,不依赖于标记数据。
无监督学习主要专注于分组、聚类和降维。在许多方面,这使得SSL成为无监督学习的一个子集。但是,这两种格式的输出存在差异。
另一方面,自监督学习用于执行分割、分类和回归任务,这与监督学习类似。
还有其他方法,例如半监督学习,它介于监督学习和无监督学习之间。但是,我们将把半监督学习作为另一篇关于模型训练和学习方法的文章的主题。
现在让我们看看为什么计算机视觉需要自我监督学习、SSL 的好处、它是如何工作的以及用例。
计算机视觉模型需要自监督学习,因为它们通常需要大量标记数据才能有效训练。获取、注释和标记这些数据可能既困难又昂贵。
特别是在高度专业化的领域,例如医疗保健,需要医疗专业人员来准确地注释和标记数据。
自监督学习可以提供标记大量数据的替代方案 - 这是一项昂贵且耗时的任务,即使您使用的是自动数据标记系统也是如此。相反,这允许模型从数据本身中学习并提高其准确性,而无需大量的标签和注释。
当每类标记数据具有相同数量的样本时,计算机视觉和其他算法生成的模型也表现更好。否则,偏差会潜入模型的性能。
不幸的是,如果一类图像或视频很难获得(除非您在合成数据创建或数据增强方面进行投资),则很难获得足够的数据来提高性能。
自监督学习减少或消除了为计算机视觉模型标记和注释数据的需要。同时减少了在计算机视觉情况下对增强和合成图像或视频创建的需求。
自监督学习对计算机视觉和其他基于 ML 和 AI 的项目、用例和模型有很多好处。
更具可扩展性: 对于较大的数据集,自监督学习更具可扩展性和管理性,因为这种方法不需要高质量的标记数据。即使图像或视频中的对象类别不像其他对象那样频繁,也不会影响结果,因为 SSL 可以处理大量非结构化数据。
改进模型结果: 自监督学习可以更好地表示数据的特征,从而提高计算机视觉模型的性能。不仅如此,SSL 方法还增强了模型的学习能力,而无需标记数据创建的结构。
增强的 AI 功能: 引入自监督学习来训练自然语言处理 (NLP) 模型。现在,它被用于基础模型,例如生成对抗网络 (GAN)、变分自编码器 (VAE)、基于转换器的大型语言模型 (LLM)、神经网络、多模态模型等。
在计算机视觉中,使用自监督学习方法可以更有效地执行图像分类、视频帧预测和其他任务。
同时,我们需要承认自监督学习存在一些局限性,例如:
需要大量的计算能力: 自监督学习需要强大的计算能力才能在大型数据集上训练模型。计算能力通常与神经网络或小型基础模型的规模相同。特别是因为模型在没有人工输入的情况下获取原始数据并对其进行标记。
准确性低: 人们很自然地期望自我监督学习不会像监督或其他方法那样产生准确的结果。如果没有以标签、注释和地面实况训练数据的形式为模型提供人工输入,初始准确率得分将很低。但是,有一些方法可以解决这个问题,我们将在下面探讨。
从基本层面上说,自监督学习是一种训练基于AI的模型的算法范式。当模型获得大量原始、几乎完全或完全未标记的数据,然后自行生成标签时,它就会起作用。
然而,这种说法有所简化,因为在这种训练方式下,可以应用多种SSL框架。让我们来看看其中最流行的七个,包括对比式和非对比式学习。
对比学习 SSL 涉及训练模型以区分两个对比数据点或输入。这些对比点称为“锚点”,以正负格式提供。
正样本是与锚点属于同一分布的数据输入。相反,负样本与锚点的分布不同。
正样本是与锚点属于同一分布的数据输入。而负样本与锚点的分布不同。
另一方面,非对比自监督学习 (NC-SSL) 涉及仅使用非对比对(也称为正样本对)训练模型。而不是像对比学习那样的正面和负面样本。
对比预测编码 (CPC) 最初是由 Google Deep Mind 的三位 AI 工程师向世界推出的,这是他们在 2019 年发布的论文。
CPC 是自然语言处理、计算机视觉和深度学习中一种流行的自监督学习方法。
CPC 也可用于计算机视觉,使用它来将预测编码与概率对比损失相结合。目的是训练一个模型来理解数据不同部分之间的表示。同时,CPC 可以更轻松地丢弃数据集中的低级噪声。
实例判别方法将对比学习(例如 CPC、Contrastive 和 NC-SSL)应用于整个数据实例,例如数据集中的图像或一系列图像。
图像应随机选择。使用这种方法,一个图像以某种方式翻转(旋转、制作灰度等),作为正锚对,而一个完全不同的图像是负样本。目的是确保模型仍然理解,即使图像被翻转,它看到的是同一件事。
使用实例区分 SSL,应训练模型将马的灰度图像解释为正锚对的一部分,与牛的黑白图像不同。
对于基于能量的模型 (EBM),这是一个使用数学模型计算两个输入之间的兼容性的问题。低能量输出表示高兼容性。虽然高能量输出表明,兼容性水平较低。
在计算机视觉中,使用 EBM SSL,向模型显示两张汽车图像应该会产生低能量输出。相比之下,将汽车与飞机进行比较应该会产生高能量输出。
对比集群分配是实现自我监督学习的另一种方式。2020 年的一篇论文中发表了一种更具创新性的方法,介绍了一种称为 SwAV(在多个视图之间交换分配)的 ML 概念。
传统的对比集群作业涉及离线学习。模型需要在聚类分配和训练步骤之间交替,以便 ML 或 CV 模型学习理解不同的图像视图。
而使用 SwAV SSL 学习方法可以在线完成,从而更容易扩展到大量数据,同时受益于对比方法。
自监督模型的另一种学习技术是联合嵌入架构。
联合嵌入架构涉及一个结构相同的双分支网络,其中为每个分支提供两个输入以计算单独的嵌入向量。
当两个源输入之间的“距离”很小时(例如,一个模型显示两个非常相似但略有不同的鸟在飞行中的图像)。然后可以调整潜在空间中的神经网络参数,以确保输入之间的空间缩小
现在,让我们快速浏览一下自监督学习在计算机视觉中的许多实际应用中的四个。
在现实世界的用例中,自我监督学习的众多应用之一是在医疗保健领域。医学成像和注释是一个专业领域。准确性至关重要,尤其是当计算机视觉模型用于检测危及生命或限制生命的疾病时。
在计算机视觉中,DICOM、NIfTI 文件、X 射线、MRI 和 CT 扫描是用于训练算法模型的原材料。
在医疗领域,很难大规模获得准确标记的专有数据,部分原因是数据隐私和医疗保健法律(例如 HIPPA),还因为通常需要多名医生来注释这些数据。专业的医疗时间既宝贵又昂贵。很少有人有空闲时间对数据集中的大量图像或视频进行注释。
同时,计算机视觉在医疗保健领域非常有用,具有许多实际应用和用例。
应对上述挑战的一种解决方案是将自监督学习方法应用于医学成像数据集。举个例子:用于癌症检测的自监督学习。
Encord 与医疗专业人员和医疗保健数据科学家密切合作开发了我们的医学成像注释套件,为您提供强大的自动化图像注释套件,内置精确的 3D 注释、完全可审计的图像和无与伦比的效率。
自监督计算机视觉学习的另一个实际应用是训练工厂中的机器人机器正确定位 3D 对象。自主和半自主机器人必须知道如何做到这一点,训练它们的一种方法是使用自监督计算机视觉模型使用图像和视频。
视频是序列中语义链接的帧序列。使用自监督学习模型更容易实现更高的准确性,因为对象通常从一个帧继续到下一个帧,至少在一系列帧上。
在预训练阶段可以应用各种参数,如特定物体运动的流畅性和重力的应用、距离、速度和时间。
机器人不可能把可能遇到的所有情况都上传到硬件和软件中。要考虑的因素实在太多了。
一定程度的自主性是必不可少的,尤其是当机器人的运行地点距离控制中心太远时,例如美国宇航局休斯顿航天中心与火星车之间的通信。
即使在陆地环境中,机器人如果不具备实时、有时是即时决策的能力,充其量也是无效的,更糟糕的是会带来危险。因此,应用自我监督学习技术来确保机器人能够自主决策就显得尤为重要。
自监督学习是在大量原始、未标记数据上训练 CV、AI、ML 或其他算法模型的有用方法。这为工程师、数据科学家和数据运营团队节省了大量的时间、金钱和资源。
另一方面,准备在预训练阶段使用我们在本文中概述的几种方法之一(例如,对比、非对比、CPC、EBL 等),以便基于 SSL 的模型可以产生更准确的结果。
否则,如果没有有助于训练模型的数据标记和注释的支持,您可能会面临准确性降低和训练过程花费更多时间的风险。