AI 模型与平台

SEER:一种自监督计算机视觉模型的突破?

mm
将 Unite.AI 添加到您在 Google 上的首选来源
SEER Framework for Self Supervised Learning

在过去的十年中,人工智能(AI)和机器学习(ML)取得了巨大的进步。如今,它们比以往任何时候都更准确、更高效、更强大。现代AI和ML模型可以无缝地、准确地识别图像或视频文件中的物体。此外,它们可以生成与人类智能相媲美的文本和语音。

今天的AI和ML模型严重依赖于训练有标签的数据集,这些数据集教会它们如何解释文本块、在图像或视频帧中识别物体以及执行其他任务。

尽管它们具有这些能力,AI和ML模型并非完美,科学家们正在努力构建能够从给定的信息中学习的模型,而不一定依赖于标记或注释数据。这被称为自监督学习,它是构建具有“常识”或背景知识以解决超出当前AI模型能力的问题的最有效方法之一。

自监督学习已经在自然语言处理中展示了其成果,因为它使开发人员能够训练大型模型,可以处理大量数据,并在自然语言推理、机器翻译和问答等领域取得了多项突破。

Facebook (META ) AI的SEER模型旨在最大化计算机视觉中自监督学习的能力。SEER或自监督是具有超过10亿参数的自监督计算机视觉学习模型,它可以从互联网上找到的随机图像组中找到模式或进行学习,即使没有适当的注释或标签。

计算机视觉中自监督学习的需求

数据注释或数据标记是机器学习和人工智能模型开发中的预处理阶段。数据注释过程识别原始数据,如图像或视频帧,然后在数据上添加标签以指定模型的上下文。这些标签使模型能够对数据进行准确的预测。

开发计算机视觉模型的开发人员面临的最大挑战之一是找到高质量的注释数据。今天的计算机视觉模型依赖于这些标记的数据集来学习识别图像中物体的模式。

数据注释及其在计算机视觉模型中的使用带来了以下挑战:

管理一致的数据集质量

开发人员面临的最大挑战可能是持续获得高质量的数据集,因为高质量的数据集带有适当的标签和清晰的图像会导致更好的学习和更准确的模型。然而,持续获得高质量的数据集具有其自身的挑战。

工作人员管理

数据标记通常伴随着工作人员管理问题,主要是因为处理和标记大量非结构化和未标记数据的工人数量巨大,同时还要确保质量。因此,对于开发人员来说,平衡数据标记的质量和数量至关重要。

财务约束

可能最大的障碍是数据标记过程中伴随的财务约束,大多数时候,数据标记成本是整个项目成本的重要组成部分。

如您所见,数据注释是开发高级计算机视觉模型的主要障碍,尤其是在开发处理大量训练数据的复杂模型时。它就是为什么计算机视觉行业需要自监督学习来开发能够处理超出当前模型能力的任务的复杂和高级计算机视觉模型的原因。

话虽如此,已经有很多自监督学习模型在受控环境中表现良好,主要是在ImageNet数据集上进行训练。虽然这些模型可能表现良好,但它们并没有满足计算机视觉中自监督学习的主要条件:从任何无界数据集或随机图像中学习,而不仅仅是从一个精心设计的数据集中学习。当自监督学习理想地实施时,它可以帮助开发更准确、更强大的计算机视觉模型,这些模型在成本和可行性方面都是有效的。

SEER或自监督模型:介绍

人工智能和机器学习行业的最近趋势表明,模型预训练方法,如半监督、弱监督和自监督学习,可以显著提高大多数深度学习模型在下游任务中的性能。

有两个关键因素极大地促进了这些深度学习模型的性能提升。

在大型数据集上预训练

在大型数据集上预训练通常会带来更好的准确率和性能,因为它将模型暴露在广泛的数据中。大量的数据集使模型能够更好地理解数据中的模式,最终导致模型在现实场景中表现更好。

一些表现最好的模型,如GPT-3模型和Wav2vec 2.0模型,是在大型数据集上训练的。GPT-3语言模型使用一个预训练数据集,包含超过300亿字,而Wav2vec 2.0模型用于语音识别,使用一个包含超过53,000小时音频数据的数据集。

具有大量容量的模型

