(2024,嵌套标记化,区域编码器,上下文编码器,Transformer-XL,Mamba)xT:大图像中更大上下文的嵌套标记化

news2024/11/26 16:59:31

xT: Nested Tokenization for Larger Context in Large Images

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

3. 背景

3.1. 长上下文模型作为上下文编码器

3.2. 线性注意机制

4. 方法

4.1. 嵌套标记化

4.2. 区域编码器

4.3. 上下文编码器

5. 实验 


0. 摘要

现代计算机视觉流水线处理大图像通常采用两种次优的方式之一:降采样或裁剪。这两种方法都会导致图像中信息和上下文的显著丢失。在许多下游应用中,全局上下文与高频细节一样重要,例如在真实世界的卫星图像中;在这种情况下,研究人员不得不做出舍弃哪些信息的尴尬选择。我们引入了 xT,这是一个简单的视觉 Transformer 框架,它有效地聚合了全局上下文和局部细节,并且可以在当今的 GPU 上端到端地建模大尺度图像。我们选择了一组经典视觉任务中的基准数据集,这些数据集准确反映了视觉模型理解真正大型图像并在大尺度上合并细节的能力,并评估了我们的方法在这些任务上的改进。通过引入针对大型图像的嵌套标记化(Nested Tokenization)方案,结合通常用于自然语言处理的长序列长度模型,我们能够在具有挑战性的分类任务上将准确度提高多达 8.6%,并将上下文相关分割中的 F1 分数提高 11.6%。

项目页面:https://github.com/bair-climate-initiative/xT 

3. 背景

3.1. 长上下文模型作为上下文编码器

xT 利用了最初设计用于文本的长上下文模型,以便在大型图像之间混合信息。这些方法将上下文长度延伸到超出 transformer 的典型限制。以下我们简要回顾了作为我们上下文编码器的两种技术:Transformer-XL [3] 和 Mamba [9]。

Transformer-XL 使用循环将先前的信息通过先前的隐藏状态传递到未来的窗口。这种效应通过深度传播,因此能够处理长度为 L 的序列的 N 层 transformer 可以很容易地扩展到处理长度为 NL 的序列。

序列 τ 的第 n 层的每个隐藏状态 h^n_τ 是从前一层的隐藏状态 h^(n−1)_(τ−1) 和 h^(n−1)_τ 计算的,如下所示:

其中 SG 代表停止梯度。这与原始的 Transformer 相同,只是键和值 k^n_τ , v^n_τ 是使用前一个序列的隐藏状态 h^(n−1)_(τ−1) 以及当前序列的隐藏状态 h^(n−1)_τ 来计算的,使用了交叉注意力。这种机制允许隐藏状态 h^n_τ 在层之间循环。在序列之间应用停止梯度让信息在不承受完整序列反向传播所带来的内存成本的情况下传播。

状态空间和 Mamba

(2023,SSM,门控 MLP,选择性输入,上下文压缩)Mamba:具有选择性状态空间的线性时间序列建模

3.2. 线性注意机制

具有多头自注意力的标准 Transformer 块对于完全全局上下文的序列长度 L 需要二次内存。这在有限的 GPU 内存面前并不理想。HyperAttention [12] 是一种注意机制,其复杂度与序列长度几乎呈线性关系。它通过首先使用局部敏感哈希(Locality Sensitive Hashing,LSH)找到注意力矩阵的大条目来减少朴素注意力的复杂性。然后,将这些主导条目与矩阵的另一个随机抽样子集结合起来,用于近似朴素注意力的输出。当长程上下文对应关系稀疏时,这种方法特别有帮助。

4. 方法

4.1. 嵌套标记化

给定形状为 αH×βW 的大输入图像,我们首先将图像细分为 H×W 的区域,以便我们的区域编码器能够充分处理它们。每个区域 R^i 都被进一步分成 P 个补丁(patch),R^i_0,...,R^i_(P−1),通过区域编码器骨干来为每个区域提取特征。当区域大小 H×W 不能整除图像大小时,这些区域是非重叠的,并且在实例化时进行零填充。 通常我们的图像和区域是正方形的,因此我们使用简化的符号来表示我们的管道参数。我们将接收尺寸为 αR×αR 的图像并将其细分为 R×R 的区域的管道称为 αR/R 设置。标准设置是 512/256 或 4096/512,其中我们分别将图像分割为 2×2 和 8×8 个区域。

4.2. 区域编码器

我们从一个用于典型小图像尺寸 H×W 的图像模型开始训练,通常是 224×224 或 256×256。区域编码器独立地为每个区域 R^i_(1...P) 生成特征图。我们的区域编码器是分层视觉 Transformer,其序列长度从开始处理时减少,并且小于等于等效长度的各向同性 ViTs [5] 生成的长度。因此,我们能够比使用其他体系结构时将更多区域特征组合在一起,因为我们的序列长度减少了 4 倍或更多倍。 当 GPU 内存允许时,我们同时为所有区域计算特征。然而,当图像太大,以至于其所有组成区域无法全部放入 GPU 内存时,我们会逐个处理每个区域。

