从固定到可变:利用Deformable Attention提升模型能力

1. 引言

本文将深入探讨注意力机制的内部细节,这是了解机器如何选择和处理信息的基础。但这还不是全部,我们还将探讨可变形注意力的创新理念,这是一种将适应性放在首位的动态方法。

闲话少说,我们直接开始吧!

2. 注意力机制

想象一下,在阅读一个长句子时,大家的注意力并不是平均分配到每个单词上的。相反,你会更专注于对理解至关重要的关键词。同样,神经网络中的注意力机制也是通过为输入序列的不同片段分配权重,根据它们对特定任务的重要性来确定优先级的。
在这里插入图片描述

标准注意力层的构成包括以下部分:

  • Query:就像模型在问:"我在找什么?"它是一组向量,表示模型此刻好奇的内容。这些向量承载了模型所需的上下文特征,以便关注输入中的重要内容。
  • Key:作为一组线索,显示输入中的内容。注意力系统会将问题(Query)中的线索与输入(Key)中的线索进行比较,找出它们的匹配程度。这些关键线索能帮助模型找出输入内容中哪些部分对其试图回答的问题最为重要。
  • Value: 表示包含输入中每个部分的真实信息。它就像模型所观察到的与每个部分相关联的实际内容或特征。
  • Attention Scores:就像给模型对不同事物的关注程度打分一样。当模型查看信息时,它会给每个部分打分,决定哪些部分更重要。它们可以帮助模型找出需要重点关注的地方。从技术上讲,注意力分数指的是查询向量Query与给定向量key之间的相似性或相关性度量。
  • Attention weights: 通过对注意力得分使用softmax函数计算后得出,确保其总和等于 1。它们帮助模型决定如何权衡每个元素在全局中的价值。
  • Output:是value的加权之和,每个数值在相加之前都要乘以指定的注意力权重。最终结果包含了序列中对当前任务最重要的基本信息。
    在这里插入图片描述

Querykeyvalue由同一序列生成时,我们称之为自注意力机制。

在这里插入图片描述

3. 可变形注意力机制

可变形注意力机制(Deformable Attention)是一种通过在序列或图像输入中加入捕捉空间联系来增强自我注意力机制的方法。它最初是为计算机视觉任务而设计的,具有灵活性,能有效处理错综复杂的空间关系。
在这里插入图片描述

在常规的自注意力机制中,序列中的每个位置或图像中的每个空间点都以固定、预先定义的方式与其他位置相互作用。而 "可变形注意力机制 "则建议:"让我们学习如何动态地转移注意力。这一创新机制使模型能够处理数据中复杂不均衡的关系,从而在识别图像或序列中的复杂模式时更加灵活和智能。

4. 可变形注意力机制的构成

可变形注意力机制的组成如下:

  • Query, Key, Value: 与自注意力机制类似,不在累述。
  • Sampling Points: 作为起点,表示未进行变形调整时的位置
  • Sampling Offsets: 动态调整采样点可学习的向量。引入与每个位置相关的额外可学习参数。这些偏移量可控制每个位置"移动 "或变形其注意力区域的程度。
  • Deformed Sampling Points: 通过在原始位置上添加偏移量得到的模型最终应该关注位置。
  • Attention Scores: 衡量每个变形采样点与查询Query的相关性。
  • Attention Weights: 归一化分数,表示每个变形采样点的重要性。
  • Output:基于注意力权重的加权值之和

采样点偏移量的预测涉及一个小型神经网络。该模型会检查每个key的周围语义信息,并预测代表采样点偏移的向量,从而可以有效调整初始采样点。

变形采样点是通过将初始网格位置与模型预测的偏移量相结合而得出的。最终调整后的采样点可对内容做出动态响应,这与标准注意力机制中使用的固定点形成了鲜明对比。

在 K和V变形的情况下,可变形注意力的公式如下。而 ϕ 是位置嵌入。

在这里插入图片描述

5. 总结

可变形注意力机制就像是电脑关注事物的一种智能方式。它不再拘泥于固定点,而是可以调整并更好地关注不同的事物,这有助于它出色地完成寻找图片中的物体、描述图像和语言翻译等任务。这就像拥有了一个更多功能的工具,可以很好地处理不同类型的信息。虽然有点复杂,但如果仔细操作,可变形注意力可以带来更好的效果。

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

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

相关文章

pytest教程-36-钩子函数-pytest_collection_start

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了pytest_unconfigure钩子函数的使用方法,本小节我们讲解一下pytest_collection_start钩子函数的使用方法。 pytest_collection_start(session) 是一个 pytest 钩子函数,…

Python_4-对象序列化操作

文章目录 Python中对象数据持久化操作模块学习笔记marshal模块优点缺点使用示例保存数据到文件从文件读取数据 shelve模块优点缺点使用示例保存数据到文件从文件读取数据 总结 Python中对象数据持久化操作模块学习笔记 在Python中,数据持久化指的是将程序中的数据结…

秋招后端开发面试题 - JVM垃圾回收算法

目录 JVM垃圾回收算法前言面试题垃圾收集有哪些算法,各自的特点?说一下新生代的区域划分?Minor GC/Young GC、Major GC/Old GC、Mixed GC、Full GC?Minor GC/Young GC 什么时候触发?什么时候会触发 Full GC&#xff1f…