参数更多的模型通常会产生更准确的结果,因为更多的参数使模型能够专注于数据中必要的对象,而不是数据中的干扰或噪音。

过去,开发人员曾尝试使用较小的数据集(仅包含几百万张图像)训练自监督学习模型。但是,自监督学习模型在训练大量未标记和未经策划的数据时会产生高准确率吗?这是SEER模型旨在回答的问题。

SEER模型是一个深度学习框架,旨在在没有策划或标记数据集的情况下注册互联网上的图像。SEER框架允许开发人员在没有监督的情况下训练大型和复杂的机器学习模型,即模型分析数据并在没有任何手动输入的情况下自行学习模式或信息。

SEER模型的最终目标是帮助开发使用未策划数据的预训练策略,以实现转移学习中的最先进的性能。此外,SEER模型还旨在创建可以从不断流动的数据中持续自监督学习的系统。

SEER框架在互联网上提取的数十亿张随机和不受约束的图像上训练高容量模型。这些图像上的模型不依赖于图像元数据或注释来训练模型或筛选数据。近期,自监督学习已经显示出巨大的潜力,因为在未策划的数据上训练模型往往比在下游任务中使用预训练的有监督模型产生更好的结果。

SEER框架和RegNet:有什么联系?

为了分析SEER模型,它专注于RegNet架构,该架构具有超过7亿个参数,与SEER的自监督学习在未策划的数据上的目标相符,主要有两个原因:

  1. 它们在性能和效率之间提供了完美的平衡。
  2. 它们具有高度的灵活性,可以扩展以适应参数数量。

SEER框架:来自不同领域的先前工作

SEER框架旨在探索在未策划或未标记的数据集上使用自监督学习训练大型模型架构的极限,并且该模型从该领域的先前工作中汲取灵感。

视觉特征的无监督预训练

自监督学习已经在计算机视觉中实施了一段时间,使用自编码器、实例级别区分或聚类等方法。最近,使用对比学习的方法表明,使用无监督学习方法对模型进行预训练可以比有监督的学习方法更好地执行下游任务。

视觉特征的无监督学习的主要收获是,只要您在过滤的数据上进行训练,就不需要有监督的标签。SEER模型旨在探索当大型模型架构在大量未策划、未标记和随机图像上进行训练时,模型是否可以学习准确的表示。

大规模学习视觉特征

先前的模型从在大型标记数据集上使用弱监督学习、有监督学习和半监督学习进行预训练中受益。另外,模型分析还表明,在数十亿图像上进行预训练通常比从头开始训练模型产生更好的准确率。

此外,在大规模上训练模型通常依赖于数据过滤步骤,以使图像与目标概念产生共鸣。这些过滤步骤要么使用预训练分类器的预测,要么使用通常是ImageNet类的哈希标签。SEER模型的工作方式不同,因为它旨在从任何随机图像中学习特征,因此SEER模型的训练数据不策划以匹配预定义的特征或概念集。

图像识别的架构扩展

模型通常从在更好的质量和更好的视觉特征上训练大型架构中受益。预训练在大型数据集上尤为重要,因为具有有限容量的模型往往会欠拟合。当预训练与对比学习一起进行时,这尤为重要,因为在这种情况下,模型必须学习如何区分数据集实例以学习更好的视觉表示。

但是,为了图像识别,扩展架构涉及的不仅仅是更改模型的深度和宽度,要构建一个具有更大容量的规模高效模型,需要大量的文献。SEER模型展示了使用RegNets家族的模型在大规模上部署自监督学习的好处。

SEER:方法和组件

SEER框架使用各种方法和组件来预训练模型以学习视觉表示。SEER框架中使用的主要方法和组件是:RegNet和SwAV。让我们简要讨论SEER框架中使用的方法和组件。

使用SwAV的自监督预训练

SEER框架使用SwAV进行预训练,SwAV是一种在线自监督学习方法。SwAV是一种在线聚类方法,用于在没有注释的情况下训练convnets框架。SwAV框架通过训练一个可以在不同视图之间一致地产生集群分配的嵌入来工作。然后,系统通过挖掘对数据增强不变的集群来学习语义表示。

在实践中,SwAV框架通过使用它们的独立集群分配来比较图像的不同视图的特征。如果这些分配捕获相同或类似的特征,则可以使用一个视图的特征来预测另一个视图的分配。

