《SeTformer Is What You Need for Vision and Language》
会议:AAAI
年份:2024
论文:DDAE: Towards Deep Dynamic Vision BERT Pretraining - AMiner
https://www.aminer.cn/pub/6602613613fb2c6cf6c387c2/ddae-towards-deep-dynamic-vision-bert-pretraining
摘要
这篇论文介绍了一种新型的变换器模型,名为SeTformer,它针对视觉和语言任务进行了优化。SeTformer的核心创新是将传统的点积自注意力(DPSA)替换为一种基于自我最优传输(Self-optimal Transport,简称SeT)的机制。这种替换旨在解决传统变换器在处理长序列时面临的计算效率低下的问题,同时保持或提升性能。SeT基于两个关键的softmax属性:维持非负的注意力矩阵和使用非线性重加权机制来强调输入序列中的重要token。通过引入核成本函数来实现最优传输,SeTformer有效地满足了这些属性。实验结果表明,SeTformer在多个任务上都取得了令人印象深刻的性能,包括在ImageNet-1K上的分类准确率、目标检测和语义分割等。
拟解决的问题
传统变换器(如Vision Transformer, ViT)在处理长序列数据时,由于softmax操作导致的二次时间和内存复杂度,使得模型训练和推理变得非常昂贵。这限制了变换器在处理长文档或高分辨率图像等任务时的应用。
创新之处
- 自我最优传输(SeT):提出了一种新的自注意力机制,使用最优传输(OT)和核方法来计算输入特征之间的对齐分数,代替了传统的点积操作。
- 核特征映射:通过将输入特征映射到再生核希尔伯特空间(RKHS),保持了注意力矩阵的非负性质。
- 效率与性能的平衡:在减少参数和计算量的同时,SeTformer在多个视觉和语言任务上取得了与现有最先进方法相媲美或更好的结果。
方法

传统的自注意力方法:输入序列的每个元素(token)都会计算与其他所有元素的关系,通常使用点积(Dot Product)来衡量元素间的相似度。然后,通过softmax函数对这些相似度进行归一化,得到注意力权重,这些权重用于加权求和,形成每个元素的输出表示。

尽管自注意力在捕捉序列内长距离依赖方面非常有效,但其计算复杂度随着序列长度的增加而呈二次方增长,这在处理长序列时(如高分辨率图像或长文本)变得非常昂贵。
为了解决以上问题,提出了自我最优传输(SeT),这是一种新颖的自注意力替代方案。SeT利用最优传输(OT)理论来计算输入特征之间的对齐分数,而不是传统的点积操作。
SeT的关键步骤:
- 特征映射到RKHS:将输入特征向量映射到再生核希尔伯特空间(RKHS),使用正定核函数保证映射后的向量是非负的。
- OT对齐:使用最优传输(OT)来对齐输入特征和参考特征。OT通过计算最小成本的传输计划,来找到输入特征与参考特征之间的最佳匹配。
- 加权聚合:通过OT得到的对齐分数作为权重,对输入特征进行加权聚合,形成输出特征。
特征映射到RKHS
-
选择或定义核函数:首先,选择一个合适的正定核函数 𝐾(𝑥,𝑥′),它能够将原始空间 𝑋 中的数据点映射到一个高维特征空间 𝐹。常用的核函数包括高斯核、多项式核、拉普拉斯核等。
-
特征映射:通过核函数定义一个特征映射 𝑢:𝑋→𝐹,其中 𝐹 是一个希尔伯特空间。在RKHS中,任意两个点 𝑥 和 𝑥′ 之间的核函数值 𝐾(𝑥,𝑥′) 可以表示为这两个点在 𝐹 空间中映射的内积,即 𝐾(𝑥,𝑥′)=〈𝑢(𝑥),𝑢(𝑥′)〉𝐹。
由于核函数是正定的,它保证了映射后的向量之间的内积是非负的,这与softmax操作的非负性相一致。
OT对齐
OT是数学中的一个概念,它描述了将一个概率分布转换为另一个概率分布的最优方式,这可以类比为将一堆“土”(代表概率质量)从一个位置移动到另一个位置,最小化运输成本。
用于在特征空间中对齐输入和参考特征。在SeTformer中,OT对齐用于计算输入特征与一组参考特征之间的相似性或对齐分数,这些分数随后用于加权聚合,形成注意力机制的输出。
OT对齐的关键步骤:
1. 用Kantorovich形式表示,通过最小化成本函数加上熵正则化项来求解:

C 是成本矩阵,𝑇 是传输计划矩阵,𝜇 和 𝜈 是分别与 𝑋 和 𝑌 相关的分布,𝜖 是正则化参数,𝐻(𝑇) 是传输计划的熵,计算公式如下:
![]()
2. 使用Sinkhorn算法来求解上述优化问题,该算法通过迭代过程不断调整传输计划 𝑇 以逼近最优解。OT 根据各个元素/标记在输入中的重要性为不同的元素/标记分配不同的权重,类似于 softmax 注意力中的重新加权方案。换句话说,T(x, x′) 中的每个值表示 x 与 x′ 的元素对齐的权重或重要性。
Self-optimal Transport (SeT)
- 将输入输入特征 𝑋 和参考特征 𝑌 映射到RKHS,这些参考特征用于与输入特征进行对齐
- 使用OT来计算输入特征 𝑋 和参考特征 𝑌 之间的对齐分数,通过最小化传输成本来找到最优的传输计划 𝑇。
- 根据OT得到的传输计划 𝑇,进而形成对齐矩阵 𝐴:
,其中U是输入特征在RKHS中的表示
- 将输入特征 𝑥 通过传输计划 𝐴 与参考特征 𝑦 的加权聚合
![]()
输入特征:通过相关网络提取的图像特征
参考特征:参考特征是一组预先计算好的向量,它们代表了输入数据中的关键特征或模式。可以通过聚类算法(如K-means)从训练数据中生成的。这种方法可以捕捉到数据中的代表性特征,并将它们用作参考特征集。参考特征在模型中起到了锚点的作用,帮助模型通过OT对齐来聚合输入特征。
总的来说,在SeTformer中,SeT用于替代传统的自注意力机制,通过以下步骤:
- 输入特征通过卷积层进行下采样和嵌入。
- 使用SeT计算输入特征与参考特征之间的对齐分数。
- 根据对齐分数进行特征的加权聚合,生成新的表示。
- 这些表示被送入后续的网络层,如多层感知机(MLP)和归一化层。
结论
SeTformer展示了在视觉和语言任务中的高效性和有效性。通过一系列实验验证了其在图像分类、目标检测和语义分割等任务上的优越性能。此外,SeTformer在语言建模任务上也取得了良好的结果,证明了其在不同领域的泛化能力。论文指出,SeTformer为探索更好的基于内容的交互提供了新的视角,有助于提升视觉识别模型的性能。
相关文章:
《SeTformer Is What You Need for Vision and Language》
会议:AAAI 年份:2024 论文:DDAE: Towards Deep Dynamic Vision BERT Pretraining - AMinerhttps://www.aminer.cn/pub/6602613613fb2c6cf6c387c2/ddae-towards-deep-dynamic-vision-bert-pretraining 摘要 这篇论文介绍了一种新型的变换器…...
[保姆级教程]uniapp安装使用uViewUI教程
文章目录 创建 UniApp 项目下载uView UI下载安装方式步骤 1: 安装 uView UI步骤 2: 查看uView UI是否下载成功步骤 3: 引入 uView 主 JS 库步骤 4: 引入 uView 的全局 SCSS 主题文件步骤 5: 引入 uView 基础样式步骤 6: 配置 easycom 组件模式注意事项 NPM方式步骤 1: 安装 uVi…...
网络安全法规对企业做等保有哪些具体规定?
网络安全法规对企业做等保的具体规定 根据《中华人民共和国网络安全法》,企业作为网络运营者,需要履行网络安全等级保护制度的相关义务,确保网络安全和数据保护。具体规定包括: 网络安全等级保护制度:企业应根据网络安…...
Java开发中超好用Orika属性映射工具
Orika属性映射工具 引入pom依赖 <dependency><groupId>ma.glasnost.orika</groupId><artifactId>orika-core</artifactId><version>1.5.4</version></dependency>上干货 封装的工具类:OriUtilsimport ma.glasnost.orika.Map…...
qt初入门8:下拉框,输入框模糊查询,提示简单了解 (借助QCompleter)
实现一个简单的模糊查询的逻辑,输入框能提示相关项。 主要借助qt的QCompleter 类( Qt 框架中提供的一个用于自动补全和模糊搜索的类),结合一些控件,比如QComboBox和QLineEdit,实现模糊查询的功能。 1&…...
【qt】VS中如何配置Qt环境
https://download.qt.io/official_releases/vsaddin/ 首先需要下载一下vsaddin,上面的是下载的网站. 下载的时候可能会出现下图的情况 说明你下的vsaddin和您的VS版本不匹配,所以你可以多下几个其他版本的vsAddin,一般都是和你VS版本相匹配的才可以,如Vs2022,那就试试vsaddin2…...
对于相同网段的IP,部分无法ping通问题
现象1:在Linux上执行 ping 192.168.1.232,无法ping通 分析1:使用ifconfig查询,联网使用eth0口,只能上网192.168.10.xx网段,需要增加网段 解决方法:使用ip addr 查询,本身只具备10网…...
Unity发布XR中用于worldbuilding的全新电子书
通过身临其境的虚拟领域开始旅程,在维度之间传送,或将数字奇迹与现实世界融合——虚拟现实(VR)和混合现实(MR)的千万种可能性将邀请创作者把他们的想象力带入生活。 Unity发布的最新版综合指南将帮助有抱负的创作者和经验丰富的开发者深入研究和理解构建…...
Vue3相比于Vue2进行了哪些更新
1、响应式原理 vue2 vue2中采用 defineProperty 来劫持整个对象,然后进行深度遍历所有属性,给每个属性添加getter和setter,结合发布订阅模式实现响应式。 存在的问题: 检测不到对象属性的添加和删除数组API方法无法监听到需要对…...
Unity UGUI 之 Slider
本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 1.Slider是什么 滑块,由三部分组成:背景 填充条 手柄 填充条就是…...
这7款高效爬虫工具软件,非常实用!
在当今数据驱动的时代,自动化爬虫工具和软件成为了许多企业和个人获取数据的重要手段。这里会介绍6款功能强大、操作简便的自动化爬虫工具,用好了可以更高效地进行数据采集。 1. 八爪鱼采集器 八爪鱼是一款功能强大的桌面端爬虫软件,主打可…...
【OJ】二叉树相关OJ题
✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:OJ题 个人主页:Celias blog~ 目录 编辑 单值二叉树 题目描述 OJ-单值二叉树 解题思路 …...
Blender中保存透明图片
在Blender中保存透明图片,主要是通过在渲染设置中调整背景透明度,并选择合适的文件格式来保存图像。以下是一个详细的步骤指南: 一、设置渲染属性 打开Blender并加载你想要渲染的模型。在右侧的属性编辑器中,找到并点击“渲染属…...
MySQL之索引优化
1、在进行查询时,索引列不能是表达式的一部分,也不能是函数的参数,否则无法使用索引 例如下面的查询不能使用 actor_id 列的索引: #这是错误的 SELECT actor_id FROM sakila.actor WHERE actor_id 1 5; 优化方式:…...
Spring Boot 与 Amazon S3:快速上传与下载文件的完整指南
概要 在将 Spring Boot 更新到 3 系列时,由于 javax 需要被替换为 jakarta,因此原先依赖于 javax 的 spring-cloud-starter-aws1 将无法使用(虽然在我本地环境中仍然可以正常工作)。为了确保兼容性,我将依赖关系更改为…...
细节剖析:HTTP与HTTPS在安全性、性能等方面的不同!
HTTPS是现代互联网通信的重要基石,通过加密通信、身份验证和数据完整性保护,为数十亿用户提供了安全可靠的互联网体验。 小编整理了2GB程序员相关资料,关注微信公众号“程序员Style”回复“程序员”免费领取! 1、介绍 随着 HTT…...
MySQL面试篇章——MySQL索引
文章目录 MySQL 索引索引分类索引创建和删除索引的执行过程explain 查看执行计划explain 结果字段分析 索引的底层实现原理B-树B树哈希索引 聚集和非聚集索引MyISAM(\*.MYD,*.MYI)主键索引辅助索引(二级索引) InnoDB&a…...
WSL 2 Oracle Linux 9.1 安装配置
文章目录 环境使用体验安装 Oracle Linux 9.1修改默认存储路径默认 root 用户登录启用 systemd启用 SSH 连接WSL 无法 ping 通宿主机和域名WSL 使用主机代理(测试通过)WSL 常用命令 环境 OS:Win11 24H2 (OS 内部版本26120.1252) wsl --versio…...
MySQL日志文件详解
MySQL中的日志文件是MySQL数据库系统的重要组成部分,它们记录了数据库的运行情况、用户操作、错误信息等,对于数据库的维护、优化、故障排查和恢复都具有重要意义。以下是MySQL中几种主要日志文件的详解: 1. 二进制日志(Binary L…...
MySQL零散拾遗(三)
在mysql中,JOIN ON 和 WHERE 的作用和用法是怎么样的? 在MySQL中,JOIN语句用于将两个或多个表根据指定的关联条件合并成一个新的结果集。JOIN ON和WHERE子句在JOIN语句中扮演着不同的角色,它们的用法和作用如下: JOI…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
