5.10.4 Vision Transformer的条件位置编码(CPE)

用于视觉 Transformer 的条件位置编码(CPE)方案与之前预定义且独立于输入标记的固定或可学习位置编码不同,CPE 是动态生成的,并以输入标记的局部邻域为条件。

CPE 可以轻松泛化到比模型在训练期间见过的输入序列更长的输入序列。此外,CPE 可以在视觉任务中保持所需的翻译等效性,从而提高性能。我们使用简单的位置编码生成器 (PEG) 来实现 CPE,以无缝地融入到当前的 Transformer 框架中。基于 PEG,我们提出了条件位置编码视觉变换器 Conditional Position encoding Vision Transformer (CPVT)。与学习位置编码的注意力图相比,CPVT 具有视觉上相似的注意力图,并提供了优异的结果。

Transformers 中的自注意力操作是排列不变的,它会丢弃输入序列中标记的顺序。之前的工作,将绝对位置编码添加到每个输入标记,从而实现顺序感知。

位置编码可以是可学习的,也可以用不同频率的正弦函数固定。这些位置编码严重损害了 Transformer 的灵活性,阻碍了其更广泛的应用。编码通常是与输入序列等长的向量,在训练期间与网络权重联合更新。因此,位置编码的长度和值一旦训练就固定了。在测试过程中,它会导致处理比训练数据中的序列长的序列变得困难。

在测试过程中无法适应更长的输入序列极大地限制了泛化范围。 在目标检测等视觉任务中,我们期望模型可以在推理过程中应用于任何尺寸的图像,这些图像可能比训练图像大得多。一种可能的补救措施是使用双三次插值将位置编码上采样到目标长度,如果不进行微调,它会降低性能。对于一般视觉,我们期望模型是平移等变的。


1. 介绍 

绝对位置编码方案可能会破坏平移等价性,因为它为每个标记(或每个图像块)添加了唯一的位置编码。相对位置编码不仅会带来额外的计算成本,而且还需要修改标准 Transformer 的实现。

在这项工作中,我们提出了一种新颖的位置编码(PE)方案,将位置信息合并到 Transformer 中。所提出的 PE 是动态生成的,并以输入标记的局部邻域为条件。因此,我们的位置编码可以随着输入大小而变化,并尝试保持平移等价性。

文章贡献

  • 提出了一种新颖的位置编码(PE)方案,称为条件位置编码(CPE)。 CPE 使用位置编码生成器 (PEG) 动态生成,可以通过现代深度学习框架轻松实现,无需更改当前的 Transformer API 。
  • 与广泛使用的绝对位置编码相反,CPE 可以提供一种对平移等价性更强的显式偏差,显著提高 Transformer 的性能。
  • 基于 CPE,我们提出了条件位置编码视觉变换器 (CPVT)。它比以前的视觉变压器实现了更好的性能。
  • CPE 可以很好地推广到任意输入分辨率,这是许多重要的下游任务(例如分割和检测)所需要的。通过实验,我们表明 CPE 可以显着提高金字塔变换器的分割和检测性能。

2. 相关工作

位置编码可以是固定的或可学习的,同时可以是绝对的或相对的。视觉转换器遵循相同的方式向网络注入位置信息。

绝对位置编码

在原始变压器中,编码是用不同频率的正弦函数生成的,然后将它们添加到输入中。或者,位置编码可以是可学习的,它们通过固定维度矩阵/张量实现,并通过 SGD 与模型参数联合更新。

相对位置编码

相对位置编码考虑输入序列中标记之间的距离。与绝对位置编码相比,相对位置编码可以是平移等变的,并且可以在训练期间自然地处理比最长序列更长的序列。

其他形式

复值嵌入是对全局绝对编码建模的扩展并显示出改进。

RoFormer利用旋转位置嵌入对绝对和相对位置信息进行编码以进行文本分类。

FLOATER提出了一种新颖的连续动态模型来捕获位置编码。训练时不受最大序列长度的限制,同时参数高效。

3. 具有条件位置编码的Vision Transformer

3.1 动机

在Vision Transformer中,大小为 H × W 的输入图像被分割为大小为 S × S 的块,块的数量为 N=\frac{HW}{S^2}。这些补丁添加了相同数量的可学习绝对位置编码向量。

首先,它阻止了模型处理比可学习的位置嵌入(PE)更长的序列。

可以通过删除位置编码来解决,除了位置编码之外,Vision Transformer的其他组件(MHSA和FFN)都可以直接应用于更长的序列。模型无法在没有位置编码的情况下提取顺序。

我们可以对位置编码进行插值,使它们具有与较长序列相同的长度。

其次,它使模型不是平移等变的,因为每个补丁都会添加一个唯一的位置编码向量。

3.2 条件位置编码

针对视觉任务的成功位置编码应该满足的三个要求:

  • 使输入序列具有排列不变性,并为平移等变性提供更强的显式偏差:

排列不变性:指的是模型的输出不应该因为输入序列中元素的排列顺序的改变而改变。

平移等变性:如果一个系统对于输入的平移(例如,在图像上左右或上下移动)能够给出一致性的输出,那么这个系统就具有平移等变性。

更强的显式偏差:指的是位置编码应该为模型提供明确的指导,使其更容易学习到平移等变性的特性。

  • 具有归纳性,并能够处理比训练时更长的序列

归纳性:指的是模型能够基于有限数量的训练样本学习到一般性的规律,并能够将这些规律应用到新的、未见过的数据上。

