从固定到可变:利用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中,数据持久化指的是将程序中的数据结…

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

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

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

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

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.…

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年,作者上大学…

2×24.5W、内置 DSP、低失真、高信噪比、I2S 输入 D 类音频功率放大器,完美替换TPA5805,晶豪,致盛,

ANT3825 是一款高集成度、高效率的双通道数字 输入功放。供电电压范围在 5V~18V,数字接口 电源支持 3.3V 或 1.8V。双通道 BTL 模式下输出 功率可以到 224.5W(4Ω,16V,THDN1%), 单通道 PBTL 模式下可以输出 37W&#x…

Spring IoCDI(2)—IoC详解

目录 一、IoC详解 1、Bean的存储 (1)Controller(控制器存储) 获取bean对象的其他方式 Bean 命名约定 (2)Service(服务存储) (3)Repository&#xff08…

2分钟教你Flutter怎么避免引用内存泄漏

2分钟教你Flutter怎么避免引用内存泄漏 内存泄漏原因1. 在当前类,或者方法等移除改引用,让其他自动释放,等下一轮GC扫描释放。如2. 使用弱引用-----**WeakReference**,当前使用完,生命周期结束后,自动释放。…

VTK —— 三、图形格式 - 示例1 - 读取.vtp文件并输出.ply文件(附完整源码)

代码效果:演示程序读取.vtp后输出.ply文件,使用paraview打开该输出的.ply文件 本代码编译运行均在如下链接文章生成的库执行成功,若无VTK库则请先参考如下链接编译vtk源码: VTK —— 一、Windows10下编译VTK源码,并用V…

opencv图像处理详细讲

传统的计算机视觉框架: SimpleCV BoofCV Dlib JavaCV 深度学习计算机视觉框架 Caffe Tensorflow Pytorch Paddlepaddle Keras 深度视觉计算机视觉框架 OpenVINO TensorRT onnxruntime Deepface YOLO/DarkNet mmdetection Paddle-detection/seg/ocr …

重识来伊份:抢滩首店经济,休闲零食品牌的“面子”和“里子”

前不久,苹果静安零售店的首秀频频登上热搜。 这背后,不仅仅因为它是中国大陆最大的苹果旗舰店,还在于它的设计融入了时尚又古典的上海街区,吸引了众多市民拍照打卡。今年3月至5月,上海会持续举办“首发上海”春季系列…

电能计量抄表系统

1.电能计量抄表系统的概念和作用 电能计量抄表系统是一种前沿的自动化控制,主要运用于电力行业的电费计算及管理。它通过远程数据采集和处理,实时监控系统用户的用电状况,取代了传统的手工抄水表方法,降低了成本,降低…

五、VGA 叠加图像原理和实现(十字光标)

前言:该案例在VGA项目:联合精简帧双fifosobel算法 实现VGA显示项目的基础上进行改动。 要求:通过串口助手把 198x198 的十字光标图像二进制数据传递给 FPGA 板卡,FPGA 板 卡接收到后存储到 Ram 中用于 VGA 叠加显示。 预期效果展…

020、Python+fastapi,第一个Python项目走向第20步:ubuntu 24.04 docker 安装mysql8集群+redis集群(一)

系列文章 pythonvue3fastapiai 学习_浪淘沙jkp的博客-CSDN博客https://blog.csdn.net/jiangkp/category_12623996.html 前言 docker安装起来比较方便,不影响系统整体,和前面虚拟环境有异曲同工之妙,今天把老笔记本T400拿出来装了个ubuntu24…

小程序激励广告视频多次回调问题

1.问题 2. 激励视频使用及解决方案 官方文档 let videoAd null; // 在页面中定义激励视频广告 Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {let that this;// 创建激励视频广告实例if (wx.createRewardedVideoAd) {videoAd w…