Connect with us

人工智能

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

mm
SEER Framework for Self Supervised Learning

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

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

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

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

Facebook AI的SEER模型旨在最大限度地发挥自监督学习在计算机视觉领域的能力。SEER或自监督是具有超过10亿参数的自监督计算机视觉学习模型,它可以从互联网上找到的任意一组随机图像中学习模式或信息,而无需适当的注释或标签。

计算机视觉中自监督学习的必要性

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

开发计算机视觉模型时,开发人员面临的最大挑战之一是找到高质量的注释数据。当前的计算机视觉模型依赖于这些标注数据集来学习使其能够识别图像中对象的模式。

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

管理一致的数据集质量

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

工作量管理

数据标注通常带来工作量管理问题,主要是因为处理和标注大量无结构和无标注数据的工人数量很大,同时需要确保质量。因此,开发人员需要在数据标注的质量和数量之间找到平衡。

财务限制

可能最大的挑战是数据标注过程所带来的财务限制,大多数时候,数据标注成本占整个项目成本的很大一部分。

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

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

SEER或自监督模型:简介

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

有两个关键因素对这些深度学习模型的性能提升做出了巨大的贡献。

在大型数据集上预训练

在大型数据集上预训练通常会导致更好的准确性和性能,因为它让模型接触到大量的数据。大量的数据集允许模型更好地理解数据中的模式,最终导致模型在现实场景中表现更好。

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

开发人员过去曾尝试使用较小的数据集训练自监督学习模型,这些数据集只包含几百万张图像。但是,自监督学习模型在训练大量未标注和未经整理的数据时会产生高精度的结果吗?这是SEER模型试图回答的问题。

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

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

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

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

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

  1. 它们在性能和效率之间提供了完美的平衡。
  2. 它们非常灵活,可以用于扩大参数数量。

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

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

视觉特征的无监督预训练

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

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

大规模学习视觉特征

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

此外,在大规模上训练模型通常依赖于使用预训练分类器的预测或使用与ImageNet类别同义词的哈希标签的数据筛选步骤。SEER模型的工作方式不同,因为它旨在从任何随机图像中学习特征,因此SEER模型的训练数据不经过整理以匹配预定义的特征或概念集。

图像识别的架构扩展

模型通常从在更高质量的数据上训练大型架构中受益,因为这使模型能够更好地学习视觉特征。训练模型时,尤其是使用对比学习时,扩大架构至关重要,因为在这种情况下,模型必须学习如何区分数据集实例,以便学习更好的视觉表示。

但是,要扩大图像识别的架构,需要比简单地更改模型的深度和宽度做得更多,而且要构建一个具有更大容量的可扩展模型,需要大量的文献。SEER模型通过直接在其自监督预训练任务中实现RegNetY架构来展示使用RegNets家族的模型进行大规模自监督学习的好处。

SEER:方法和组件

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

使用SwAV的自监督预训练

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

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

SEER模型考虑一组K个集群,每个集群都与一个可学习的d维向量vk相关联。对于一批B图像,每个图像i被转换成两个不同的视图:xi1xi2。这些视图然后被convnet特征化,结果是两个特征集:(f11,…,fB2),和(f12,…,fB2)。每个特征集然后独立地分配到集群原型中,使用最优运输求解器。

最优运输求解器确保特征均匀地分布在集群中,并有助于避免将所有表示映射到单个原型的琐碎解决方案。然后将分配结果在两个集之间交换:视图xi1的集群分配yi1需要使用视图xi2的特征表示fi2来预测,反之亦然。

然后,原型权重和convnet被训练以最小化所有示例的损失。集群预测损失l本质上是特征的点积的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张图像。训练模型在超过1亿张图像的数据集上,批次大小为8704张图像,在512个GPU上,需要114890次迭代,训练时间约为8天。

大规模优化和训练

SEER模型提出几种调整,以训练自监督方法,并将这些方法应用于大规模。这些方法包括:

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

让我们简要讨论它们。

学习率调度

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

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

固定学习率调度保持学习率不变,直到损失不再减少,然后将学习率除以2。分析表明,固定学习率调度更好,因为它为训练提供了更大的灵活性。然而,因为模型只训练1亿张图像,所以它使用余弦波学习率来训练其最大的模型,即RegNet 256GF

减少每个GPU的内存消耗

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

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

优化训练速度

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

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

大规模预训练数据

SEER模型在预训练中使用超过1亿张图像,并考虑一个直接从互联网和Instagram中随机采样图像的数据加载器。由于SEER模型在野外和在线训练这些图像,因此它不会对这些图像应用任何预处理,也不会使用诸如去重或哈希标签筛选等过程对其进行整理。

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

SEER模型实现

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

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

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

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

SEER框架:结果

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

大型预训练模型的微调

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

实验设置

该模型预训练6个具有不同容量的RegNet架构,分别为RegNetY-{8,16,32,64,128,256}GF,在超过1亿张来自Instagram的随机公共图像上使用SwAV进行预训练。然后将这些模型微调用于ImageNet图像分类,该任务使用1,280万张标准训练图像和具有超过50,000张图像的标准验证集进行评估。