处理更长的序列:对于视觉任务,模型应该能够处理比训练时使用的图像更大分辨率或更长序列长度的图像。

  • 能够在一定程度上提供绝对位置信息

绝对位置信息对于许多视觉任务来说是至关重要的。例如,在目标检测或图像分割任务中,知道对象或区域的精确位置对于生成准确的预测结果至关重要。

通过位置编码来表征局部关系足以满足上述所有要求。首先,它是排列变异的,因为输入序列的排列也会影响一些局部邻域的顺序。然而,输入图像中对象的平移不会改变其局部邻域的顺序,即平移等变。其次,该模型可以轻松推广到更长的序列,因为仅涉及标记的局部邻域。此外,如果任何输入标记的绝对位置已知,则可以通过输入标记之间的相互关系来推断所有其他标记的绝对位置。


提出位置编码生成器(PEG)来动态生成以输入标记的局部邻域为条件的位置编码。

 PEG 可以通过具有内核 k (k ≥ 3) 和 \frac{k-1}{2}零填充的二维卷积来有效实现。

3.3 条件位置编码Vision Transformer (CPVT)

类标记不是平移不变的,尽管它可以学习成平移不变。一个简单的替代方案是直接用全局平均池化(GAP)替换它,它本质上是平移不变的,从而产生我们的 CVPT-GAP。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691470.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Ollama本地部署 Llama3大模型!最简单的方法,无需GPU也能使用

文章目录 前言一、安装Ollama客户端二、安装webUI1、安装Docker Desktop2、安装webUI3、设置语言4、下载模型 总结 前言 开源大模型领域当前最强的无疑是 LLaMA 3!Meta 这次不仅免费公布了两个性能强悍的大模型(8B 和 70B),还计划…

《QT实用小工具·六十三》QT实现微动背景,界面看似静态实则动态

1、概述 源码放在文章末尾 该项目实现了微动背景,界面看似静态实则动态,风动,幡动,仁者心动,所以到底是什么在动?哈哈~ 界面会偷偷一点一点改动文字颜色的颜色填充。 虽然是动态,但是慢到难以…

【牛客】SQL201 查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t

1、描述 有一个薪水表,salaries简况如下: 请你查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t,以上例子输出如下: 2、题目建表 drop table if exists salaries ; CREATE TABLE salaries ( emp_no int(11) NOT N…

当代 Qt 正确的 安装方法 及 多版本切换

此文写于 20240511 首先去网站Index of /official_releases/online_installers下载一个安装器 安装器有什么用? 可以浏览安装版本 安装组件 安装器版本越能 能装的东西越多 现在只能选Qt5 和 Qt6 至于你公司用的Qt4 我也没招 见招时再拆招 安装器 默认国外源 可以换国内…

Go-Zero自定义goctl实战:定制化模板,加速你的微服务开发效率(四)

前言 上一篇文章带你实现了Go-Zero和goctl:解锁微服务开发的神器,快速上手指南,本文将继续深入探讨Go-Zero的强大之处,并介绍如何使用goctl工具实现模板定制化,并根据实际项目业务需求进行模板定制化实现。 通过本文…

SpringBoot实现图片验证码

引入依赖 <dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version> </dependency>代码实现 package com.qiangesoft.captcha.controller;import com.wf.captcha.*…

【ubuntu】ubuntu-18.04开机卡在Starting User Manager for UID 120....问题解决方案

错误截图 解决方案 启动系统&#xff0c;开机界面单击按键esc键&#xff0c;注意需要将鼠标定位到菜单界面&#xff0c;移动键盘上下键选择Advanced options for Ubuntu 进入如下菜单&#xff0c;选择recovery mode 回车之后会弹出如下界面&#xff0c;选择如下root&#xff0…

windows@注册表介绍@注册表的查看和编辑操作

文章目录 abstractrefs注册表的主要组件包括根键极其缩写名称&#x1f47a;子键特性 查看注册表&#x1f47a;使用powershell查看路径下的子路径声明概念Get-ChildItem查看注册表路径下的项Set-Location进入注册表路径举例说明查看文件系统某个路径下的项查看某个注册表路径的项…

OpenGL导入的纹理图片错位

在OpenGL中导入图片的纹理照片的函数为 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, p_w, p_h, 0, GL_BGR, GL_UNSIGNED_BYTE, pic_data);其中p_w, p_h为图片的宽和高&#xff0c;pic_data为指向图片存储空间的的地址(unsigned char *类型) 在OpenGL中图片默认是4字节对齐的&…

[算法][数组][leetcode]2391. 收集垃圾的最少总时间

题目地址: https://leetcode.cn/problems/minimum-amount-of-time-to-collect-garbage/description/ 题解&#xff1a; class Solution {public int garbageCollection(String[] garbage, int[] travel) {int ans 0;//先计算收所有的垃圾需要多少时间for(String s :garbage){…

Vivado功耗之散热模型详解

目录 一、前言 二、热模型 三、结温计算 四、散热器计算 五、参考资料 一、前言 ​在功耗评估中&#xff0c;Vivado中report power流程以及XPE中都有关于environment的配置&#xff0c;该界面配置涉及到多个晦涩的概念&#xff0c;之前的文章中也对相关概念进行过翻译&…

深入理解WPF的ResourceDictionary

深入理解WPF的ResourceDictionary 介绍 在WPF中&#xff0c;ResourceDictionary用于集中管理和共享资源&#xff08;如样式、模板、颜色等&#xff09;&#xff0c;从而实现资源的重用和统一管理。本文详细介绍了ResourceDictionary的定义、使用和合并方法。 定义和用法 Res…