Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

华为诺亚方舟实验室作者

华为诺亚调研200多篇文献,视觉Transformer综述入选TPAMI 2022

华为诺亚方舟实验室联合北大和悉大整理了业界第一篇视觉Transformer综述。

2021 年对计算机视觉来说是非常重要的一年,各个任务的 SOTA 不断被刷新。这么多种 Vision Transformer 模型,到底该选哪一个?新手入坑该选哪个方向?华为诺亚方舟实验室的这一篇综述或许能给大家带来帮助。


  • 综述论文链接:https://ieeexplore.ieee.org/document/9716741/

  • 诺亚开源模型:https://github.com/huawei-noah

  • 华为 A+M 社区:https://www.mindspore.cn/resources/hub


引言

如何将 Transformer 应用于计算机视觉(CV)任务,引起了越来越多研究人员的兴趣。在过去很长一段时间内,CNN 成为视觉任务中的主要模型架构,但如今 Transformer 呈现出巨大的潜力,有望在视觉领域中打败 CNN 的霸主地位。谷歌提出了 ViT 架构,首先将图像切块,然后用纯 Transformer 架构直接应用于图像块序列,就能完成对图像的分类,并在多个图像识别基准数据集上取得了优越的性能。除图像分类任务之外,Transformer 还被用于解决其他视觉问题,包括目标检测(DETR),语义分割(SETR),图像处理(IPT)等等。由于其出色的性能,越来越多的研究人员提出了基于 Transformer 的模型来改进各种视觉任务。为了让大家对视觉 Transformer 在这两年的飞速发展有一个清晰的感受,图 1 展示了视觉 Transformer 的发展里程碑,从图像分类目标检测,从图片生成到视频理解,视觉 Transformer 展现出了非常强的性能。

图 1 视觉 Transformer 的发展历程

对于很多刚接触视觉 Transformer 的研究员,看到这么多模型架构或许一时没有头绪,在面对具体应用需求的时候,也不知道选哪一个视觉 Transformer 架构。另外,想做视觉 Transformer 的同学也经常在问还有没有新方向可以挖掘。这些问题或多或少的都可以从这一篇涵盖了 200 多篇前沿论文的综述中找到答案:

  • 按照视觉 Transformer 的设计和应用场景,本文对视觉 Transformer 模型进行了系统性的归类,如表 1 所示:骨干网络、高 / 中层视觉、底层视觉、多模态等,并且在每一章中针对任务特点进行详细分析和对比;

  • 本文针对高效的视觉 Transformer 进行了详细的分析,尤其是在标准数据集和硬件上进行了精度和速度的评测,并讨论了一些 Transformer 模型压缩和加速的方法;

  • 华为是一家具有软硬件全栈 AI 解决方案的公司,基于 A+M 生态,在 Transformer 领域已经做出了很多有影响力的工作,基于这些经验并且联合了业界知名学者一起进行了深入思考和讨论,给出了几个很有潜力的未来方向,供大家参考。


表 1 视觉 Transformer 代表性工作

华为诺亚方舟实验室 Transformer 系列工作:

  1. NLP 大模型盘古 Alpha:https://arxiv.org/abs/2104.12369

  2. 中文预训练模型哪吒:https://arxiv.org/abs/1909.00204

  3. 轻量模型 TinyBERT:https://arxiv.org/abs/1909.10351

  4. 底层视觉 IPT:https://arxiv.org/abs/2012.00364

  5. 多模态 - 悟空:https://arxiv.org/abs/2111.07783

  6. 骨干网络架构 TNT:https://arxiv.org/abs/2103.00112


骨干网络

视觉 Transformer 的所有组件,包括多头自注意力多层感知机、残差连接、层归一化、位置编码和网络拓扑结构,在视觉识别中起着关键作用。为了提高视觉 transformer 的精度和效率,业界已经提出了许多模型。下表总结了视觉 Transformer 骨干网络的结果,可以更好分析现有网络的发展趋势。从图 2 中的结果可以看出,将 CNN 和 Transformer 结合起来可以获得更好的性能,这表明卷积的局部连接和注意力的全局连接能够相互补充。

