Vision Transformer综述翻译

本文提供了一份视觉Transformer的综述,详细介绍了Transformer从自然语言处理到计算机视觉任务的拓展,特别是在图像分类、高级视觉、低级视觉和视频处理中的应用。Transformer的自注意力机制和多头注意力层是其核心,使其能捕获长距离特征并高效处理信息。随着iGPT和ViT等模型的提出,Transformer在图像分类任务中展现出竞争力。同时,Transformer还被应用于目标检测、语义分割、视频理解和更多视觉任务,显示了其在处理复杂视觉信息方面的潜力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视觉Transformer综述

摘要

​ Transformer是一种基于最初应用在自然语言处理领域上的自注意力机制的深度神经网络。受Transformer强表征能力的启发,研究人员将它扩展到计算机视觉任务上。与卷积网络和循环网络等其他网络类型相比,基于Transformer的模型在各种视觉基准上表现出竞争性甚至更好的性能。在这篇文献综述,我们通过将这些可视化Transformer模型应用在不同类别的任务中,并且对它们的优缺点进行了分析。特别地,主要类别包括基本图像分类、高级视觉、低级视觉和视频处理。也会简要回顾计算机视觉中的自注意力机制,因为自注意力机制是Transformer的基本组成部分。有效的Transformer模型推动了Transformer进入实际应用。最后,讨论了可视化Transformer的进一步研究方向。

1. 引言:

深层神经网络已经成为现代人工智能系统的基础设施。已经提出了各种网络类型来处理不同的任务。由线性层和非线性激活组成的多层感知机或者说全连接层是经典的神经网络。卷积神经网络[CNN]引入了卷积层和池化层,用于处理像图像这样移位不变的数据。循环神经网络[RNN]利用循环单元来处理序列数据或时间序列数据。Transformer是一种新提出的网络,主要运用自注意力机制提取内在特征。在这些网络中,Transformer是最近发明的神经网络,但却在广泛的人工智能应用领域显示出了的巨大潜力。

Transformer最初应用于自然语言处理(NLP)任务,并带来了显著的改进。例如,V aswani等人首先提出了仅基于注意力机制的Transformer模型用于机器翻译和英语选区解析任务。Devlin等人介绍了一种新的语言表示模型,称为BERT,它通过对左右两个上下文的联合调节,从未标记的文本中预先训练一个转换器。BERT获得了当时11个自然语言处理任务的最好结果。Brown等人在45TB压缩明文数据上预训练了基于GPT-3模型的具有1750亿个参数的巨大Transformer模型,并且在不同类型的下游自然语言任务上实现了强性能而无需微调。这些基于Transformer的模型表现出很强的表现能力,并在自然语言处理领域取得了突破。

受自然语言处理中Transformer能力的启发,最近研究人员将Transformer扩展到计算机视觉任务。CNN过去是视觉应用的基本组成部分,但是Transformer正在展示它作为CNN之外的另一种选择的能力。Chen等人训练一个序列Transformer对像素进行自回归预测,并与CNN相比在图像分类任务上取得有竞争力的结果。ViT是Dosovitskiy等人最近提出的视觉Transformer模型。它将单纯的Transformer模型直接应用于小块图像序列,并在多个图像识别基准上获得最先进的性能。除了基本的图像分类之外,Transformer还被用来解决更多的计算机视觉问题,如对象检测、语义分割、图像处理和视频理解。由于其优异的性能,越来越多的基于Transformer的模型被提出用于改进各种视觉任务。

image-20210615113030319

基于Transformer的视觉模型如雨后春笋般涌现,这导致我们难以跟上新进展的速度。因此,对现有的视觉模型进行调查是很有必要的,并且也对整个社区是有益的。在这篇文章中,我们重点提供了视觉Transformer的最新进展的综合概述,并讨论了进一步改进的潜在方向。为了更好地存档和方便不同主题的研究人员,我们按照应用场景对Transformer模型进行分类,如表1所示。特别地,主要场景包括基本图像分类、高级视觉、低级视觉和视频处理。高级视觉处理图像[121]中所见内容的解释和使用,例如对象检测、分割和车道检测。有许多Transformer模型解决了这些高层次的视觉任务,如DETR [14],用于对象检测的可变形DETR [155]和用于分割的Max-DeepLab [126]。

低级图像处理主要涉及从图像(通常表示为图像本身)中提取描述[35],其典型应用包括超分辨率、图像去噪和风格转换。低级视觉中很少有作品[17,92]使用Transformer,需要更多的研究。视频处理是计算机视觉中除了基于图像的任务之外的重要组成部分。由于视频的顺序特性,Transformer可以自然地应用于视频[154,144]。与传统神经网络CNNs或者RNNs相比,Transformer在这些任务上开始显示出竞争优势。在这里,我们对这些基于Transformer的可视化模型的工作进行了调查,以跟上这一领域的进展。视觉Transformer的发展时间表如图1所示,我们相信越来越多的优秀作品将被镌刻在里程碑上。

image-20210615113127167

论文的其余部分组织如下。第二节首先介绍自注意力机制和标准Transformer。我们在第3节中描述了自然语言处理中的Transformer方法,因为研究经验可能对视觉任务有益。接下来,第四部分是论文的主要部分,总结了图像分类、高级视觉、低级视觉和视频任务的视觉转换模型。我们还简要回顾了自注意力机制的CV和有效的Transformer方法,因为它们与我们的主题密切相关。最后,我们给出了结论并讨论了几个研究方向和挑战。

