作者丨小马
编辑丨极市平台
写在前面
由于Transformer对于序列数据进行并行操作,所以序列的位置信息就被忽略了。因此,相对位置编码(Relative position encoding, RPE)是Transformer获取输入序列位置信息的重要方法,RPE在自然语言处理任务中已被广泛使用。
但是,在计算机视觉任务中,相对位置编码的有效性还没有得到很好的研究,甚至还存在争议。因此,作者在本文中先回顾了现有的相对位置编码方法,并分析了它们在视觉Transformer中应用的优缺点。接着,作者提出了新的用于二维图像的相对位置编码方法(iRPE)。iRPE考虑了方向,相对距离,Query的相互作用,以及Self-Attention机制中相对位置embedding。作为一个即插即用的模块,本文提出的iREP是简单并且轻量级的。
实验表明,通过使用iRPE,DeiT和DETR在ImageNet和COCO上,与原始版本相比,分别获得了1.5%(top-1 Acc)和1.3%(mAP)的性能提升(无需任何调参)。
论文和代码地址
论文地址:
https://arxiv.org/abs/2107.14222
代码地址:
https://github.com/microsoft/AutoML/tree/main/iRPE
研究动机
Transformer最近在计算机视觉领域引起了极大的关注,因为它具有强大的性能和捕获Long-range关系的能力。然而,Transformer中的Self-Attention有一个固有的缺陷——它不能捕获输入token的顺序。因此,Transformer在计算的时候就需要显式的引入位置信息。
为Transformer编码位置表示的方法主要有两类。一个是绝对位置编码,另一个是相对位置编码。绝对位置编码 将输入token的绝对位置从1编码到最大序列长度。也就是说,每个位置都有一个单独的编码向量。然后将编码向量与输入token组合,使得模型能够知道每个token的位置信息。相对位置编码 对输入token之间的相对距离进行编码,从而来学习token的相对关系。
这两种编码方式在NLP任务中都被广泛应用,并且证明是非常有效的。但是在CV任务中,他们的有效性还没被很好的探索。因此,在本文中,作者重新思考并改进相对位置编码在视觉Transformer中的使用。
在本文中,作者首先回顾了现有的相对位置编码方法,然后提出了专门用于二维图像的方法iRPE。
方法
方法背景
绝对位置编码
由于Transformer不包含递归和卷积,为了使模型知道序列的顺序,需要注入一些关于token位置的信息。原始Self-Attention采用了绝对位置,并添加绝对位置编码p=(p1,...,pn)p=(p_1,... ,p_n)p=(p1,...,p