SEER模型考虑一组K集群,每个集群都与一个可学习的d维向量vk相关联。对于一批B图像,每个图像i被转换为两个不同的视图:xi1xi2。视图被特征化使用convnet,并且会产生两个特征集:fi1,…,fB2,和(fi2,…,fB2)。每个特征集都被独立分配到集群原型中,使用最优运输求解器。最优运输求解器确保特征均匀地分布在集群中,并且有助于避免所有表示都映射到单个原型的琐碎解决方案。然后将分配交换到两个集之间:视图xi1的集群分配yi1需要使用视图xi2的特征表示fi2来预测,反之亦然。

然后,原型权重和convnet被训练以最小化所有示例的损失。集群预测损失l本质上是特征f的softmax与集群分配之间的交叉熵。

RegNetY:规模高效模型家族

扩展模型容量和数据需要在运行时、内存和准确率方面都具有高效的架构,而RegNets框架是一种专门为此目的而设计的模型家族。

RegNet家族的架构由具有4个阶段的convnets设计空间组成,每个阶段包含一系列相同的块,同时保持块的结构固定,主要是残差瓶颈块。

SEER框架专注于RegNetY架构,并通过尝试在标准RegNets架构中添加挤压和激励来提高其性能。此外,RegNetY模型具有5个参数,有助于搜索具有固定FLOPs数量的良好实例,同时消耗合理的资源。SEER模型旨在通过直接在其自监督预训练任务中实现RegNetY架构来改进其结果。

RegNetY 256GF架构:SEER模型主要专注于RegNetY家族中的RegNetY 256GF架构,其参数使用RegNets架构的缩放规则。参数如下所述。

RegNetY 256GF架构具有4个阶段,阶段宽度(528、1056、2904、7392),阶段深度(2、7、17、1),总参数超过696百万。当在512个NVIDIA V100 32GB GPU上训练时,每次迭代需要大约6125毫秒,批次大小为8704张图像。在超过10亿张图像的数据集上训练模型,批次大小为8704张图像,使用超过512个GPU,需要114890次迭代,训练时间约为8天。

大规模优化和训练

SEER模型提出几种调整,以便在大规模上训练自监督方法,并使这些方法适应大规模。这些方法是:

  1. 学习率调度。
  2. 减少每个GPU的内存消耗。
  3. 优化训练速度。
  4. 大规模预训练数据。

让我们简要讨论它们。

学习率调度

SEER模型探索了使用两种学习率调度的可能性:余弦波学习率调度固定学习率调度

余弦波学习率调度用于公平地比较不同的模型,因为它适应更新次数。然而,余弦波学习率调度不适合大规模训练,主要是因为它根据训练时看到的时间对图像进行加权,并且还使用完整的更新进行调度。

固定学习率调度保持学习率不变,直到损失不再减少,然后将学习率除以2。分析表明,固定学习率调度效果更好,因为它为使训练更加灵活提供了空间。然而,由于模型仅在10亿张图像上训练,因此它使用余弦波学习率来训练其最大的模型,即RegNet 256GF

减少每个GPU的内存消耗

该模型还旨在通过使用混合精度和梯度检查点来减少训练期间所需的GPU数量。该模型使用NVIDIA Apex Library的O1优化级别来以16位浮点精度执行诸如卷积和GEMMs等操作。该模型还使用PyTorch的梯度检查点实现,该实现通过以计算换取内存。

此外,该模型还丢弃在前向传递过程中创建的任何中间激活,并在后向传递过程中重新计算这些激活。

优化训练速度

使用混合精度来优化内存使用还有额外的好处,因为加速器可以利用FP16的减小大小,并且与FP32相比,增加了吞吐量。这有助于通过提高内存带宽瓶颈来加快训练速度。

SEER模型还在GPU之间同步BatchNorm层,以创建过程组而不是使用全局同步,这通常需要更长时间。最后,SEER模型中使用的数据加载器预先获取更多的训练批次,这导致比PyTorch的数据加载器更高的数据吞吐量。

大规模预训练数据

