实验分析非常精彩 | Transformer中的位置嵌入到底改如何看待?(一)

简介: 实验分析非常精彩 | Transformer中的位置嵌入到底改如何看待?(一)

1简介


相对位置编码(Relative position encoding, RPE)是Transformer获取输入Token序列顺序的重要方法。在自然语言处理中已证实了其有效性。

然而,在计算机视觉中,相对位置编码的有效性还没有得到很好的研究,甚至还存在争议,如相对位置编码是否能与绝对位置编码同样有效?

为了澄清这一点,作者首先回顾了现有的相对位置编码方法,并分析了它们在Vision Transformer中应用的优缺点。然后提出了一种新的二维图像相对位置编码方法,称为图像RPE(iRPE)

本文的方法考虑了定向相对距离建模以及query和相对位置嵌入在自注意机制中的交互作用。提出的iRPE方法简单、轻量级。它们可以很容易地插入Transformer。

实验表明,仅由于提出的编码方法,DeiT和DETR在ImageNet和COCO上分别获得了高达1.5% (top-1 Acc)和1.3%(mAP)的提升,而不需要调整任何额外的超参数,如学习率和权重衰减。作者也进行了消融实验和分析得到了有趣的发现,其中一些与之前的理解恰恰相反。

本文主要贡献:

  1. 分析了相对位置编码中的几个关键因素,包括相对方向、上下文的重要性、query、key、value和相对位置嵌入之间的交互以及计算成本。对相对位置编码进行了全面的理解,为新方法的设计提供了经验指导;
  2. 引入了一种有效的相对编码实现,它将计算成本从原始的降低到,其中k<<n。该实现适用于高分辨率输入图像,如目标检测和语义分割,其中token数可能非常大;
  3. 提出了4种新的相对位置编码方法,称为图像RPE(iRPE),专门用于Vision Transformer,考虑了效率和泛化。这些方法很简单,可以很容易地插入到Self-attention中。实验表明,在不调整任何超参数和设置的情况下,该方法在ImageNet和COCO上的DeiTS和detr-resnet50分别比原模型提高了1.5%(top-1 Acc)和1.3%(mAP);
  4. 回答了先前有争议的问题。实验证明相对位置编码可以代替绝对位置编码进行图像分类。同时,目标检测需要绝对编码,像素位置对目标定位也是至关重要。

2相关工作总结


Transformer由于其具有较强的性能和捕获远程依赖关系的优越能力,近年来在计算机视觉领域引起了广泛的关注。Transformer的核心是Self-attention,它能够对序列中的Token关系进行建模。然而,Self-attention有一个固有的缺陷就是它不能捕获输入Token的顺序

因此,合并位置信息的显式表示对于Transformer特别重要,因为模型对序列顺序是完全不变的,这对于结构化数据建模是不可取的。

主要有2类方法对Transformer的位置表示进行编码。一个是绝对位置编码,另一个是相对位置编码。

绝对位置方法将输入Token的绝对位置从1编码到最大序列长度。也就是说,每个位置都有一个单独的编码向量。然后将编码向量与输入Token组合,以向模型公开位置信息。

相对位置方法对输入元素之间的相对距离进行编码,学习符号之间的成对关系。相对位置编码(RPE)通常是通过带有可学习参数的query表与Self-attention模块中的query和key进行交互来计算的。这种模式允许模块捕获Token之间非常长的依赖关系。相对位置编码在自然语言处理中的有效性得到了验证。

然而,在计算机视觉中,这种效果还不清楚。最近很少有作品对它进行阐释,但在Vision Transformer中却得到了有争议的结论。有研究者观察到相对位置编码与绝对位置编码相比没有带来任何增益。相反,也有学者发现相对位置编码可以诱导表观增益,优于绝对位置编码。

此外,最近的研究表明相对位置编码不能像绝对位置编码一样好。这些工作对模型中相对位置编码的有效性得出了不同的结论,这促使本文作者重新思考和改进相对位置编码在Vision Transformer中的应用。

另一方面,提出了原始相对位置编码的语言建模方法,其中输入数据为1D单词序列。但对于视觉任务,输入通常是2D图像或视频序列,其中像素是高度空间结构的。尚不清楚的是:从1D到2D的朴素扩展是否适用于视觉模型;方向性信息在视觉任务中是否重要?


3Self-Attention与位置嵌入


3.1 Self-Attention

Self-Attention在Transformer中起着基础性的作用。如下图,它将query和一组key和value对映射到输出。

image.png

更具体地说,对于输入序列,如单词或图像块的嵌入,,其中,Self-Attention计算一个输出序列,其中。每个输出元素Zi是作为输入元素的加权和计算的:

image.png

每个权重系数使用softmax计算:

image.png

其中是使用一个scaled dot-product attention来计算的:

image.png

这里,投影是参数矩阵,每层都是唯一的。

MultiHead Self-Attention(MHSA)不是计算一次Self-Attention,而是并行运行多次Self-Attention,即使用H个Attention Head。Attention Head的输出被简单地连接起来并线性地转换成设计的维度。

3.2 位置嵌入

绝对位置编码

由于Transformer不包含递归和卷积,为了使模型能够利用序列的顺序,需要注入一些关于Token位置的信息。原始Self-Attention考虑绝对位置,并添加绝对位置编码的输入Token嵌入x为:

image.png

这里的位置编码是。绝对位置编码有几种选择,如采用不同频率的正弦和余弦函数的固定编码和通过训练参数的可学习编码。

相对位置编码

除了每个输入元素的绝对位置,最近的一些工作还考虑了元素之间的成对关系,即相对位置。对于元素的相对顺序或距离很重要的任务,相对关系可能很重要。这种类型的方法将输入元素和之间的相对位置编码为向量,其中。将编码向量嵌入到Self-Attention模块中,将式(1)和式(3)重新表示为:

image.png

通过这种方法,可以在Transformer训练过程中学习成对的位置关系。这种相对位置编码可以在Attention Head之间共享,也可以不共享。

相关文章
|
机器学习/深度学习 人工智能 自然语言处理
一文尽览 | 开放世界目标检测的近期工作及简析!(基于Captioning/CLIP/伪标签/Prompt)(上)
人类通过自然监督,即探索视觉世界和倾听他人描述情况,学会了毫不费力地识别和定位物体。我们人类对视觉模式的终身学习,并将其与口语词汇联系起来,从而形成了丰富的视觉和语义词汇,不仅可以用于检测物体,还可以用于其他任务,如描述物体和推理其属性和可见性。人类的这种学习模式为我们实现开放世界的目标检测提供了一个可以学习的角度。
一文尽览 | 开放世界目标检测的近期工作及简析!(基于Captioning/CLIP/伪标签/Prompt)(上)
|
3月前
|
存储 C语言
【C深度解剖】计算机数据下载和删除原理
【C深度解剖】计算机数据下载和删除原理
|
6月前
|
人工智能 自然语言处理 测试技术
论文介绍:LLMLingua-2——面向高效忠实任务无关性提示压缩的数据蒸馏方法
【5月更文挑战第2天】LLMLingua-2是一种针对大型语言模型(LLMs)的数据蒸馏方法,旨在实现高效且忠实的提示压缩。通过从LLMs中提取知识,该方法在压缩提示的同时保持关键信息,提高模型泛化能力和效率。采用Transformer编码器,LLMLingua-2将提示压缩转化为标记分类问题,确保压缩后的提示忠实度并减少延迟。实验表明,该方法在多个数据集上优于基线,并在压缩延迟上取得显著改进,但也存在泛化能力和扩展性限制。论文链接:https://arxiv.org/abs/2403.12968
120 5
|
机器学习/深度学习 算法 PyTorch
Python实现替换照片人物背景,精细到头发丝(附上代码) | 机器学习(1)
Python实现替换照片人物背景,精细到头发丝(附上代码) | 机器学习
Python实现替换照片人物背景,精细到头发丝(附上代码) | 机器学习(1)
|
人工智能 自然语言处理 文字识别
理解指向,说出坐标,Shikra开启多模态大模型参考对话新维度
理解指向,说出坐标,Shikra开启多模态大模型参考对话新维度
201 0
|
存储 编解码 C++
实验分析非常精彩 | Transformer中的位置嵌入到底改如何看待?(二)
实验分析非常精彩 | Transformer中的位置嵌入到底改如何看待?(二)
552 0
|
机器学习/深度学习 自然语言处理 算法
收藏!编码器中如何融入结构信息?这几篇论文一定不要错过
收藏!编码器中如何融入结构信息?这几篇论文一定不要错过
|
机器学习/深度学习 自然语言处理 算法
清北微软深挖GPT,把上下文学习整明白了!和微调基本一致,只是参数没变而已
清北微软深挖GPT,把上下文学习整明白了!和微调基本一致,只是参数没变而已
191 0
|
机器学习/深度学习 并行计算 算法
像Transformer一样思考!DeepMind发布全新模型设计工具Tracr:从可解释逻辑反向搭建模型
像Transformer一样思考!DeepMind发布全新模型设计工具Tracr:从可解释逻辑反向搭建模型
195 0
|
机器学习/深度学习 测试技术 异构计算
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
下一篇
无影云桌面