程序员做知识付费,做大纲时要注意那些点?

大纲的注意点 本节我们将讨论制作大纲时的要点。由于大家对大纲的制作已有一定了解,因此我们不会全面展开,而是聚焦于一些关键注意事项与大家分享。 条理性 最关键的一点是大纲必须具备清晰的条理性。如果大纲在逻辑结构上不够清晰,无论其他…

初二的孩子怎么沟通和教育,这个教育方法家长必看

初中生正值“身心聚变”时期,其中初二学生尤为明显,美国心理学家霍林沃斯称之为“心理性断乳期”。他们希望别人把他们看成“大人”,希望别人信任尊重他们。为此,家长应当积极配合学校工作,针对这种思想,采…

PHP基于B/S版 医院不良事件管理系统源码vscode+laravel8医院如何加强不良事件上报系统的管理 AEMS系统源码

PHP基于B/S版 医院不良事件管理系统源码vscodelaravel8医院如何加强不良事件上报系统的管理 AEMS系统源码 医院安全(不良)事件管理AEMS系统AEMS采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为主要…

快速编写测试用例(超详细~)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 当你学会了如何设计测试用例之后,接下来便是开始用例…

设计模式设计原则

设计原则 前言:了解设计模式之前,一定要先理解什么设计原则,只有这样才能悟透设计模式的根本。 快速入口 工厂模式单例模式 1.何为设计? 按哪一种思路或者标准来实现的功能;功能相同,可以有不同设计的方…

黑马苍穹外卖

sky-pojo子模块内容 Entity:实体,通常和数据库中的表对应DTO:数据传输对象,通常用于程序中各层之间传递数据(eg:前端返回的json数据,后端要接收,并且转化为java对象,此时…

QtConcurrent::run操作界面ui的注意事项(1)

先说结论:QtConcurrent::run启动的耗时处理函数,不允许处理ui界面对象,如控件,如进度条等等! QtConcurrent::run非常好用,胜过QThead的两种方式(run和moveToThread),例如…

拆炸弹(Lc1652)——模拟

你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。 为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。 如果 k > 0 ,将第 i 个数字用 接下来 k 个数字之…

ERP系统电子文件归档和电子档案管理规范

ERP系统电子文件归档和电子档案管理规范 1 范围 本文件描述了企业资源计划(ERP)系统形成电子文件归档和电子档案管理的方法。 本文件适用于企业资源计划(ERP)系统(含采购、销售、物料、生产计划、质量、设备、项目…

使用C#和EF Core实现高效的SQL批量插入

在软件开发中,批量插入数据是一个常见的需求,特别是在数据迁移、初始化数据库或进行大量数据处理时。Entity Framework Core (EF Core) 是一个流行的.NET对象关系映射器(ORM),它简化了数据库操作,但在进行大…

Linux CPU 飙升 排查五步法

排查思路-五步法 1. top命令定位应用进程pid 找到最耗时的CPU的进程pid top2. top-Hp[pid]定位应用进程对应的线程tid 找到最消耗CPU的线程ID // 执行 top -Hp [pid] 定位应用进程对应的线程 tid // 按shift p 组合键,按照CPU占用率排序 > top -Hp 111683.…

用wordpress建跨境电商独立站的5大优势

免费和开源 WordPress是一个免费的开源内容管理系统,用户可以自由下载、安装和使用,无需支付版权费用或订阅费用。开源特性也意味着用户可以根据自己的需求修改和定制代码,或者使用其他开发者提供的插件和主题来扩展和美化网站。 易用和灵活…

探索Vue 3.0中的v-html指令

探索Vue 3.0中的v-html指令 一、什么是v-html指令?1、 在Vue 3.0中使用v-html2、 注意事项 二、结语 一、什么是v-html指令? Vue.js作为一款流行的JavaScript框架,不断地演进着。随着Vue 3.0的发布,开发者们迎来了更加强大和灵活…

CMS清理流程及问题

CMS(Concurrent Mark Sweep,并发标记清除)收集器是以获取最短回收停顿时间为目标的收集器(追求低停顿),它在垃圾收集时使得用户线程和GC线程并发执行,因此在垃圾收集过程中用户也不会感到明显的卡顿。从名字…

SparkSQL编程入口和模型与SparkSQL基本编程

SparkSQL编程入口和模型 SparkSQL编程模型 主要通过两种方式操作SparkSQL,一种就是SQL,另一种为DataFrame和Dataset。 1)SQL:SQL不用多说,就和Hive操作一样,但是需要清楚一点的是,SQL操作的是表&#xf…

为什么很多人不推荐你用JWT?

为什么很多人不推荐你用JWT? 如果你经常看一些网上的带你做项目的教程,你就会发现 有很多的项目都用到了JWT。那么他到底安全吗?为什么那么多人不推荐你去使用。这个文章将会从全方面的带你了解JWT 以及他的优缺点。 什么是JWT? 这个是他的官网JSON…

Linux学习(一)-- 简单的认识

目录 1. Linux的诞生 2.Linux发行版 拓展: (1)什么是Linux系统的内核? (2)什么是Linux系统发行版? 1. Linux的诞生 Linux创始人: 林纳斯 托瓦兹 Linux 诞生于1991年,作者上大学…