SEER模型在预训练中使用超过10亿张图像,并且考虑到一个数据加载器,该加载器直接从互联网和Instagram中随机采样图像。由于SEER模型在野外和在线训练这些图像,因此它不对这些图像应用任何预处理,也不使用诸如去重或哈希标签过滤等过程来策划它们。

值得注意的是,数据集不是静态的,数据集中的图像每三个月更新一次。然而,更新数据集不会影响模型的性能。

SEER模型实现

SEER模型使用SwAV和六个每张图像的作物对RegNetY 256GF进行预训练,每张图像的分辨率为2×224 + 4×96。在预训练阶段,模型使用具有投影头的3层MLP或多层感知器,维度为10444×8192、8192×8192和8192×256。

相反,SEER模型在头部使用16,000个原型,温度t设置为0.1。Sinkhorn正则化参数设置为0.05,并执行算法的10次迭代。然后,SEER模型在GPU之间同步BatchNorm统计信息,并创建大小为64的多个处理组以进行同步。

此外,SEER模型使用LARS或分层自适应速率缩放优化器,权重衰减为10-5,激活检查点和O1混合精度优化。然后使用批次大小为8,192张图像的随机梯度下降法在512个NVIDIA GPU上训练模型,结果为每个GPU16张图像。

学习率从0.15线性增加到前8,000次训练更新的9.6。热身后,模型遵循余弦学习率调度,衰减到0.0096的最终值。总体而言,SEER模型在122,000次迭代中训练超过10亿张图像。

SEER框架:结果

通过在各种基准测试和下游任务中研究和分析自监督预训练方法的特征质量。该模型还考虑了一个低射击设置,限制了对图像及其标签的访问,以执行下游任务。

大型预训练模型的微调

它通过将模型转移到ImageNet基准测试中进行对象分类来衡量在随机数据上预训练的模型的质量。微调大型预训练模型的结果是根据以下参数确定的。

实验设置

该模型预训练6个具有不同容量的RegNet架构,分别为RegNetY-{8,16,32,64,128,256}GF,在超过10亿张随机和公开的Instagram图像上使用SwAV。然后将这些模型微调用于ImageNet图像分类,ImageNet使用超过1.28百万张标准训练图像,并且有一个标准验证集,包含超过50,000张图像用于评估。

然后,模型应用与SwAV相同的数据增强技术,并在35个时期内使用批次大小为256、学习率为0.0125(在30个时期后将其减少10倍)、动量为0.9和权重衰减为10-4的SGD优化器进行微调。该模型在验证数据集上报告中心裁剪的224×224的顶级准确率。

与其他自监督预训练方法的比较

在下表中,RegNetY-256GF中最大的预训练模型与使用自监督预训练方法的现有预训练模型进行了比较。

如您所见,SEER模型在ImageNet上返回84.2%的顶级准确率,并以1%的优势超越了SimCLRv2,现有的最佳预训练模型。

此外,以下图表比较了SEER框架与不同容量的模型。如您所见,无论模型容量如何,将RegNet框架与SwAV结合都能产生准确的结果。

SEER模型在未策划和随机的图像上预训练,并且具有RegNet架构和SwAV自监督学习方法。SEER模型与SimCLRv2和具有不同网络架构的ViT模型进行了比较。最后,SEER模型在ImageNet数据集上进行了微调,并报告了顶级准确率。

模型容量的影响

模型容量对预训练的模型性能有显著影响,以下图表将其与从头开始训练的模型进行了比较。

可以清楚地看到,预训练模型的顶级准确率高于从头开始训练的模型,而且随着参数数量的增加,差异变得越来越大。还可以看出,虽然模型容量对预训练和从头开始训练的模型都有益处,但在处理大量参数时,预训练模型的影响更大。

可能的原因是,在ImageNet数据集上从头开始训练模型可能会过拟合,因为训练数据集相对较小。

低射击学习

低射击学习是指评估SEER模型在低射击设置中的性能,即只使用数据集的一小部分来执行下游任务。

实验设置

SEER框架使用两个数据集进行低射击学习,分别是Places205ImageNet。此外,该模型假设在转移学习中,仅限于访问数据集,既可以是图像,也可以是标签。这种有限访问设置与自监督学习的默认设置不同,后者仅限于访问图像标签,并且可以访问整个数据集。

Places205数据集的结果

下图显示了在不同部分的Places205数据集上预训练模型的影响。