4.3. 上下文编码器

输出的区域特征按行主序(row major order)连接形成一个序列。在 xT 框架中,上下文编码器是一个轻量级的序列到序列模型,可以在长序列长度上进行注意。关键是,我们将上下文编码器限制为具有近线性的内存和时间成本。这种设计使得 xT 能够查看大图像中许多其他区域,否则在内存中是不可行的。这显著扩展了现有视觉模型的感受野,同时在内存成本和参数数量上只有边缘增加。

我们的方法主要在两种情况下发挥作用:当我们的区域特征序列完全适合(fit)上下文编码器的上下文长度时,以及当它不适合时。在第一种情况下,我们只是一次性处理所有内容。我们使用标准的二维位置嵌入,将其添加到嵌套区域特征中。

我们尝试了三种具有线性 “注意力” 机制的上下文编码器:使用 HyperAttention 的 LLaMA 风格的架构(称为 Hyper),以及 Mamba。这两种设置分别称为〈xT〉 Hyper 和〈xT〉 Mamba,其中〈xT〉是将区域编码器选择与上下文编码器相结合的操作符。

当我们的输入序列不适合整个上下文长度时,我们需要额外压缩我们的区域,以保持未来区域的上下文信息。我们尝试了一种使用 HyperAttention、一种线性注意力形式和绝对位置嵌入的 Transformer-XL 的派生版本。我们将此设置表示为〈xT〉 XL。在撰写本文时,Mamba 没有用于实现 XL 风格循环的有效内核,因此我们无法将 Mamba 应用于此设置。

有效感受野计算我们提供了 Swin〈xT〉 XL 设置的有效感受野的计算。在第 7.1 节进一步对其进行了消融实验。

在上下文编码器中,我们将 C 个区域的特征连接成一个 “块”(chunk),因为我们的特征比来自分层区域编码器的输入要小。Transformer-XL 上下文编码器由于使用 HyperAttention 而具有降低的注意力内存需求,进一步改善了适合一个 “块” 的区域数量。每个区域都会关注这个块中的所有其他区域,并且它们还可以访问上一个块的隐藏状态,以便模型中的上下文流动。在 Transformer-XL 中,上下文随深度的增加而增加。

因此,我们可以计算我们在小图像上仅使用标准模型 query 所实现的上下文增强。如果我们使用输入大小为 R(通常为 256)的区域编码器,并收到大小为 αR×βR 的大图像,则我们将有 αβ 个区域可用于我们的上下文编码器。然后,我们通过增加块的大小增加上下文的长度,增加因子为 C,也从我们的循环内存中增加块(chunk)的大小,增加因子为 N,即上下文模型的深度。这些值在表 1 中进行了计算,并在图 4 中进一步可视化。

总的来说,我们的上下文以因子 αβNC 倍增。然而,请注意 αβ 和 C 之间存在着一个权衡,因为增加输入图像的大小会限制我们从区域特征中创建的块的大小。 

5. 实验 

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

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

相关文章

2024年妈妈杯数学建模思路B题思路分享

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

如何在 Oracle 中使用 CREATE SEQUENCE 语句

在本文中,我们将讨论 Oracle CREATE SEQUENCE 语句,其主要目的是提供一种可靠的方法来生成唯一且连续的数值,通常用于数据库表中的主键字段。此功能对于维护数据完整性和效率、确保不同记录之间的标识符有序分配尤其重要。从本质上讲&#xf…

数据库的横表和竖表

先来看个图: 定义如下: 横表:在一行数据中包含了所有的属性,一行就代表了一个完整的实体 竖表:在一行中只存储一个实体的一个属性,多个行组合在一起才组成一个完整的属性适用场景: 横表:对查…

从零玩转CanMV-K230(2)-开发环境搭建

文章目录 前言一、编译环境搭建二、镜像烧写总结 前言 本章介绍如何搭建CanMV-K230开发环境,基于LinuxRT-smart双系统开发 一、编译环境搭建 我是用的vmware虚拟机:ubuntu 20.04,搭建环境如下: 直接下载压缩包,下载…

【CTFshow 电子取证】套的签到题

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

一、JAVA集成海康SDK

JAVA集成海康SDK 文章目录 JAVA集成海康SDK前言一、项目依赖 jar1. examples.jar2. 项目依赖 jna.jar,可以通过 maven依赖到。二、集成SDK1.HcNetSdkUtil 海康 SDK封装类2.HCNetSDK3.Linux系统集成SDK三、总结前言 提示:首先去海康官网下载 https://open.hikvision.com/dow…

56、FreeRTOS/GPIO与定时器相关学习20240329

一、代码实现控制开发板上的指示灯闪烁。 /* USER CODE BEGIN 0 */ //利用定时器机制 定时器溢出时对应的回调函数实现如下 //本次实现控制PB0,PB1两个灯 int flag1 0,flag2 0;//使用一个标记执行以下代码 会造成一个灯常亮 另一个常灭 void HAL_TIM_PeriodElaps…