表 2 代表性 CNN 和 Transformer 网络在 ImageNet 结果的对比。

图 2 代表性 CNN 和 Transformer 网络的 FLOPs / 吞吐量对比

目标检测

基于 Transformer 的目标检测方法也引起了广泛的兴趣,这些方法大致可以分为两类:基于 Transformer 的检测集合预测方法和基于 Transformer 骨干网络的检测方法。与基于 CNN 的检测器相比,基于 Transformer 的方法在准确性和运行速度方面都表现出了强大的性能。表 3 展示了在 COCO 数据集上基于 Transformer 的不同目标检测器的性能。

将 Transformer 用于中高层视觉任务,在输入 embedding、位置编码、损失函数以及整体架构设计等方面都有较多的探索空间。一些现有方法从不同角度改进自注意力模块,如变形注意力机制和自适应聚类。尽管如此,利用 Transformer 来解决中高层视觉任务的探索仍处于初步阶段,需要整个业界进一步的研究。例如,在 Transformer 之前是否有必要使用 CNN 或 PointNet 等特征提取模块以获得更好的性能?如何像 BERT 和 GPT-3 在 NLP 领域所做的那样,使用大规模的预训练数据充分利用 Transformer 的特性?如何通过结合特定任务的先验知识来设计更强大的体系结构?之前的一些工作已经对上述问题进行了初步讨论,期待有更多研究来探索更强大的视觉 Transformer。除了目标检测,Transformer 还被应用于其他中高层视觉任务,如图像分割人体姿态估计、目标跟踪等,详细内容可参考原论文。

表 3 基于 Transformer 的目标检测器在 COCO2017 上的结果对比

底层视觉

底层视觉是计算机视觉领域的一个重要问题,如图像超分辨率和图像生成等,而目前也有一些工作来研究如何将 Transformer 应用于底层视觉中来。这些任务通常将图像作为输出(高分辨率或去噪图像),这比分类、分割和检测等高层视觉任务(输出是标签或框)更具挑战性。图 3 和图 4 展示了在底层视觉中使用 Transformer 的方式。在图像处理任务中,首先将图像编码为一系列 token,Transformer 编码器使用该序列作为输入,进而用 Transformer 解码器生成所需图像。在图像生成任务中,基于 GAN 的模型直接学习解码器生成的 token,通过线性映射输出图像,而基于 Transformer 的模型训练自编码器学习图像的码本,并使用自回归 Transformer 模型预测编码的 token。而一个有意义的未来研究方向是为不同的图像处理任务设计合适的网络架构。

图 3 基于 Transformer 的图像生成

图 4 基于 Transformer 的图像处理

多模态

许多研究开始热衷于挖掘 Transformer 在处理多模态任务(如视频 - 文本、图像 - 文本和音频 - 文本)的潜力。CLIP 是其中影响力较大的一个工作, 其将自然语言作为监督信号,来学习更有效的图像表示。CLIP 使用大量文本图像对来联合训练文本编码器和图像编码器。CLIP 的文本编码器是一个标准的 Transformer,具有 mask 的自注意力层;对于图像编码器,CLIP 考虑了两种类型的架构:ResNet 和视觉 Transformer。CLIP 在一个新采集的数据集上进行训练,该数据集包含从互联网上收集的 4 亿对图像 - 文本对。CLIP 展示了惊人的零样本分类性能,在 ImageNet-1K 数据集上实现了 76.2% top-1 精度,而无需使用任何 ImageNet 训练标签。华为诺亚的悟空(英文名:FILIP)模型使用双塔架构构建图文表征,取得了更好的效果,如图 5 所示。总之,基于 transformer 的多模态模型在统一各种模态的数据和任务方面显示出了其架构优势,这表明了 transformer 具备构建一个能够处理大量应用的通用智能代理的潜力。

图 5 FILIP 框架

高效 Transformer