比较的方法是预训练模型在ImageNet数据集上进行监督训练,使用相同的RegNetY-128 GF架构。比较的结果令人惊讶,因为可以观察到在Places205数据集上微调时,无论可用的训练数据部分如何,都可以稳定地获得2.5%的顶级准确率。

可观察到的差异可以通过训练数据的性质差异来解释,因为从野外随机图像中学习的特征可能更适合分类场景。此外,在像Places205这样的不平衡数据集上进行预训练可能是有利的,因为底层概念的非均匀分布可能是预训练的优势。

ImageNet的结果

上表比较了SEER模型的方法与自监督预训练方法和半监督方法在低射击学习中的性能。值得注意的是,所有这些方法都使用ImageNet数据集中的1200万张图像进行预训练,并且只限制了访问标签。另一方面,SEER模型的方法只允许看到1%至10%的数据集中的图像。

如您所见,尽管SEER模型只看到1%至10%的ImageNet数据集,但它仍然能够实现约80%的顶级准确率,这仅略低于上表中讨论的方法的准确率。

模型容量的影响

以下图表讨论了低射击学习中模型容量的影响:在1%、10%和100%的ImageNet数据集上。

可以观察到,增加模型容量可以提高模型的准确率,因为它降低了对图像和标签的访问限制。随着对图像和标签的访问减少,模型容量的影响变得更加明显。

转移到其他基准测试

为了进一步评估SEER模型并分析其性能,预训练的特征被转移到其他下游任务中。

图像分类的线性评估

上表比较了SEER的预训练RegNetY-256GF和RegNetY128-GF的特征,这些特征是在ImageNet数据集上进行的有监督预训练。为了分析特征的质量,模型冻结权重,并在下游任务的特征上使用线性分类器。以下基准测试用于此过程:Open-Images(OpIm)、iNaturalist(iNat)、Places205(Places)和Pascal VOC(VOC)。

检测和分割

下图比较了预训练的特征在检测和分割方面的性能,并对其进行了评估。

SEER框架在COCO基准测试中训练一个Mask-RCNN模型,使用预训练的RegNetY-64GF和RegNetY-128GF作为构建块。对于两种架构和下游任务,SEER的自监督预训练方法都优于有监督的训练,优越性在1.5到2个AP点之间。

与弱监督预训练的比较

互联网上可用的大多数图像通常都有元描述、alt文本、描述或地理位置,这些信息可以在预训练期间提供优势。先前的工作表明,预测精心策划的标签集可以提高预测的视觉特征的质量。然而,这种方法需要筛选图像,并且仅在存在文本元数据时才起作用。

下图比较了在随机图像上训练的ResNetXt101-32dx8d架构与在带有标签和元数据的标记图像上训练的相同架构,并报告了两者的顶级准确率。

可以看到,尽管SEER框架在预训练期间不使用元数据,但其准确率与使用元数据进行预训练的模型相当。

消融研究

进行消融研究是为了分析特定组件对模型整体性能的影响。通过从模型中完全删除组件并了解模型的性能来执行消融研究。这为我们提供了对该组件对模型性能影响的简要概述。

模型架构的影响

模型架构对模型的性能有显著影响,特别是在扩展或修改预训练数据的规格时。

以下图表讨论了更改架构如何影响预训练特征的质量,方法是线性评估ImageNet数据集。预训练特征可以在这种情况下直接探测,因为评估不会偏向在ImageNet数据集上从头开始训练的模型返回高准确率。

可以观察到,对于ResNeXts和ResNet架构,来自倒数第二层的特征在当前设置下效果更好。另一方面,RegNet架构优于其他架构。

总体而言,可以得出结论,增加模型容量对特征质量有积极影响,并且在处理大量参数时,模型性能会有对数级的增加。

扩展预训练数据

有两个主要原因可以解释为什么在更大的数据集上训练模型可以提高视觉特征的质量:更多的唯一图像和更多的参数。让我们简要地看一下这些原因如何影响模型的性能。

增加唯一图像的数量

上图比较了两个具有相同参数数量但在不同数量唯一图像上训练的架构,分别是RegNet8和RegNet16。SEER框架训练模型进行更新,相当于10亿张图像的一个epoch,或者32个唯一图像的32个epoch,并且使用单半波余弦学习率。模型在批次大小为8,704张图像的512个GPU上训练,结果每个GPU有16张图像。

