首页 > 编程知识 正文

视觉转换器的CVPR 2021条件位置编码

时间:2023-05-06 14:05:15 阅读:272867 作者:3803

动机

最近,在分类和检测等视觉识别任务中,transformer被认为是卷积神经网络(CNNs)的一种强有力的替代方法。

与CNNs中的卷积运算具有有限的感受野不同,transformer中的自我注意机制能够捕捉远距离信息,并根据图像内容动态调整感受野。因此,transformer被认为比CNN更灵活、更强大,因此有望在视觉识别方面取得更大进展。

transformer中的自我注意力操作是排列不变的,它不能利用输入序列中token的顺序。

为了缓解这一问题,以前的工作添加了绝对位置编码器到输入序列中的每个token,从而实现顺序感知。位置编码既可以是可学习的,也可以用不同频率的正弦函数固定。尽管这些位置编码是有效的和扩散性的,但它们严重地损害了transformer的灵活性,阻碍了其更广泛的应用。以可学习版本为一个例子,编码通常是与输入序列等长的向量,在训练过程中与网络权值联合更新。因此,一旦训练,编码的长度和值就固定不变。在测试过程中,它会导致处理比训练数据中的序列更长的序列的困难。

对于transformer模型,使用的位置编码面临两个挑战。首先,它阻止了模型处理比最长训练序列更长的序列。其次,由于在每一个块上都添加了一个唯一的位置编码向量,使得模型不是平移不变的。平移不变性在分类任务中起着重要的作用,因为对于图像中的任何目标,都希望网络能给出相同的回应。

由于除了位置编码之外,视觉transformer的所有其他组件(例如,MHSA和FFN)可以直接应用于较长的序列。第一个挑战可以通过重新移动位置编码来解决,但是,由于输入序列的顺序是一个重要的线索,而没有位置编码,模型是没有方法使用顺序的,因此这种解决方案严重影响了系统的性能。在ImageNet上的实验结果表明,通过去除位置编码,Deit-Tiny在ImageNet上的性能显著下降(与原始可学习位置编码相比),从72.2%下降到68.2%。这证实了位置信息在视觉感知中起着非常重要的作用。其次,在DeiT中,可以对位置编码做插值,使其具有与较长序列相同的长度。不过,这种方法需要微调模型几个epoch,否则性能将显著下降。这与所期望的相反。对于更高分辨率的输入,通常期望在不进行任何微调的情况下获得显着的性能改进。另外,相对位置编码可以处理上述两个问题。然而,绝对位置信息对图像识别和分类任务也很重要,相对位置编码不能提供任何绝对位置信息,因此相对位置编码不能像绝对位置编码那样工作。采用相对位置编码的模型性能较差(70.5%对72.2%)。相对位置编码不仅带来额外的计算开销,还需要修改标准transformer的实现步骤。

方法 简介

提出了一种新的位置编码方案,即用于视觉transformer的条件位置编码(CPE)方案,将位置信息整合到transformer中。与传统的使用的预定义和输入无关的固定或可学习的位置编码不同,CPE是在输入token的局部邻域上动态生成和控制的。因此,CPE根据输入大小而改变,并且能够保持期望的平移不变性,可以很容易地通用到比模型在训练期间所见过的更长的输入序列,从而提高分类精度。CPE可以通过简单的位置编码生成器(PEG)轻松实现,并且可以无缝地集成到当前transformer框架中。在PEG的基础上,提出了条件位置编码视觉transformer(CPVT)。

PEG

在视觉transformer中,给定输入大小为H×W的图像,将其分割成大小为S×S的块,块数为N。本论文认为一个成功的视觉任务位置编码应满足以下3个要求:

(1) 使输入序列排列变化但平移不变。

(2) 具有诱导性,能够处理比训练时更长的序列。

(3) 具有一定程度上提供绝对位置的能力。这对性能很重要。

采用位置编码来表征局部关系能够满足上述要求。首先,它是排列变化的,因为输入序列的每次变化也会影响局部邻域的有序性。相反,输入图像中目标的平移可能不会改变其局部邻域中的顺序,即平移不变性。其次,由于模型只涉及一个token的邻域,因此可以很容易地推广到更长的序列。此外,在已知任一输入token的绝对位置的情况下,通过输入token之间的相互关系,可以推断出所有其他token的绝对位置。如果使用零填充,边界上的token可以得到它们的绝对位置。因此,提出了位置编码生成器(positional encoding generator,PEG)来动态地生成基于输入token的局部邻域的位置编码。

