作者:张燚钧,张润清,周华健,齐骥,余肇飞,黄铁军
来源:《中国图象图形学报》
原文链接:https://www.cjig.cn/zh/article/doi/10.11834/jig.230911/
在计算机视觉领域,尽管传统的深度学习视觉模型在特定任务上表现出色,但它们对大量标注数据的高度依赖及在新场景下性能泛化的局限性,大大增加了使用成本并限制了模型的应用范围。
近年来,以Transformer为核心的新型模型结构,特别是在自监督学习领域的应用,为解决这些挑战提供了新的解决方案。这些模型通常通过大规模数据预训练,在处理复杂视觉场景中展现出强大的泛化能力,其被广泛称为视觉基础模型。
本文深入探讨了视觉基础模型的研究现状与未来发展趋势,并重点关注该领域的关键技术进展及其对未来计算机视觉的潜在影响。首先回顾和梳理了视觉基础模型的背景与发展历程,然后介绍了在这一发展历程中出现的关键模型基础结构,介绍并分析了构建视觉基础模型所采用的各类预训练任务的设计思路,并根据其特性对现有的视觉基础模型进行分类。同时,对不同类型视觉基础模型中的代表性工作进行了介绍,并整理了目前可用于视觉基础模型预训练的数据集。最后,对视觉基础模型的研究现状进行总结和思考,提出了目前存在的一些挑战,并展望未来可能的研究方向。
引言
自从2012年AlexNet在ImageNet图像数据集分类上展现出优秀识别能力后,深度学习方法已经在计算机视觉(CV)领域取得了飞速发展。在很多基础计算机视觉任务中,如图像分类、目标检测和语义分割等领域,基于深度学习的卷积神经网络已经取得了超过以往方法的效果,并在工业领域广泛应用。然而,传统的CV模型在现阶段的大规模行业,如视频安防、人脸识别等应用中也面临很多问题,一些观点认为传统CV模型已经发展到了瓶颈。在真实的应用场景中需要被关注的类别可能只占样本总数非常少的比例,导致模型训练效果不佳,即长尾问题。具体来说,在大规模行业应用中存在大量细分场景的任务需求,也称为长尾场景。算法开发人员需要针对每个细分场景单独训练、部署、维护场景专用模型,导致人工成本提高。并且大部分长尾场景可供训练数据少、数据收集成本高,往往导致模型效果难以达到预期。
2017年谷歌公司提出Transformer这一模型结构,这是一种基于自注意力机制的序列到序列模型(
Vaswani等,2017
)。得益于在处理长序列的全局信息依赖关系方面的强大能力,Transformer模型成功应用在机器翻译等领域并取得了突破。随后几年,基于Transformer中编码器(encoder)和解码器(decoder)的各类自然语言处理(NLP)基础模型相继出现。其中比较有代表性的是BERT模型和GPT模型。BERT模型是由谷歌团队在2018年推出,采用了Transformer 中的encoder模块双向编码上下文信息,通过在大规模无标注语料上的预训练提高了对语义的理解能力。同年,OpenAI团队提出GPT模型。不同于BERT模型,GPT模型采用Transformer中的decoder结构,同样在大规模语料上进行预训练。GPT模型是一种生成式语言基础模型,语言的生成能力较强。这两个经典基础模型推出后,在NLP领域引发了基础模型的持续研究热潮,越来越多的NLP基础模型不断涌现。GPT模型的后续版本GPT-2、GPT-3在更大规模的数据上进行训练,参数量分别达到了15亿和1750亿。GPT-3已经可以生成人类难以区分的文本、编程语言。谷歌提出T5基础模型采用Transformer中的encoder-decoder结构,发布了6 000万参数到110亿参数的多个版本,在翻译、文本分类和摘要等多个任务取得了最佳结果。这些基础模型呈现出参数规模越来越大、模型能力越来越强的发展趋势。NLP基础模型的发展在ChatGPT发布之后达到了一个重要的里程碑。现在,NLP基础模型的模型参数规模已经达到百亿甚至千亿,并且具有强大的语言处理能力。经过大规模数据预训练的NLP基础模型有望取代单任务专有模型,成为统一NLP领域任务的基础模型。基于Transformer结构的NLP基础模型的发展也给予了CV领域研究者启发。
Dosovitskiy等人(2021)
提出了视觉Transformer(ViT)模型。通过将图像切分成图像块(patch)作为Transformer结构的输入序列,ViT将Transformer这种结构的应用范围从NLP领域迁移到CV领域。
类似NLP领域通过扩大模型参数规模从而提升模型性能的方式,CV领域的研究者也通过扩大ViT模型参数规模试图提高视觉基础模型的性能上限。ViT原始论文中,作者提出8600万、3亿、6亿3种参数规模的模型。随后的工作中,ViT-G模型和ViT-e模型分别将模型参数量提高到18亿和39亿。2023年,谷歌研究人员提出一种异步并行线性操作方法提升了ViT的训练效率,将ViT模型的参数提高到220亿规模。此外,一些基于Transformer在视觉领域的改进工作将这种模型的能力扩展到各种视觉领域下游任务。例如DeiT网络通过卷积神经网络(CNN)作为教师模型,首次实现了在中等规模图像数据集上训练得到能够有效表征图像的Transformer模型。Facebook研究人员通过将目标检测问题转换成集合预测问题提出了DETR模型,首次将Transformer结构应用到目标检测领域。一些工作也将Transformer迁移到图像分割领域,例如SETR网络和SegFormer网络,这类方法将ViT作为图像编码器,设计不同类型的解码器进行图像上采样,保证分割任务的预测能力。
除了能够处理单一视觉任务的视觉基础模型,研究人员也在探索具有多视觉任务处理的统一视觉基础模型。混合专家架构(MoE)是多任务统一视觉基础模型的实现路径之一。谷歌公司提出的一种基于稀疏专家混合架构的视觉基础模型V-moe是这个方向的开创性工作。混合专家架构通过路由根据视觉任务选择对应需要激活的专家网络,只需激活部分网络,提高了网络处理任务的效率。
受NLP领域基础模型掩码语言建模(MLM)预训练方法的启发,一系列适用于CV领域的掩码图像建模(MIM)相继由研究者提出。例如在ViT上进行图像预训练的方法MAE和BeiT。这些图像自监督学习方法使在大量图像数据集上进行视觉基础模型预训练这一路线得以实现。通过在大规模图像数据集上的预训练,视觉主干网络获得了对于各类视觉场景中图像的特征提取能力,且对不同场景图像具有良好的泛化性。通常只需要在下游细分场景上进行少量数据的微调,就可以实现较高的下游任务性能。这类方法的代表性工作有BEiT系列模型和EVA系列模型等。
总的来说,相对于NLP领域基础模型较为快速发展和清晰的路径,视觉基础模型研究领域仍处于发展的初期阶段。CV领域的研究人员提出了各类不同的关于视觉基础模型实现路径的方法论。各类新型的视觉基础模型仍在不断问世。尽管实现方法各异,视觉基础模型的最终发展目标是一致的:提供一个可以处理各类视觉任务的通用的基础模型。具体来说,在各类下游任务上只需要少量数据微调甚至不需要微调就可以获得优秀性能,从而解决CV领域的长尾场景、数据成本高和开发成本高等问题。
当前关于基础模型的综述主要集中在NLP领域,关于基础模型在视觉领域的发展,相关梳理工作较少。本文围绕视觉领域基础模型的发展进行介绍。本文首先对视觉基础模型的背景和发展历程进行回顾和梳理。然后介绍在视觉基础模型发展历程中的关键模型基础结构,并对构建基础模型的各种预训练任务进行介绍和分析;根据模型特性对目前各种视觉基础模型进行分类,并介绍其中的代表性工作;对目前可用于视觉基础模型预训练的数据集进行了整理。最后,本文对视觉基础模型的研究现状进行总结和思考,对相关问题进行了探讨。
关键模型结构
在CV领域,基础模型的结构设计对于实现高效、准确的信息处理至关重要。传统设计上,这些模型依赖于CNN来捕获图像数据中的空间层次结构和局部特征。然而,随着深度学习技术的不断发展,特别是预训练大型模型在模式识别和数据表征方面的重要性日益凸显,模型结构的要求也在不断演化。在此背景下,Transformer模型的提出标志着一个重要的转折点。最初在NLP领域取得显著成功的Transformer,通过其独特的自注意力机制,使得模型能够有效捕获长距离依赖关系,并在处理序列化数据时显示出优越的性能。它的成功不仅促进了预训练大模型在NLP领域的广泛应用,也为其他模态的基础预训练模型发展提供了新的架构思路。
ViT是将Transformer模型应用于图像处理的一个重要里程碑。ViT实现了对图像特征的全局理解。这种方法在多个计算机视觉任务中显示出了卓越的性能,尤其是在图像分类、目标检测和图像分割等领域。ViT的成功不仅证明了Transformer模型在视觉领域的巨大潜力,也为未来的视觉基础模型设计提供了新的方向和灵感。
本节将分别对Transformer和ViT这两种视觉基础模型中的关键模型结构进行介绍。
1.1 Transformer
Transformer最初应用在NLP领域的序列到序列的自回归任务中。Transformer的核心设计是多头自注意力机制和位置嵌入编码。Transformer利用自注意力机制更有效地处理序列数据。与之前的一些序列转换模型不同,Transformer尽管也采用了编码器—解码器结构,但是完全舍弃了递归和卷积操作,转而使用多头自注意力机制和逐点前馈网络。
原始的Transformer由相同层数的编码器和解码器组成,其中编码器和解码器分别堆叠。Transformer的基本单元是注意力机制。在注意力层中,输入序列
通过权重矩阵
被映射为3个矩阵,即
式中,
,可以分别理解为查询
、键
、值
,其中
Attention层的计算为
可以认为将
的序列
编码得到一个新的序列,维度为
。其中,
是缩放因子,控制内积的大小。当
时,
式(3)
描述的就是自注意力机制。
为了扩大注意力的特征表达能力,Transformer还使用“多头自注意力机制”。具体来说,单头注意力计算为
式中,
。
多头自注意力机制计算为
式中,
表示输出映射矩阵,具体为
多头自注意力机制将独立的注意力的计算结果拼接起来,丰富了模型特征子空间的多样性。在Transformer随后的处理流程中,多头自注意力操作后的输出将会经过两层连续的前馈层进行处理。
仅通过自注意力机制是无法表达模型输入序列的顺序的。Transformer设计了位置编码机制对输入序列中的每个位置进行有效编码。Transformer中使用的位置编码构造式为
式中,
和
分别代表输入向量的位置和长度,
是向量中每个元素的索引。借助正弦余弦本身的性质,这种位置编码方式使得位置索引为
的元素可以表示为位置索引为
的向量的线性变换。这种设计便于向量中相对位置的表达。
图1
展示了Transformer的整体结构。对于编码器模块,多头自注意力聚合计算了编码器内输入向量之间的关系。前馈层从自注意力层的输出中继续提取特征。相对于编码器,Transformer中的解码器通过多头交叉注意力层聚合了编码器输出和解码器输入。此外,编码器和解码器中的所有层之间都有残差连接。Transformer中也使用了归一化层增强模型的可扩展性。为了记录输入向量的次序信息,在编码器和解码器的整体输入中都附加了输入向量的位置编码嵌入。Transformer的最后一层是softmax层,用于得到预测下一个输入的映射概率。
图1 Transformer结构图
1.2 Vision Transformer
Transformer结构首先在NLP领域大放异彩。BERT、GPT等一系列基础语言大模型相关工作均使用了Transformer中的编码器或解码器结构作为模型的基础结构。
这些进展激发了研究者们将Transformer应用到CV领域。例如,Transformer在视觉领域的早期应用形式一般是“CNN特征 + Transformer编码器” 。此外,也有研究人员尝试通过将原始图像缩放至低分辨率重新排列成一维序列的方法在CV领域实现类似BERT的预训练。
与此前一些在小规模视觉模型上应用Transformer结构不同,
Dosovitskiy等人(2021)
通过ViT探索了使用Transformer结构在CV领域进行大规模预训练学习的可行性。ViT这一开创性工作对大规模预训练视觉基础模型领域的研究产生了深远影响。标准的Transformer仅可接受序列输入,为了使Transformer可以适应图像输入,ViT将输入图像切分成patch,patch被展开为一维向量随后加上位置编码向量。随后,这些嵌入被送入Transformer的编码器中进行计算。
类似BERT,ViT加入了一个类别标记到图像嵌入中,最终作为图像的分类输出。在ViT中,作者使用了大规模图像数据集JFT-300M进行预训练。ViT在多个图像识别基准测试上取得了与当时最先进CNN方法媲美甚至更好的结果。尽管有实验表明,ViT在训练数据规模有限的情况下性能表现低于CNN方法,但是考虑到视觉基础模型的大规模图像数据集预训练需求,ViT具有作为模型基础结构的巨大应用潜力。
预训练任务
“预训练—微调”这一深度学习网络的训练范式,在NLP领域已经比较成熟,在CV基础模型领域也得到发展。
在CV基础模型领域,首先通过预训练的方法在大型数据集上进行模型的预训练。这个步骤使得模型可以学习获得在通用场景上的特征提取能力。模型随后会在下游任务的小型数据集上进行微调。这种训练范式可以使得基础模型在不需要投入大量训练成本的情况下获得在多种下游任务上较为优秀的性能。
在NLP领域,BERT、GPT等模型通过在海量文本数据上进行预训练,在多个NLP子任务上取得了超过以往单任务模型的最好性能。在视觉领域,大部分的视觉基础模型也使用预训练—微调训练范式。目前主流视觉基础模型应用的预训练方法主要有监督学习、对比学习和掩码图像建模。
2.1 监督学习
在计算机视觉领域,监督学习是一种经典的机器学习方法。监督学习利用带有标签信息的标注数据学习一个模型,并在此基础上对未标注的数据进行预测或分类。早期的一些深度学习相关工作已经通过监督学习方法学习到了可迁移的特征表示,并在多个任务上取得了不错的效果,包括图像分类、目标检测、零样本分类等任务形式。
当Transformer基础结构兴起后,一些研究者将监督学习应用在以Transformer为基础结构的大规模参数模型中,在大量数据上进行预训练,在下游任务上获得了显著的性能提升和鲁棒性提升。例如,ViT-L模型在包含了3亿幅图像的JFT数据集上进行预训练后,相比只在ImageNet训练集上训练的情况性能提升了13%。微软团队之后提出一种带有分层滑动窗口设计的Swin Transformer模型,通过在千万幅图像量级的数据集上进行预训练,在分类任务、目标检测任务评测基准上取得了当时的最高水平。谷歌研究人员将用于ViT的训练数据规模提高到了30亿的规模,并在此基础上训练出了20亿参数的ViT模型,将ImageNet上top-1准确率刷新到90.45%。
虽然一系列工作表明了采用监督学习可以在模型参数规模和训练数据规模扩展的情况下,在公共评测基准和少样本迁移任务上取得性能提升,但随着模型参数量的增大,满足模型进行充分监督学习所需要的有标签数据集的规模持续增大。对大规模数据进行标注需要耗费巨大的人力物力成本。研究人员同时也在探索其他视觉基础模型可行的预训练任务。
以监督学习为主要训练方法的深度神经网络在过去数十年内取得了巨大进步,特别是在包括图像分类、目标检测、语义分割和情感分析等多种机器学习任务中。通常,监督学习使用在特定任务上有监督信息的大型数据集进行训练。视觉基础模型早期发展阶段中的一些工作如 ViT、Swin Transformer均在大规模图像数据集上进行了监督学习预训练。但是,监督学习在视觉基础模型的训练上面临着瓶颈。监督学习依赖巨量的标注信息,造成训练成本的上升。此外,监督学习很容易受到泛化误差、偶然相关性和对抗攻击。研究人员希望视觉基础模型可以在更少的标签、样本下学习更多的通用知识。基于此背景,图像对比学习、图文对比学习和掩码图像学习等方法因其数据效率等优势吸引了研究人员广泛关注,很多相关工作开始使用这些范式作为预训练方法。
2.2 图像对比学习
对比学习的核心思想是学习一个或多个表征编码器。这些编码器将输入编码为表征,使得相似样本(正样本)在特征空间中的距离相近、非相似样本(负样本)在特征空间中的距离更远。例如,对于同一幅图像,可以在不影响概念图像语义的情况下通过不同的变换(如裁剪、旋转和颜色变换等)来生成多个视图。这些多视图可以作为正样本,其他不同图像可以作为负样本。通过最大化正样本之间的相似度,同时最小化负样本之间的相似度,可以训练得到一个图像表征编码器。一些研究工作已经发现对比学习预训练得到的表征在特定下游任务上性能超过了监督学习方法。
对比学习中的一类对比方法为“仅图像对比”。图像对比学习需要设计特定的对比损失函数来实现图像实例之间的判别。一些研究者基于信息熵的损失函数是指使用交叉熵或互信息等信息论量来定义对比损失函数,例如 InfoNCE、SimCLR、MoCo、BYOL和SimSiam 等方法。这类方法通常需要构建一个大规模的负样本集合,来增加对比难度和提高特征质量,然而,这也带来了计算和内存的挑战。因此一些方法采用了动量编码器、自监督预测器等技术来降低计算开销和提高稳定性。这类方法可以分为两个阶段:第1阶段是使用对比损失函数进行无监督训练;第2阶段是使用有监督损失函数进行微调或线性评估。其中,MoCo v3是目前在无监督视觉特征学习领域最先进的方法之一,它使用了 Transformer 网络结构和多种数据增强方式,来提高对比学习的效果。
基于距离的损失函数是指使用欧氏距离、余弦距离等距离度量来定义对比损失函数,例如 NPID、RandomCrop等方法。这类方法通常不需要构建负样本集合,而是直接使用全局特征分布的统计信息来进行对比学习。SwAV提出了一种新的数据增强策略multi-crop:使用不同分辨率的多个视图来替代两个全分辨率的视图,从而提高自监督学习的效果。基于SwAV对比学习方法,
Goyal等人(2021)
使用10亿幅图像训练完成了13亿参数的SEER基础模型,在ImageNet评测基准上取得了当时最高水平。
对比学习还受到数据增强、网络结构和优化策略等因素的影响,这些因素共同决定了视觉特征学习的效果。一些研究探讨了不同视图生成方式对对比学习的影响,发现一些有利于语义分割或目标检测等下游任务的数据增强方式也能提高对比学习的性能。另一些研究探讨了不同网络结构对对比学习的影响,发现使用 Transformer 网络结构能够进一步提升对比学习的效果,甚至可以在无监督情况下达到与有监督训练相当甚至更好的水平。此外,还有一些研究探讨了不同的优化策略对对比学习的影响,例如使用不同的学习率、批量大小以及正则化项等。
对比学习是视觉领域目前主流的自监督方法之一,可以利用大量无标注数据提高视觉任务的性能。图像对比学习直接研究不同样本实例之间的关系,这种方法天然适合于图像分类任务。与生成模型相比,应用图像对比学习方法的视觉基础模型在预训练阶段基本抛弃了解码器结构。因此,此类模型相对轻量,适合进行判别式的下游任务。然而,图像对比学习仍然存在一些问题需解决。大多数图像对比学习方法都需要对图像数据进行负样本采样,但是负样本采样这一过程通常耗费时间,且需要避免带来模型偏置。研究人员已经证明,通过数据增强,图像对比学习方法可以进一步给视觉基础模型带来性能提升,但是其中的原理解释仍然相当模糊,这阻碍了这种预训练方法在更多领域中的应用。如何进一步利用数据采样和增强的方法提升图像对比学习的能力是未来一个重要研究方向。
2.3 图文对比学习
除了仅图像对比的方法之外,还有图像文本对比学习方法。通过文本信息辅助以提升模型在视觉任务上的表现可以追溯到约20年前。
Mori等人(1999)
基于图像匹配的文档内容进行文档形容词、名词等描述预测,通过此预测任务提升了模型在图像检索任务的表现。
Joulin等人(2016)
使用了一个1亿幅含有社交媒体标签的Flickr图像数据集,通过预测图像和文本之间的相关性训练网络。作者发现这种训练方式可以获得高效的视觉特征,在图像分类、目标检测等任务上达到或者超过有监督训练的性能,同时可以在词语相似度等任务上表现出优势。
Li等人(2017)
提出一种基于文本注释的视觉n-gram模型,用于从网络图文数据中学习视觉表示。视觉n-gram模型借鉴了语言建模中常用的n-gram模型,其使用了COCO caption数据集进行训练。该模型可以根据图像预测与内容相关的短语,在基于短语的图像检索等零样本任务上取得了不错的效果。
还有一些新的工作通过基于Transformer语言建模、掩码语言建模、对比学习等方法,利用自然语言信息提升模型方法提取视觉表示的质量。然而,当时这些模型虽然在如何通过自然语言的监督信息获得有效的视觉表示方面取得了一些进展,但是在零样本图像任务上的性能表现落后于同时期的纯视觉模型。
Mahajan等人
提出了利用语言信息弱监督的预训练数据集提升神经网络在视觉任务上迁移学习效果。通过使用数十亿幅带有社交媒体标签的图像进行训练,发现在迁移到多个图像分类和目标检测评测数据集上效果优秀。Mahajan的工作证明了大规模弱监督预训练对于迁移学习性能提升的有效性。谷歌大脑团队先后通过BiT和ViT两个工作证明了在大规模图像数据集上进行的预训练可以推动模型在多个图像下游任务上取得同时期最高的性能。
OpenAI团队在2021年提出了CLIP模型,首次使用了从互联网收集的4亿对图文数据进行训练。CLIP利用对比学习的思想,将图像和文本编码后的特征在联合表示空间进行对齐匹配。CLIP这项工作对基础模型的发展具有重要影响,开启了大规模预训练基础模型的新篇章。CLIP在多个视觉任务上都能达到或者超过有监督或无监督的预训练方法,展现出强大的零样本能力。CLIP也启发了大量后续工作,如对比学习范式在其他视觉任务上的应用,通过将训练数据扩展到更大规模进一步提升模型能力等。更多相关的衍生工作在3.3节中介绍。
对比学习的高级理念是简化学习任务,要求模型从经过设计的有限选项中选出正确答案。这种任务设置鼓励模型学习图像中的高阶表征信息,而不是低阶的一般信息。包括2.2节提到的一些工作在内的研究已经从图像对比学习领域证明了这一思想的有效性。而图像内容对应的文本信息就是一种图像的天然高阶表征方式。传统的图像分类方法中模型会学习固定的物体类别,这使得模型无法预测和转移超出这个封闭集的概念。而自然语言在语义上比概念标签集(如物体类别)都要丰富,这种形式得以表示广泛的视觉概念,使模型的泛化能力和可用性得到了提高。图文对比学习预训练方法使得模型具有强大的零样本、少样本能力,可以高效快速地迁移到下游任务中。但是由于图文对比学习需要依赖巨量的图文匹配样本数据,数据的收集、清洗成本高,且模型的预训练需要极大的算力资源。一些研究发现尽管此类模型已经在零样本任务中表现出色,但并不能完全解决域外泛化问题。此外,计算机视觉任务需要在不同粒度级别(图像、区域、像素)进行处理,这使得跨模态语义匹配具有挑战性。构建一个可以利用不同粒度级别的图像文本数据的基础模型,寻求数据规模和语义丰富性之间的最佳权衡,对于图文匹配学习仍然是一个有吸引力的研究课题。
2.4 掩码图像建模
掩码图像建模的思路来源于自然语言处理领域的掩码语言建模。BERT等工作证明了掩码语言建模任务对于语言表征学习的有效性。掩码图像建模的基本思想是:对输入图像进行切片分割,然后随机掩蔽一部分切片,输入到模型中进行编码,最后通过一个解码器来重构被掩蔽的部分。这种通过部分观测来重构整体的方式,可以让模型学习到丰富的视觉表示。
现有的掩码图像建模方法根据重构目标可大致分为3种:重构低级图像元素,如原始像素、重构手工设计特征和重构视觉标记。
在CV领域, BEiT是最早应用这种思想的工作之一。BEiT使用一个预训练的标记器(tokenizer)将图像编码成一系列标记(token),然后随机掩蔽部分标记,要求模型预测被掩蔽的标记。之后,掩码自动编码机(MAE)方法被提出。MAE进一步简化了这种框架,直接在图像的切片上进行随机掩蔽,不需要引入额外的标记器,重构目标也从标记变为直接预测像素值,这使得MAE的训练速度比BEiT有了大幅提升。BEiT的后续改进工作BEiT 2加入了[CLS]符号以建模图像的全局信息,并提出使用VQ-KD方法对图像进行高级语义编码。BEiT 2的掩码图像建模了图像的高级语义信息,并在多个计算机视觉任务上取得了进一步提升。还有一些研究者提出了使用知识蒸馏和自蒸馏的方法预测掩码位置的图像特征。
利用掩码图像建模方法,随着模型参数规模和训练数据规模的扩大,模型在下游视觉任务上的性能可以随之提升,这一性质对于开发视觉基础模型非常重要。EVA是掩码图像建模应用到视觉基础模型中的一个代表性工作。EVA的研究者们探索了不同的前置任务。他们发现,简单地根据可见的图像块重构被掩蔽的CLIP模型的图像编码视觉特征是非常高效的。EVA使用了2 960万无标签图像进行掩码图像预训练,并将模型参数规模扩展到11亿。在这种规模的预训练下,EVA通过少量样本的微调在图像分类、目标检测和语义分割等任务上取得了当时的最高水平。
掩码图像建模与自然语言处理中的掩码语言建模思想类似,无需标签即可通过自监督方法学习到鲁棒的视觉表征。在掩码图像建模中,每个图像块被形式化为一个标记,每个标记都是一个独立的单元,在预训练过程中恢复被掩码的图像块标记。这一过程充分利用了 Transformer这种基础网络结构的优势。掩码图像建模展现出了“可扩展”的重要特性,随着模型参数规模和训练数据规模的扩大,模型在下游视觉任务上的性能可以随之提升,这一性质对于开发视觉基础模型非常重要。掩码图像建模为视觉基础模型的构建提供了一个重要的预训练方法。目前研究者们正在从探索不同的重构目标、更复杂的网络设计、从其他模态引入监督信息等方向对掩码图像建模进行改进。
视觉基础模型介绍
3.1 基于混合专家的基础模型
随着深度学习模型以及基础模型的发展,扩大网络参数规模以提高模型性能已经成为一种常用手段。然而,这类大规模参数的模型在训练和推理阶段都需要消耗很高的算力成本。一个主要原因是这类网络属于参数稠密型网络,在处理实例时需要激活所有参数。相比之下,MoE可以通过参数子集的方式提高整体模型的参数规模,同时在训练和推理时保持成本基本不变。基于MoE的基础模型在NLP领域非常流行。
Hochreiter和Schmidhuber(1997)
最早在长短程记忆网络(LSTM)层中直接添加一个MoE层,从而将标记通过路由分配到对应专家层,并通过实验结果验证了MoE机制的有效性。基于MoE的基础模型已经在NLP领域取得了很大的突破,在很多任务上表现出色。参数规模上,在NLP领域文本类的基础模型已经达到了千亿、万亿级别,如国外的GPT-3模型、国内的悟道2.0和阿里M6大模型等。其中,基于MoE的基础模型能够以更少的资源进行训练和推理,同时使模型的参数扩展到万亿规模,其中一个代表性的工作是由谷歌提出的Switch Transformer。Switch Transformer在保持计算成本基本恒定的同时,使用了一种简化的路由算法将模型参数扩展到1.6万亿。Switch Transformer的训练时间比T5模型提高了7倍,并且在101种语言的测评指标上超过了mT5-base模型。
V-moe是第一个将MoE结构设计引入视觉基础模型设计的工作。V-moe以稀疏的MoE层取代了ViT种前馈层的一部分子集网络,其中每个图像切片都被路由到专家网络对应的子集。V-moe探索了各种网络设计方案,提出了一种对于MoE架构视觉基础模型的有效预训练和下游任务迁移方法。V-moe的参数量达到了150亿规模,成为当时规模最大的视觉基础模型。V-moe通过调节输入或模型权重的稀疏程度,可以平滑地调整已训练模型的性能与推理成本之间的平衡。商汤科技和上海人工智能实验室联合提出了书生视觉基础大模型INTERN。INTERN的目标是解决当前CV领域中存在的任务通用、场景泛化和数据效率等一系列瓶颈问题。INTERN设计了3种不同等级的专家网络,分层次解决不同难度的视觉任务。INTERN模型在4类视觉核心任务的26个公开数据集上进行了评估,结果显示在只使用10%训练数据进行微调的情况下,INTERN模型在大多数情况下都超过了使用全部训练数据的对比模型。
Zhu等人(2022)
提出了Uni-Perceiver-MoE模型,在通用视觉感知模型中引入了条件MoE。通过条件MoE,Uni-Perceiver模型可以有效地减轻任务和模态之间的干扰,并通过对1%的下游数据的快速调整,在一系列下游任务上获得最先进的结果。同时,Uni-Perceiver模型有效减轻了推理消耗,保持了低计算和存储成本。
MoE的网络结构中部分参数由整个网络结构共享。目前主要的参数共享方式包括软参数共享(每个专家拥有独立的模型和参数,但是通过正则化结构可以获得其他专家的内部信息)、硬参数共享方式(每个专家拥有共享的网络参数)。Task-MoE提出一种将两种参数共享方式结合用于多任务学习的方法。Task-MoE在任务间共享自注意力模块并且基于一个任务级的路由选择任务特定的网络。百度提出的UFO(unified feature optimization)视觉基础模型受这个工作启发,在任务级路由的基础上加入剪枝机制。UFO不仅提高了模型在下游子任务的精度,同时控制了子任务模型规模,减少了推理时的算力消耗。UFO大模型的参数规模达到了170亿,在28个公开视觉评测数据集上达到了最高水平。
除了面向多任务的MoE基础模型,微软提出的BEiT-3基础模型将特定模态专家引入基础模型设计。考虑到过去的一些MoE基础模型无法进行跨模态的参数共享,BEIT-3分别设计了视觉专家、语言专家和多模态专家负责不同的模态任务。BEiT-3在目标检测、语义分割和图像分类等评价基准上获得了当时的最高水平。
英伟达的研究者提出了一种数据和参数高效的基础模型Prismer。Prismer利用一系列预训练的领域专家模型,并在专家集合的训练过程中保持参数固定,只对少量模型组件进行训练。Prismer仅使用了1300万公开图像数据进行训练,在图像分类等任务上取得了与需要更大量数据训练的模型相当的优秀性能。
3.2 基于通用视觉表征主干的基础模型
传统深度学习模型在处理多场景下的复杂视觉任务时具有局限性。传统的深度学习模型尤其是CNN虽然在特定的视觉任务上取得了显著的成效,但在迁移到新的未知视觉环境时,其效果表现通常较差。这种局限性根源在于CNN网络结构的特性。CNN网络架构倾向于强化输入数据中的特定偏置,这种对于特定任务的偏置可能导致CNN在面对多样化或偏差与训练数据不一致的数据集时,泛化能力受限。针对传统深度学习网络的这一缺陷,学界开始寻求更加灵活和广泛适用的模型架构,以实现泛化能力更为强大的通用视觉表征。
近年来,ViT经大规模训练后在小数据集上超越传统神经网络,但处理图像算力消耗大。微软亚研院提出的 Swin Transformer 采用分层和移动窗口设计,处理大尺寸图像计算效率高,且易集成到不同图像及视觉任务中,在视觉核心任务上表现出色。
Swin Transformer V2对Swin Transformer进行了进一步升级。Swin Transformer V2成功地训练了一个30亿参数的通用视觉表征主干模型,能够处理更高分辨率的图像。
BEiT模型借鉴NLP基础模型BERT的思想,提出了一种新的自监督视觉表征模型,通过掩码图像建模任务对ViT进行预训练。这一方法不仅在图像分类和语义分割等下游任务上展现出当时的最优能力,还验证了BEiT这种通用视觉表征主干在区分图像语义区域和视觉对象边界方面具有出色的能力。
EVA 融合了对比学习和掩码图像建模的思想,目前被广泛应用作为通用视觉表示主干网络之一,对于视觉基础模型的研究领域具有重要的影响力。EVA 在具有挑战性的大词汇表实例分割任务上取得了巨大进步。
除了基于Transformer结构的通用视觉表征主干网络之外,一些研究工作也提出了基于其他网络结构的视觉主干网络。由商汤科技研究者提出的Internimage模型展示出了基于可变形卷积神经网络的大型视觉基础模型。与传统的卷积神经网络相比,可变形卷积神经网络增加了对卷积核形态调整能力,可以根据输入数据动态偏移。Internimage首次在4亿预训练图像上将基于CNN架构的通用视觉主干网络扩展到10亿参数规模,并在目标检测任务上达到了当时的最优水平,证明了卷积网络也具有成为大规模视觉基础模型组件的潜力。
一些研究工作尝试将CNN的高效计算优势与Transformer的全局注意力优势结合起来,HiViT是其中的一个代表性工作,其解决了掩码图像建模预训练任务中计算量大和内存消耗多的问题,使得视觉主干具有对于图像分层建模的能力。面对ImageNet分类任务,HiViT在同等参数量的情况下获得了超过ViT模型0.6%精确度以及相对Swin Transformer模型1.9倍的加速比。
3.3 对齐语言模态的视觉基础模型
计算机视觉中的核心任务包括图像分类、物体检测等。这些任务的主要目标是将有意义的语义概念分配到对应的视觉实例中,例如整幅图像或者是图像部分区域。传统的计算机视觉系统需要在一个预先设定好的视觉概念集合中进行训练并且预测。这也就是计算机视觉中所说的闭集问题(close set),例如在ImageNet 和JFT300M中的图像类别标签以及COCO数据集中的物体类别标签。
随着计算机视觉技术的发展,在很多特定数据集任务上深度学习模型已经获得了接近人类甚至超越人类的性能。尽管如此,由于缺乏对不在训练集中未知类别的识别能力,这种在视觉概念闭集中进行特定任务的范式限制了模型的泛化性和任务通用性。例如,传统图像分类任务是从预先定义范围的图像集中学习特征,很难将分类能力迁移到语义概念在预定义范围外的图像集中。针对这些问题,研究人员提出利用文本作为监督信息以增强视觉模型应对开集问题(open set)能力的方法。相对于传统视觉网络中将语义概念在分类头结构中进行区分这种将语义概念过于简化的处理方式,最近提出的新方法通常将语义信息通过文本编码器进行处理。这类处理方法能够使得编码后的语义概念具有远超简单物体标签的语义丰富度,使得语义概念的覆盖范围获得极大拓展。
由OpenAI提出的CLIP模型是图像文本融合对齐方面的开创性工作。研究人员利用算力优势,使用网络爬取的4亿个图像文本对进行CLIP模型的预训练。此外,作者使用对比学习方法构建CLIP模型的跨模态对齐和零样本学习能力。CLIP模型的图像文本对齐能力具体构建步骤为:将图像和文本分别进行特征提取编码后计算图像文本对的余弦距离,通过对比损失来拉近匹配的图像文本对的距离、拉远不匹配的图像文本对的距离,以此在特征空间建立起图像和文本之间的联系。
如CLIP等此类模型将图像模态和语言模态在同一特征空间进行对齐,其训练目标函数为
式中,
表示图像到文本的损失,
表示文本到图像的损失。具体为
CLIP的整体损失由
和
求和。
计算了在一个样本批次
中,正确匹配图像嵌入
和
的对数概率。表达式
计算了图像和文本嵌入的点积经过温度参数
τ
缩放后的指数,表示它们的相似度。分母对批次中所有文本嵌入的这些值进行求和,作为一个归一化因子。
的表达与
类似,但专注于将文本对齐到图像。
CLIP模型在零样本分类任务上取得了超过有监督学习的经典网络ResNet50的性能。得益于整体网络结构简单、兼容多种图像、文本编码器以及其开源的特性,CLIP对后续的基础模型方面的研究影响很大。很多基础模型的工作基于CLIP的研究展开,利用CLIP强大的跨模态对齐能力提升模型在下游任务上的表现。CLIP开启了在基础视觉任务中借助图像文本模态匹配、以自然语言作为监督辅助提升图像任务效果这种新范式的先河,研究者们在此范式基础上提出一系列改进的方法。
如
图2
所示,CLIP模型使用网络收集的4亿对图文匹配数据进行训练。这种规模巨大的网络数据集的收集和清洗会占用大量人力物力资源,从而限制了数据集规模以及模型规模的进一步扩大。鉴于此,谷歌的研究者提出了ALIGN基础模型。ALIGN使用简单的dual encoder结构在一个共享隐空间匹配视觉、语言两种表征,并且在18亿规模的含噪声图文数据集上进行训练。ALIGN模型在零样本任务上取得了当时最优性能,说明通过图文数据集规模的扩张,即使数据含噪声较大也能促进模型性能的提升。
图2 CLIP示意图
CLIP和ALIGN模型奠定了视觉语言特征对齐的视觉基础模型的双塔结构,即广义上的图像编码器和文本编码器。双塔结构中的图像编码器和文本编码器分别对数据集中已经配对的图像和文本进行编码,同时通过对比学习算法最小化对比损失函数,从而将编码后的图像特征和文本特征进行匹配对齐。