可以观察到,为了使模型表现良好,输入模型的唯一图像的数量应该理想地大于ImageNet数据集中的图像数量。在这种情况下,模型在被输入的唯一图像数量超过ImageNet数据集中的图像数量时表现良好。

更多参数

下图指出,当使用RegNet-128GF架构在10亿张图像上训练模型时,模型的性能会随着参数数量的增加而稳步提高。

现实世界中的自监督计算机视觉

到目前为止,我们已经讨论了自监督学习和SEER模型在计算机视觉中的工作原理。现在,让我们来看看自监督计算机视觉在现实世界场景中的工作原理,以及为什么SEER是自监督计算机视觉的未来。

SEER模型与自然语言处理领域中所做的工作相媲美,在那里,高端的最先进模型使用数万亿的数据集和参数,并在预训练模型时使用数万亿的文本。性能在下游任务中通常会随着训练数据的输入数量而增加,这对于计算机视觉任务也是如此。

但是,使用自监督学习技术进行自然语言处理与使用自监督学习进行计算机视觉不同。这是因为当处理文本时,语义概念通常分解为离散的单词,但当处理图像时,模型必须决定哪个像素属于哪个概念。

此外,图像具有不同的视图,即使多个图像具有相同的对象,概念也可能有很大差异。例如,考虑一个包含猫的图像数据集。虽然主要对象,即猫,在所有图像中都是共同的,但概念可能会有很大差异,因为猫可能在一张图像中静止不动,而在另一张图像中正在与一个球玩耍,依此类推。由于图像通常具有不同的概念,因此对于模型来说,查看大量图像以理解相同概念周围的差异至关重要。

成功地扩展模型以使其能够高效地处理高维和复杂的图像数据需要两个组件:

  1. 一个足够大的卷积神经网络(CNN),能够从大量图像数据集中捕获和学习视觉概念。
  2. 一种可以从大量图像中学习模式而无需标签、注释或元数据的算法。

SEER模型旨在将这些组件应用于计算机视觉领域。SEER模型旨在利用SwAV(一种使用在线聚类将图像配对并利用这些相似性更好地识别模式的自监督学习框架)在计算机视觉领域的进展。

使用SwAV架构,SEER模型能够使计算机视觉中的自监督学习更加有效,并将训练时间减少多达6倍。

此外,在如此大规模上训练模型需要一个不仅在运行时和内存方面高效,而且在准确率方面也高效的模型架构。这就是RegNets模型的用途,因为这些RegNets模型是ConvNets模型,可以扩展到数万亿参数,并且可以根据需要优化以满足内存限制和运行时法规。

结论:自监督的未来

自监督学习是人工智能和机器学习行业近期的热门话题,因为它允许人工智能模型直接从互联网上随机可用的大量数据中学习,而不是依赖于精心策划和标记的数据集,这些数据集专门用于训练人工智能模型。

自监督学习是人工智能和机器学习的未来,因为它有可能让开发人员创建能够适应现实世界场景并具有多种用例而不是特定用途的人工智能模型。SEER是计算机视觉中自监督学习的重要里程碑。

SEER模型采取了计算机视觉行业转型的第一步,减少了对标记数据集的依赖。SEER模型旨在消除对数据集注释的需求,这将使开发人员能够处理大量多样化的数据。SEER模型的实施对于开发人员尤其有帮助,他们正在处理图像或元数据有限的领域,例如医疗行业。

此外,消除人工注释将使开发人员能够更快地开发和部署模型,这将使他们能够更快、更准确地应对快速变化的情况。SEER模型对于r开发人员来说尤其有帮助,他们正在开发处理图像或元数据有限的领域的模型,例如医疗行业。此外,消除人工注释将使开发人员能够更快地开发和部署模型,这将使他们能够更快、更准确地应对快速变化的情况。

Kunal Kejriwal 是一名专注于 Python、PostgreSQL、Redis 以及 GCP 和 AWS 上云基础设施的后端工程师。拥有三年构建和扩展生产系统的经验,他撰写关于 AI 基础设施、分布式系统以及部署机器学习工作负载背后架构的文章。