为了满足局部邻域的要求,首先在二维图像空间中将DeiT的flatten输入序列x(维度为b×n×c)调整为x’(维度为b×h×w×c)。然后,将一个函数F重复地应用于X’中的局部块,以产生条件位置编码E(维度为b×H×W×C)。PEG可以通过核k(k不低于3)和(k−1)/2个零填充的一个二维卷积有效地实现。注意,这里的零填充对于使模型获知绝对位置是很重要的,并且F可以是各种形式,例如可分离卷积和许多其他形式。

CPVT

在条件位置编码的基础上,提出了条件位置编码视觉transformer(CPVT)。除了位置编码是有条件的,完全遵循ViT和DeiT来设计视觉transformer。设计了三种尺寸的模型,包括CPVT-Ti、CPVT-S和CPVT-B。与DeiT中的原始位置编码类似,条件位置编码也被添加到输入序列中。在CPVT中,PEG的应用位置对性能也有重要影响,本文对此进行了研究。此外,DeiT和ViT都利用额外的可学习类token来做分类。通过设计,类token不是平移不变的,尽管它可以学习成为平移不变的。一个简单的替代方法是直接用全局平均池(GAP)代替它,它在本质上是平移不变的。因此,还提出了CVPT-GAP,其中用全局平均池替换类tokentoken。加上平移不变的位置编码,CVPT-GAP是最可能实现平移不变性,并且可以实现更好的性能。

实验

数据集。遵循DeiT,使用ILSVRC-2012 ImageNet数据集,1K类和1.3M图像来训练所提出的所有模型。在50K图像的验证集上进行测试。与ViT不同,不使用大得多的未公开的JFT-300M数据集。

模型变体。设计了三款不同尺寸的模型,以适应各种计算场景。本文的全部实验均在Tesla V100上进行。训练小模型CPVT-Ti 300个epoch,需要大约使用8个V100 GPU卡在单个节点上运行1.3天。CPVT-S和CPVT-B分别需时约1.6和2.5天。PEG对模型的计算复杂度影响很小,并且使用的参数甚至比DeiT中的原始可学习位置编码更少。

训练细节。使用AdamW优化器在Tesla V100上对所有模型(CPVT-B除外)进行300个epoch的一个全局批量大小为2048的训练。不对超参数调优,严格遵守DeiT中的设置。学习率的比例是按照此公式计算得到:lr=0.0005*全局批量大小/512。对本文方法来说,虽然可能是次优的,但可以获得更具竞争力的结果。

实验证明,与之前的那些学习位置编码相比,CPVT具有视觉相似注意力映射,PEG是平移不变的,且可以直接泛化到更大的图像尺寸,而不需要任何微调。相比于以前的视觉transformer,使用新编码(即CPVT)的视觉transformer可以取得更好的性能。

贡献 提出了一种新的位置编码方案,称为条件位置编码(CPE)。CPE是通过位置编码生成器(PEG)动态生成的,并且可以毫不费力地在当前的深度学习框架中实现,无需对当前transformer API进行任何更改。CPE以输入标记的局部邻域为条件,可以适应任意的输入大小,从而能够处理更高分辨率的图像。相对于目前广泛使用的绝对位置编码,CPE能够保持所需的平移不变性,有助于提高图像分类性能。在CPE的基础上,提出了条件位置编码视觉transformer(CPVT),它在ImageNet上实现了现有视觉转换器中的新的性能水平。除了上面的,还提供了一个正交选项,在去除去错误类token的同时,还使用平移不变全局平均池(GAP)进行类预测。利用GAP,CPVT可以成为完全平移不变性,从而使CPVT的性能提高1%左右。相比之下,基于绝对位置编码的模型由于其位置编码已经打破了平移不变性,只能从GAP中获得很小的性能增益。 小结

论文设计了一种新的位置编码方法(CPE)用于视觉transformer,它保持了所期望的所有性质,同时更加简单,易于实现,成本可以忽略不计。CPE基于每个token的局部邻域动态生成位置编码。CPE实现了比以往的位置编码更强的性能。使用CPE的transformer模型(CPVT)能够自然地处理较长的输入序列,并且在视觉任务中保持期望的平移不变性。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。