然后应用与SwAV相同的数据增强技术,并使用SGD优化器或随机梯度下降法进行35个epoch的微调,批次大小为256,学习率为0.0125,学习率在30个epoch后减少10倍,动量为0.9,权重衰减为10-4。模型在验证数据集上报告中心裁剪的224×224的顶级准确率。

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

下表比较了预训练的RegNetY-256GF模型与使用自监督学习方法的现有预训练模型。

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

此外,下图比较了SEER框架与不同容量的模型。如您所见,无论模型容量如何,将RegNet框架与SwAV结合都会产生准确的结果,在预训练期间。

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

模型容量的影响

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

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

训练从头开始的模型可能会过拟合的可能原因是ImageNet数据集的大小较小。

低shot学习

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

实验设置

SEER框架使用两个数据集进行低shot学习,分别是Places205ImageNet。此外,模型假设在转移学习中,数据集和标签的访问权限有限,不仅仅是标签的访问权限有限,这与自监督学习的默认设置不同,模型可以访问整个数据集,但仅限于图像标签的访问权限。

Places205数据集的结果

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

SEER方法与在ImageNet数据集上使用相同的RegNetY-128 GF架构进行监督预训练的方法进行比较。结果表明,无论Places205数据集的训练数据部分如何,SEER方法始终具有稳定的2.5%的顶级准确率增益。

SEER方法与监督预训练过程之间的差异可以用训练数据的性质来解释,因为从野外随机图像中学习的特征可能更适合场景分类。此外,底层概念的非均匀分布可能会使在Places205等不平衡数据集上预训练变得有利。

ImageNet的结果

上表比较了SEER方法与自监督预训练方法和半监督方法在低shot学习中的性能。值得注意的是,所有这些方法都使用ImageNet数据集的120万张图像进行预训练,并且它们只限制了对标签的访问。相比之下,SEER方法只看到ImageNet数据集的1%至10%的图像。

虽然这些方法从看到更多同分布的图像中受益,因为它们在预训练中看到的图像更多,但令人印象深刻的是,即使SEER模型只看到ImageNet数据集的1%至10%,它仍然能够达到80%的顶级准确率,这几乎与上表中讨论的方法的准确率相同。

模型容量的影响

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

可以观察到,增加模型容量可以提高模型的准确率,特别是当模型的图像和标签访问权限减少时。

转移到其他基准测试

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

图像分类的线性评估

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

检测和分割

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

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

与弱监督预训练的比较

互联网上可用的大多数图像通常具有元描述、alt文本、描述或地理位置,可以在预训练期间提供利用价值。先前的工作表明,预测一个经过整理的标注的哈希标签集可以提高视觉特征的质量。然而,这种方法需要筛选图像,并且只在存在文本元数据时才有效。

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

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

消融研究

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

模型架构的影响

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

下图讨论了更改架构如何影响预训练特征的质量,通过在ImageNet数据集上进行线性评估。在这种情况下,评估直接探测预训练特征,因为评估不会偏向在ImageNet数据集上从头开始训练的模型。

可以观察到,对于ResNeXts和ResNet架构,来自最后一层的特征效果更好。另一方面,RegNet架构优于其他架构。

总的来说,可以得出结论,增加模型容量对特征质量有积极的影响,并且模型性能的收益是对数级的。

扩大预训练数据

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

增加唯一图像的数量

上图比较了两个具有相同参数数量但在不同数量唯一图像上训练的不同架构,分别为RegNet8和RegNet16。SEER框架训练模型,相当于1亿张图像的1个epoch更新,或32个唯一图像的32个epoch更新,并使用单次半波余弦学习率调度。

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

更多参数

下图表明,使用RegNet-128GF架构,在超过1亿张图像上训练模型时,模型的性能会增加。

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

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

SEER模型在计算机视觉行业中堪比自然语言处理行业中使用的高端、最先进的模型,这些模型使用数万亿个数据集和参数,并在预训练期间使用数万亿个文本单词。性能在下游任务中通常会随着输入数据的增加而提高,无论是在自然语言处理还是计算机视觉任务中都是如此。

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

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

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

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

SEER模型旨在将这些组件应用于计算机视觉领域。SEER模型旨在利用SwAV的进步,SwAV是一种自监督学习框架,使用在线聚类来对具有平行视觉概念的图像进行分组和配对,并利用这些相似性来更好地识别模式。

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

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

结论:自监督的未来

自监督学习已经成为人工智能和机器学习行业的热门话题,因为它允许人工智能模型直接从互联网上大量可用的数据中学习信息,而不依赖于精心策划和标注的数据集,用于训练人工智能模型。

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

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

此外,消除人工注释将使开发人员能够更快、更准确地开发和部署模型,从而能够更快、更准确地应对迅速变化的情况。

专业为工程师,心为作家。 Kunal是一名技术作家,对AI和ML有着深厚的热爱和理解,致力于通过其引人入胜和信息丰富的文档来简化这些领域中的复杂概念。