2. Transformer概述:

Transformer [123]首次应用于自然语言处理中的机器翻译任务。如图2所示,它由一个编码器模块和一个解码器模块组成,具有几个相同结构的编码器/解码器,每个编码器由自注意力层和前馈神经网络组成,而每个解码器由自注意力层、编码解码器注意力层和前馈神经网络组成。在用Transformer翻译句子之前,句子中的每个单词都会被嵌入到一个512维的向量中

image-20210615113136453

2.1 自注意力层:

在自注意力层,输入向量首先被转换成三个不同的向量,即查询向量q、关键向量k和值向量v,向量的维数均为512维。从不同输入得到的向量然后被打包成三个不同的矩阵Q、K、V。之后,通过以下步骤计算不同输入向量之间的注意函数(如图3左侧所示):

  1. 通过公式 S = Q ∙ K T S = Q \bullet K^{T} S=QKT计算不同输入向量之间的得分。

  2. 通过公式 S n = S d k S_{n} = \frac{S}{\sqrt{d_{k}}} Sn=dk S将梯度稳定性的分数标准化.

  3. 使用softmax函数将分数转换为概率: P = s o f t m a x ( S n ) P = softmax(S_{n}) P=softmax(Sn)

  4. 通过公式 Z = V ∙ P Z = V \bullet P Z=VP得到加权矩阵Z,整个过程可以统一为单个函数: Attention ( Q ,   K ,   V   ) =  softmax ( Q ∙ K T d k ) ∙ V \text{Attention}(Q,\ K,\ V\ ) = \ \text{softmax}\left( \frac{Q \bullet K^{T}}{\sqrt{d_{k}}} \right) \bullet V Attention(Q, K, V )= softmax(dk QKT)V (1)

直觉上公式(1)比较简单,第一步计算两个不同向量之间的得分,得分是为了确定当在当前位置对单词进行编码时,我们对其他单词的关注程度。第二步,为了更好的训练,将分数标准化,使其具有更稳定的梯度。第三步,将分数转换成概率。最后,每个值向量乘以加总概率,具有较大概率的向量将被随后的层更多地关注。

image-20210615113151684

解码器模块中的编解码注意力层与编码模块中的自注意力层几乎相同,只是键矩阵K和值矩阵V是从编码器模块中导出的,查询矩阵Q是从前一层中导出的。

注意,上述过程与每个单词的位置无关,因此自注意力层缺乏捕捉一个句子中单词位置信息的能力。为了解决这个问题,在原始输入中添加了一个带有维度 d model d_{\text{model}} dmodel的位置编码,以获得单词的最终输入向量。具体而言,该位置用以下等式编码:

P E ( p o s , 2 i ) = s i n ( pos 1000 0 2 i d model ) {PE}(pos,2i) = sin(\frac{\text{pos}}{10000^{\frac{2i}{d_{\text{model}}}}}) PE(pos,2i)=sin(10000dmodel2ipos)(2)

P E ( p o s , 2 i + 1 ) = c o s ( pos 1000 0 2 i d model ) PE(pos,2i + 1) = cos(\frac{\text{pos}}{10000^{\frac{2i}{d_{\text{model}}}}}) PE(pos,2i+1)=cos(10000dmodel2ipos) (3)

其中pos表示单词在句子中的位置,i表示位置编码的当前维度。

2.2 多头注意力:

自注意力层通过添加一种称为多头注意力的机制来进一步改进,以提高普通自注意力的性能。注意,对于一个给定的参考词,我们在通读句子的时候,往往要重点关注其他几个词。因此,尽管不影响其他位置的注意力也是同等重要的,但是单头自注意力层限制了集中在特定位置(或几个特定位置)的能力。这是通过给注意力层不同的表示子空间来实现的。具体来说,不同的头使用不同的查询、键和值矩阵,并且由于随机初始化,它们可以在训练后将输入向量投影到不同的表示子空间中。

具体来说,给定一个输入向量和头数h,输入向量首先被转换成三组不同的向量,即查询组、关键字组和值组。每组有h个向量,向量维度是 d q ′ = d k ′ = d v ′ = d model h = 64 d_{q^{'} } = d_{k^{'} } = d_{v^{'} } = \frac{d_{\text{model} } }{h} = 64 dq=dk=dv=hdmodel=64。然后,从不同输入得到的向量被打包成三组不同的矩阵 { Q i } i = 1 h 、 { K i } i = 1 h 、 { V i } i = 1 h { \{ Q_{i}\} }_{i = 1}^{h}、{ \{ K_{i}\} }_{i = 1}^{h}、{ \{ V_{i}\} }_{i = 1}^{h} { Qi}i=1h{ Ki}i=1h{ Vi}i=1h,然后多头注意力的处理过程如下:

MultiHead ( Q ′ , K ′ , V ′ ) = C o n c a t ( head 1 , … , head h ) W 0 , \text{Multi}\text{Head}\left( Q^{'},K^{'},V^{'} \right) = Concat\left( \text{head}_{1},\ldots,\text{head}_{h} \right)W^{0}, MultiHead(Q,K,V)=Concat(head1,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值