DL-Paper精读:CPVT-可变Position encoding

Do We Really Need Explicit Position Encodings for Vision Transformers?

https://arxiv.org/abs/2102.10882

Background

近两年,Transformer结构进军CV领域,并以席卷之势相继攻克了分类,检测,分割等等任务。因为CNN所关注的是有限感受野内的信息,而Transformer的自注意力机制则可以捕获长距离信息,并且根据图像尺寸而动态地调整其感受野,因此Transformer能够在各个任务领域获得相比CNN更高的精度。

Related work and the limit

在传统的NLP任务中,RNN等序列模型,自身便包含了词的位置信息。而Transformer模型采用Attention机制来学习各个词之间的关系,抛弃了它们的位置信息。但在语言理解中,位置信息是非常重要的,因此需要显式地生成position encoding,手动加入各点的位置信息。而对于图像领域的Vision Transformer,二维图像各个patch之间的相对位置关系也对物体的模式理解有重要的作用。

常见的position encoding方式包括绝对位置编码和相对位置编码等。目前常用的一般是绝对位置编码,包括在Transformer中提出的sinusoidal编码方式,以及在GPT,ViT等中所使用的可训练的位置编码等。但是这种绝对位置编码针对特定分辨率的任务,在训练时就会生成固定尺寸的编码,无法处理不同分辨率大小的图片,这极大地妨碍了Transformer地灵活性和更大的应用空间。常见的处理方式是在处理不同分辨率的图像时,对训练好的position encoding进行插值适用,但需要fine-tune来恢复,不然会造成较大的精度下降。

相对位置编码是一种关注于各个点之间相对距离的位置编码方式,而不是关注于绝对位置,因此也能够处理不同尺寸输入的问题,针对2D图像也有基于余弦相似度的相对编码方式被提出。但是相对位置编码方式一般需要改变标准的Transformer结构,减缓了模型的训练和运行速度,同时现有的工作相比于绝对位置编码在性能方面并不具备优势。

Novel Points

Motivaton: 提出一种能够根据不同尺寸输入改变长度的position encoding 方式。满足以下三个条件:1、性能优越;2、避免permutation equivariance(个人理解就是position-aware,能够感知输入信息的顺序不同);3、易于实现。

Method出发点:采用基于锚点和邻近点关系的方式来进行位置编码:``Another one is to define a reference point and to describe the relationship within a local neighborhood``。这种方式本质上是一种根据邻近点相对关系确定绝对位置坐标的方式,因此可以处理变长的输入尺寸。基于该出发点,首先需要明确的两个问题是:1、确立邻近点关系(relationship of local neighbors),文中采用了2D图像特征+卷积来实现;2、参考点(reference point)的选取,借用图像边缘位置的zero padding来实现。(参考文献23中研究了卷积+padding实现隐式的绝对位置编码)

Methodology

基于以上motivation和出发点思考,文中提出了一种新的位置编码生成方式(Positional Encoding Generator, PEG),结构如图所示。

DL-Paper精读:CPVT-可变Position encoding

PEG可以取代原有的PE方式,坠在靠前的Encoder层之后,来为网络中加入位置信息。具体结构很简单:1. 对上一个encoder的输出DL-Paper精读:CPVT-可变Position encoding进行reshape,回退为2D的图像形式DL-Paper精读:CPVT-可变Position encoding ;2、对该2D信息进行一个2D的transformation操作(2D卷积,可分离卷积等都可适用)来进行局部信息的提取;3、对新生成的tensor重新reshape到序列化信息格式DL-Paper精读:CPVT-可变Position encoding作为输出。由于class token中不包含位置相关信息,因此将其隔离不参与PEG的操作。

基于所提出的PEG模块,文中提出了CPVT(Conditional Position encodings Visual Transformer),相比于不带PE的DeiT,该结构取得了较好效果。但有一个问题是,如何证明所提出的PEG模块真的是加入了位置信息的考虑,而不只是提高了精度。文中对第二个Encoder的输出序列信息进行分析,计算相关性(normalized self-attention score matrix)并可视化如下(个人感觉Fig3,4的对比有些混乱,应该都用相同的模式来进行比较)。并给出结论:DieT中去掉PE精度下降的原因就是前层encoder没能很好地提取到邻近点的相关性,而CPVT则可以生成与带PE的DeiT学习到类似的位置图式(Schema of Locality)。

DL-Paper精读:CPVT-可变Position encodingDL-Paper精读:CPVT-可变Position encoding

Evaluation

实验主要是基于DeiT进行了改进和对比试验,结果如表格所示:直接训练结果CPVT相比于DeiT有一定的提升;亮点在于当不经过fine-tune直接迁移到384的图像上时,DeiT出现较大的精度下降,而CPVT精度还有所上升。这表明了CPVT解决了绝对位置编码针对不同尺寸输入的适应能力。此外,在Detection任务上进行了泛化能力的证明。

DL-Paper精读:CPVT-可变Position encoding

Thoughts:

  • Describe what the authors of the paper aim to accomplish, or perhaps did achieve.

实现一种有效处理不同尺寸输入的位置编码方式

  • If a new approach/ technique/ method was introduced in a paper, what are the key elements of the newly proposed approach?

采用锚点+邻近点位置关系的方法,来实现图像的绝对位置编码。使用卷积有效地提取了邻近点之间地relationship,实现了与标准PE-DeiT类似的locality schema。

  • What content within the paper is useful to you?

文中分析locality schema及信息相关性等部分也有利于我们的研究工作;

提出的位置编码方式如果经实验证明有效,可能会成为一种通用的编码范式

  • Which parts are not perfect, or need to be improved or researched further?

精度相对来说并无很大的提升,尤其是迁移到384时,文中只给出了不经过fine-tune的结果。而DeiT-384在经过fine-tune之后精度是要比文中的结果高很多,不知CPVT在fine-tune之后的结果怎么样?

上一篇:机器学习系统或者SysML&DL笔记(一)


下一篇:<dl>