Vision Transformer这两年

Transformer模型自2017年在NLP领域崭露头角,近年来逐渐在计算机视觉(CV)领域占据重要地位。Vision Transformer(ViT)的出现打破了CNN在CV的主导地位,尽管ViT面临位置信息处理和计算复杂度等问题,但后续的Swin Transformer通过窗口自注意力和移位窗口解决了这些问题,降低了计算复杂度并提高了性能。此外,DINO等自监督学习方法无需标签就能训练出高性能的模型。Transformer模型在CV的应用正不断推进,未来有望成为视觉领域的新标准。
摘要由CSDN通过智能技术生成

a3c01cbeb43bdf91faf2eb7354741c84.jpeg

作者|Maximilian Schambach
OneFlow编译
翻译|胡燕君、杨婷

在NLP领域取得巨大成功后,Transformer架构在计算机视觉方面的作用日渐凸显,成为越来越普遍的CV工具。自2020年10月Vision Transformer模型推出以来,人们开始高度关注Transformer模型在计算机视觉上的应用。

888a8d4064ace40b3b482d6e56cdf1cb.png图 1:各类Vision Transformer模型的推出时间(此处以论文在arXiv平台上的发表时间为准)

恰逢Vision Transformer推出两周年之际,借此机会我们对其稍作介绍,并讨论这两年来发展出的多种Vision Transformer模型变体以及Transformer在计算机视觉应用方面面临的各种挑战。本文由OneFlow社区编译。
 

1

自注意力机制和Transformer架构

从NLP说起,2017年,Attention is all you need一文提出了Transformer架构(Vaswani et al. 2017)。Transformer架构的本质是一个序列到序列模型:输入的是一种称为token的序列,token在NLP中是指对句子的数学表示。将句子转化为序列,要将句子中的每个词(或子词)映射为一个向量表示,该向量表示称为对应词的embedding(嵌入)。

生成的embedding token序列由Transformer编码器在几个自注意力层和全连接层中处理,然后输出一个与输入长度相同的高级token表示序列。翻译等任务需要使用完整的输出序列,而分类等任务则只需用到单个表示。在分类任务中,要为整个句子或整个段落生成单个表示用于分类,通常会为序列附加一个特殊的可学习嵌入向量 Class_Token([CLS] token)。可以将[CLS] token的表示传入classfier head(分类器头)。

下图是Transformer架构的总览,图左展示了Transformer编码器。自注意力机制是Transformer架构的关键。自注意力层中的所有中间token表示会通过计算成对相似性(pairwise similarities)进行互动,这些成对相似性会成为上一层相应token表示的权重。

97a96e4243e444b9f2b03c494bfd5058.png图 2:Transformer编码器和自注意力机制(图片来自原论文)

为了计算成对相似性,通常会通过简单可学习的线性层从embedding中计算query (Q)、key (K)和value (V)向量,然后所有K和Q之间进行双向softmax自注意力计算,获得各自的相似性,然后将相似性与V相乘。也就是说,在自注意力层中,每个token都通过各自K和Q的简单点积与其他token进行比较,随后再运行(scaled) softmax操作。

如图2右边所示,为了能够在每个阶段学习不同形式的自注意力,Transformer架构使用了多个self-attention head(自注意力头)。具体来说,每个head都映射了来自输入表示的不同Q、K、V向量。例如,在Transformer的某个固定级别,不同的attention head可以关注token之间的短、长距离或语义和句法关系。不同的attention head的输出由线性层进行连接和处理,以便重新获得通过skip connection传递的输入表示的维度。不熟悉Transformers基本概念的读者可以参考原论文获取更多详细信息(https://proceedings.neurips.cc/paper/2017/hash/3f5ee243547dee91fbd053c1c4a845aa-Abstract.html)。
 

2
Vision Transformer模型

从Transformer架构被引进NLP到它在计算机视觉领域(ImageNet图像识别任务)取得SOTA性能,中间隔了3年,这和深度学习研究的迅猛进展相比显得较为缓慢。但从抽象的角度讲,这并不令人意外。毕竟Transformer是序列模型,无法直接兼容图像和视频等高维且近似连续的输入数据类型。与序列不同,图像和视频可被视为从底层连续信号中离散采样的数据。 

此外,Transformer模型没有局部性(locality)和平移不变性(translational equivariance)等归纳偏置(inductive bias),但归纳偏置在处理图像等数据时十分有用。要让Transformer模型习得这些属性,需要使用大量的训练数据。相反,卷积神经网络(CNN)实行归纳偏置,CNN过去十年在视觉领域取得的成功很大程度归功于此。

不过,也有观点认为,没有归纳偏置可以让Transformer架构更具通用性。例如,Transformer模型的浅层即可提取全局信息,但CNN由于感受野(receptive field)较小,只能在神经网络的深层提取全局信息。

从实践角度讲,Transformer模型在计算机视觉领域应用进展缓慢的另一个原因是:Transformer模型的输入序列长度缺乏可扩展性。由于标准的双向自注意力机制中所有token表示都是成对比较的&#x

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值