vue3+ts白屏问题解决

文章目录 打开白屏解决方法可能出现问题使用base导致的使用baseUrl导致的 注意点vue3ts白屏问题知识分享 打开白屏 解决方法 在vue.config.js页面 添加publicPath:./, const { defineConfig } require(vue/cli-service)module.exports defineConfig({ transpileDependenci…

Nginx-记

Nginx是一个高性能的web服务器和反向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。 (1)更快 这表现在两个方面:一方面,在正常情况下&…

工业无线网关在汽车制造企业的应用效果和价值-天拓四方

随着智能制造的快速发展,工业无线网关作为关键通信设备,在提升生产效率、优化生产流程、实现设备间的互联互通等方面发挥着越来越重要的作用。以下是一个关于工业无线网关在智能制造行业应用的具体案例,展示了其在实际生产中的应用效果和价值…

Nomad Web更新没有最快只有更快

大家好,才是真的好。 很长时间没介绍运行在浏览器中的Notes客户端即Nomad Web更新情况。 不用安装,直接使用,还可以完美地兼容适应各种操作系统,Nomad Web一定是Notes/Domino产品现在和将来重点发展的用户访问模式。 不过&…

C语言例4-34:找出11~100所有不能被5整除的整数,要求在第n行输出10*n+1~10*(n+1)之间符合要求的数

代码如下&#xff1a; //找出11~100所有不能被5整除的整数&#xff0c;要求在第n行输出10*n1~10*(n1)之间符合要求的数 #include<stdio.h> int main(void) {int i;for(i11;i<100;i) //遍历11~100的所有整数{if(i%100){printf("\n");continue; /…

【Leetcode每日一题】 动态规划 - 不同路径(难度⭐⭐)(46)

1. 题目解析 题目链接&#xff1a;62. 不同路径 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 想要解决这个问题&#xff0c;我们得像个侦探一样&#xff0c;一步步地追踪路径&#xff0c;找出所有可能的走法。接下…

uinapp触底与下拉时间触发的使用

在UniApp中&#xff0c;onReachBottom 和 onPullDownRefresh 是两个重要的生命周期函数&#xff0c;分别用于处理页面滚动到底部时触发的事件和下拉刷新时触发的事件。 在页面的 .vue 文件中&#xff1a; <template> <view> <scroll-view scroll-y"tr…

STM32之HAL开发——串口配置(源码)

串口收发原理框图&#xff08;F1系列&#xff09; 注意&#xff1a;数据寄存器有俩个一个是收一个是发&#xff0c;但是在标准库或者HAL库中没有特别区分开来是俩个寄存器&#xff01; USART 初始化结构体详解 HAL 库函数对每个外设都建立了一个初始化结构体&#xff0c;比如 …

【八股】泛型

泛型存在的意义&#xff1f; 为了使相同的代码适用于多种数据类型&#xff0c;也就是代码复用。 参数类型上下限限制 <?> 无限制 <? extends E> 声明了类型的上界&#xff0c;表示参数类型可以是他或他的子类。 <? super E> 声明了类型的下界&#xf…

Vue 2 组件发布到 npm 的常见问题解决

按照 Vue 2 组件打包并发布到 npm 的方法配置项目后&#xff0c;项目在实际开发过程中&#xff0c;随着代码写法的多样性增加而遇到的各种打包问题&#xff0c;本文将予以逐一解决&#xff1a; 本文目录 同时导出多个组件 样式表 import 问题解决 Json 文件 import 问题解决…

【3月29日信息差】2G 50/年,4G 618/3年 京东云云服务器促销 游戏服务器活动 我的世界 幻兽帕鲁 雾锁王国通用

《最新对比表》已更新在文章头部—腾讯云文档&#xff0c;文章具有时效性&#xff0c;请以腾讯文档为准&#xff01; 【腾讯文档实时更新】云服务器1分钟教会你如何选择教程 https://docs.qq.com/document/DV0RCS0lGeHdMTFFV?tab000003 ​ 当前活动&#xff1a;采购季&#…

老阳推荐的视频号项目是真的吗?能赚钱吗?

在当下数字化、信息化的社会背景下&#xff0c;视频号项目如雨后春笋般涌现&#xff0c;成为许多人关注的焦点。特别是在一些知名人士&#xff0c;如老阳的推荐下&#xff0c;这些项目更是受到了广泛的关注和讨论。那么&#xff0c;老阳推荐的视频号项目是否真实存在?它能否真…

matplotlib 绘图

matplotlib 绘图 方便设置legend图例的位置 ax1.legend(loc‘upper center’, bbox_to_anchor(0.3, -0.1)) ax2.legend(loc‘upper center’, bbox_to_anchor(0.6, -0.1)) import numpy as np import matplotlib.pyplot as plt from scipy.stats import norm from scipy.inter…