尽管 Transformer 模型在各种任务中取得了成功,但它们对内存和计算资源的高要求阻碍了它们在端侧设备(如手机)上的部署。文章还回顾了为高效部署而对 Transformer 模型进行压缩和加速的研究,这包括网络剪枝、低秩分解、知识蒸馏、网络量化和紧凑结构设计。表 4 列出了一些压缩 Transformer 模型的代表性工作,这些工作采用不同的方法来识别 Transformer 模型中的冗余。具体来说,剪枝侧重于减少 Transformer 模型中组件(例如,层、头)的数量,而分解将原始矩阵表示为多个小矩阵。紧凑模型也可以直接手动(需要足够的专业知识)或自动(例如通过 NAS)设计来得到。

表 4 Transformer 压缩代表性工作

未来展望

作为一篇综述论文,对所探究的领域未来方向的牵引也是非常重要的。本文的最后,也为大家提供了几个有潜力并且很重要的方向:

  • 业界流行有各种类型的神经网络,如 CNN、RNN 和 Transformer。在 CV 领域,CNN 曾经是主流选择,但现在 Transformer 变得越来越流行。CNN 可以捕捉归纳偏置,如平移等变和局部性,而 ViT 使用大规模训练来超越归纳偏置。从现有的观察来看,CNN 在小数据集上表现良好,而 Transformer 在大数据集上表现更好。而在视觉任务中,究竟是使用 CNN 还是 Transformer,或者兼二者之所长,是一个值得探究的问题。

  • 大多数现有的视觉 Transformer 模型设计为只处理一项任务,而许多 NLP 模型,如 GPT-3,已经演示了 Transformer 如何在一个模型中处理多项任务。CV 领域的 IPT 能够处理多个底层视觉任务,例如超分辨率、图像去雨和去噪。Perceiver 和 Perceiver IO 也是可以在多个领域工作的 Transformer 模型,包括图像、音频、多模态和点云。将所有视觉任务甚至其他任务统一到一个 Transformer(即一个大统一模型)中是一个令人兴奋的课题。

  • 另一个方向是开发高效的视觉 Transformer;具体来说,如果让 Transformer 具有更高精度和更低资源消耗。性能决定了该模型是否可以应用于现实世界的应用,而资源成本则影响其在硬件设备上的部署。而通常精度与资源消耗息息相关,因此确定如何在两者之间实现更好的平衡是未来研究的一个有意义的课题。

  • 通过使用大量数据进行训练,Transformer 可以在 NLP 和 CV 不同任务上得到领先的性能。最后,文章还留下一个问题:Transformer 能否通过更简单的计算范式和大量数据训练获得令人满意的结果?

入门Transformer华为诺亚方舟实验室
相关数据
华为机构

华为创立于1987年,是全球领先的ICT(信息与通信)基础设施和智能终端提供商。

https://www.huawei.com/cn/
图像分割技术

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像索赋予相同的编号。

多层感知机技术

感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

智能代理技术

智能代理,或译为智能主体。在人工智能领域,智能代理是指一个可以观察周遭环境并作出行动以达致目标的自主实体。它通常是指一个软件程序。“智能代理”是目前人工智能研究的一个核心概念,统御和联系着各个子领域的研究。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

先验知识技术

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

图像生成技术

图像生成(合成)是从现有数据集生成新图像的任务。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

层归一化技术

深度神经网络的训练是具有高度的计算复杂性的。减少训练的时间成本的一种方法是对神经元的输入进行规范化处理进而加快网络的收敛速度。层规范化是在训练时和测试时对数据同时进行处理,通过对输入同一层的数据进行汇总,计算平均值和方差,来对每一层的输入数据做规范化处理。层规范化是基于批规范化进行优化得到的。相比较而言,批规范化是对一个神经元输入的数据以mini-batch为单位来进行汇总,计算平均值和方法,再用这个数据对每个训练样例的输入进行规整。层规范化在面对RNN等问题的时候效果更加优越,也不会受到mini-batch选值的影响。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

人体姿态估计技术

人体姿态估计是计算机视觉领域的一个重要问题,主要用于跟踪一个人的每一个小动作并实时进行生物力学分析。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

推荐文章
暂无评论
暂无评论~