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

news2025/1/15 23:00:27

用于视觉 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.coloradmin.cn/o/1675070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

官宣!MongoDB Atlas再添新功能!进一步简化构建现代应用程序

亮点前瞻 ● MongoDB Atlas Stream Processing全面可用,开发者能够更轻松地使用实时数据,在统一环境中构建事件驱动型应用程序 ●MongoDB Atlas Search Nodes上线 Microsoft Azure,组织能够隔离和扩展生成式AI工作负载,并将查询…

Naive RAG 、Advanced RAG 和 Modular RAG 简介

简介: RAG(Retrieval-Augmented Generation)系统是一种结合了检索(Retrieval)和生成(Generation)的机制,用于提高大型语言模型(LLMs)在特定任务上的表现。随…

串联所有单词的子串 ---- 滑动窗口

题目链接 题目: 分析: 我们上次做的题目, 是找到所有字符的异位词, 和这道题有些类似, 使用记录有效字符的个数找到子字符, 此题无非是把字符变成了字符串题目回顾 有一下几方面不同, 我们以示例1为例: 1. 哈希表 上次我们使用的是哈希数组, 因为数组的下标可以是字符, 现…

elasticsearch-head 源码运行

1、下载安装nodejs 地址:Node.js — Run JavaScript Everywhere 2、git下载 elasticsearch-head 源码 地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster 3、使用cmd 进入 elasticsearch-head 目录 4、依次执…

C for Graphic:遮罩显示(一)

模板缓冲一般用于遮罩渲染的功能,其原理很以前聊过(模板缓冲原理),就不再啰嗦了。 现在实现一个功能:使用一个长方体(或任意物体)遮罩渲染对象(比如一个球)。 …

好用无广的桌面便签app 能管理待办事项的便签软件

在忙碌的工作和生活中,我们每天都面临着大量的待办事项。这些琐碎却重要的事务很容易混淆或遗忘,给我们带来不必要的麻烦和压力。幸运的是,选择一款优秀的便签app,可以有效地帮助我们管理这些待办事项,让工作和生活更加…

CVE-2024-4761 Chrome 的 JavaScript 引擎 V8 中的“越界写入”缺陷

分析 CVE-2024-4761 和 POC 代码 CVE-2024-4761 描述 CVE-2024-4761 是一个在 V8 引擎中发现的越界写漏洞,报告日期为 2024-05-09。这个漏洞可能允许攻击者通过特制的代码执行任意代码或者造成内存破坏,进而导致程序崩溃或其他不安全行为。 POC 代码解…

干部管理系统的功能解析

在日益复杂的组织运营环境中,干部管理系统已成为组织人事部门不可或缺的得力助手。该系统集成了多项先进功能,极大地提升了干部信息的全面管理、选拔任用、培训发展等工作的便捷性和效率。以下是对干部管理系统主要功能的深入解析。 一、信息管理功能 …

CH340 RTS DTR引脚编程驱动OLED

运行结果 硬件连接(在连接线上串接300R电阻) 下面是c#实现代码 using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks;using uint8 System.Byt…

小米、西圣、罗马仕充电宝怎么选?哪个牌子好?一篇教会你选!

随着移动设备的普及,充电宝已经成为现代人生活中不可或缺的便携式充电解决方案。在诸多品牌中,小米、西圣、罗马仕等充电宝备受消费者喜爱,各具特色。今天将为大家带来这三款充电宝的一个详细测评对比,方便大家在选购时能够提供有…

生产环境磁盘变更方案

datanode磁盘扩容(1人天) 扩容磁盘 1.1 扩容前检查、新盘初始化 确定block副本统计正常,无丢块,无under-replicated 块 后台执行命令检查 hdfs dfs fsck / 无异常可进行以下步骤进行磁盘扩容 新盘初始化 ##格式化新盘,命令示例: mkfs.xfs /dev/sdc##挂载新盘,命令示…

在 CSS 中使用 text-emphasis 来增强文本的趣味性

在CSS中设置文本样式的方法有很多。您可以更改颜色、大小、字体,甚至添加阴影和轮廓等效果。但最近,我了解到一个我以前没有听说过的时尚 CSS 属性,它非常棒! 它被称为文本强调(text-emphasis)&#xff0c…

Cartographer前后端梳理

0. 简介 最近在研究整个SLAM框架的改进处,想着能不能从Cartographer中找到一些亮点可以用于参考。所以这一篇博客希望能够梳理好Cartographer前后端优化,并从中得到一些启发。carto整体是graph-based框架,前端是scan-map匹配,后端…

安卓APP+TCP+服务器端

1、在.xml文件中添加权限 <uses-permission android:name"android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name"android.permission.INTERNET"/>2、修改显示界面 <?xml version"1.0" encoding"utf-8&…

C++11续——智能指针(出现原因至源码模拟)

前言&#xff1a;在C11里面提出了一个新的语法 try catch用来捕捉异常&#xff0c;这样子能不使用return和exit的前提下退出程序就得到错误信息&#xff0c;但是随之而来的就是一个新的问题&#xff0c;try catch退出程序之后可能带来了无法释放的内存泄露问题&#xff0c;原因…

资料同化 | 搭建docker环境-1

Community Gridpoint Statistical Interpolation (GSI) system DTC 是一个分布式设施&#xff0c;NWP 社区可以在这里测试和评估用于研究和操作的新模型和技术。 DTC的目标包括&#xff1a; 链接研究和操作社区 研究成果转化为实际操作的速度 加快改善天气预报 开发和测试有…

NSSCTF | [SWPUCTF 2021 新生赛]babyrce

打开题目&#xff0c;显示了一个php脚本 我们来分析一下这个脚本是什么意思 <?php error_reporting(0); header("Content-Type:text/html;charsetutf-8"); highlight_file(__FILE__); if($_COOKIE[admin]1) {include "../next.php"; } elseecho &quo…

深入解析RedisJSON:在Redis中直接处理JSON数据

码到三十五 &#xff1a; 个人主页 JSON已经成为现代应用程序之间数据传输的通用格式。然而&#xff0c;传统的关系型数据库在处理JSON数据时可能会遇到性能瓶颈。为了解决这一问题&#xff0c;Redis推出了RedisJSON模块&#xff0c;它允许开发者在Redis数据库中直接存储、查询…

Ceph集群扩容及数据再均衡原理分析

用户文件在Ceph RADOS中存储、定位过程大概包括&#xff1a;用户文件切割成对象、对象映射到PG、PG分组PGP、PG映射到OSD。这些过程中&#xff0c;可能涉及了大量概念和变量&#xff0c;而其实它们大部分是通过HASH、CRUSH等算法计算出来的&#xff0c;初始参数可能也就只有这么…