从固定到可变:利用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. 总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Dockerfile创建Docker镜像

Dockerfile DOCKER镜像的组成 Docker 镜像的构建和使用是基于 UnionFS(联合文件系统)的原理。UnionFS 允许将多个目录挂载到一个虚拟文件系统下,并且可以对这些目录进行修改,这些修改会以一次提交的形式叠加在已有的文件系统层上…

CTF-WEB(MISC)

安全攻防知识——CTF之MISC - 知乎 CTF之MISC杂项从入门到放弃_ctf杂项 你的名字-CSDN博客 CTF MICS笔记总结_archpr 掩码攻击-CSDN博客 一、图片隐写 CTF杂项---文件类型识别、分离、合并、隐写_ctf图片分离-CSDN博客 EXIF(Exchangeable Image File)是…

笔记本电脑怎么多选删除文件?误删除文件怎么办

在日常使用笔记本电脑中,我们可能会遇到需要删除大量文件的情况,例如清理临时文件、整理文档或卸载不再需要的程序。手动一个一个地删除不仅效率低下,还可能遗漏某些文件。那么,如何在笔记本电脑上高效地进行多选删除操作呢&#…

Case中default的综合结果

在使用case语句时,不完备的case语句会导致Vivado综合时推断出锁存器。下面通过实例来详细看看各种情况下的综合结果: 1.完备的case语句 下述的verilog对应的电路结构是一个8选一的多路复用器: module case_test(input [2:0]sel,input data…

PostgreSQL连接拒绝如何解决和排查?

1. 服务器未运行 解决方案:确保 PostgreSQL 服务已启动。在 Linux 上,你可以使用如下命令来检查服务状态:sudo systemctl status postgresql如果服务未运行,使用以下命令启动它:sudo systemctl start postgresql2. Po…

【软考】模拟考卷错题本2024-05-05

1 算法 关键词:按照单位重量价值大优先,那就是1、2、3即430;之后的根据排除法又可以得到630;故C。 2 UML 序列图 上图已经基本上有解析;重点在于在四个选项中选正确的。根据概念排除:异步和同步是不一样的&…

uniapp的底部弹出层实现保姆式教程

实现照片: 此过程先进入uniapp官网,找到扩展组件 打开找到里面的uni-popup和uni-icons 点击进入,下载&安装 点击下载并导入HBuilderX 导入到你使用的目录,如test目录

高效、精准:皮秒激光切割机在陶瓷基板加工中的应用

皮秒激光切割机(激光划片机)在陶瓷基板切割领域具有显著的优势和潜力,主要体现在以下几个方面: 1. 高精度:皮秒激光切割机能够实现极高的切割精度,对于陶瓷基板这种需要精细加工的材料尤为重要。它能够在不…

五一 作业

#include <iostream>using namespace std; class Num { private:int a; public:Num() {}Num(int a):a(a){}//设置a的值void set(int a){this->aa;}//1-a的和void Sum(){if(a<1){cout<<"a<1"<<endl;return;}int sum0;for(int i1;i<a;i)…

Excel文件解析---超大Excel文件读写

1.使用POI写入 当我们想在Excel文件中写入100w条数据时&#xff0c;使用XSSFWorkbook进行写入时会发现&#xff0c;只有将100w条数据全部加载到内存后才会用write()方法统一写入&#xff0c;效率很低&#xff0c;所以我们引入了SXXFWorkbook进行超大Excel文件读写。 通过设置 …

图像降噪算法 BM3D 介绍

介绍 BM3D 是 “Block-Matching and 3D Filtering” 的缩写&#xff0c;即三维块匹配滤波&#xff0c;它是一种用于图像去噪的算法。该算法来源于 一篇“Image and video denoising by sparse 3D transform-domain collaborative filtering”的高质量文章&#xff0c;文章的作…

软件测试面试问题汇总

一般软件测试的面试分为三轮&#xff1a;笔试&#xff0c;HR面试&#xff0c;技术面试。 前两轮&#xff0c;根据不同企业&#xff0c;或有或无&#xff0c;但最后一个技术面试是企业了解你“行不行”的关键环节&#xff0c;每个企业都会有的。 在平时的学习、工作中一定要善于…

为什么要学Python?学Python有什么用?

为什么要学Python&#xff1f;学Python有什么用&#xff1f; 在当今的数字化时代&#xff0c;编程已成为一项宝贵的技能。Python&#xff0c;作为一种流行的编程语言&#xff0c;因其易于学习和强大的功能而受到全球开发者的青睐。本文将探讨学习Python的原因和它的实际应用&am…

MLP实现fashion_mnist数据集分类(1)-模型构建、训练、保存与加载(tensorflow)

1、查看tensorflow版本 import tensorflow as tfprint(Tensorflow Version:{}.format(tf.__version__)) print(tf.config.list_physical_devices())2、fashion_mnist数据集下载与展示 (train_image,train_label),(test_image,test_label) tf.keras.datasets.fashion_mnist.l…

如何使git提交的时候忽略一些特殊文件?

认识.gitignore文件 在生成远程仓库的时候我们会看到这样一个选项&#xff1a; 这个.gitignore文件有啥用呢&#xff1f; .gotignore文件是Git版本控制系统中的一个特殊文件。用来指定哪些文件或者目录不被Git追踪或者提交到版本库中。也就意味着&#xff0c;如果我们有一些文…

怎么通过Java语言实现远程控制无人售货柜

怎么通过Java语言实现远程控制无人售货柜呢&#xff1f; 本文描述了使用Java语言调用HTTP接口&#xff0c;实现控制无人售货柜&#xff0c;独立控制售货柜、格子柜的柜门。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称厂商1智能WiFi控…

使用 Postman 实现 API 自动化测试

背景介绍 相信大部分开发人员和测试人员对 postman 都十分熟悉&#xff0c;对于开发人员和测试人员而言&#xff0c;使用 postman 来编写和保存测试用例会是一种比较方便和熟悉的方式。但 postman 本身是一个图形化软件&#xff0c;相对较难或较麻烦&#xff08;如使用 RPA&am…

低功耗UPF设计的经典案列分享

案例1 分享个例子&#xff0c;景芯A72低功耗设计&#xff0c;DBG domain的isolation为何用VDDS_maia_noncpu供电而不是TOP的VDD&#xff1f; 答&#xff1a;因为dbg的上一级是noncpu&#xff0c;noncpu下面分成dbg和两个tbnk。 案例2 景芯A72的低功耗&#xff0c;请问&#…

精品干货 | 数据中台与数据仓库建设(免费下载)

【1】关注本公众号&#xff0c;转发当前文章到微信朋友圈 【2】私信发送 数据中台与数据仓库建设 【3】获取本方案PDF下载链接&#xff0c;直接下载即可。 如需下载本方案PPT/WORD原格式&#xff0c;请加入微信扫描以下方案驿站知识星球&#xff0c;获取上万份PPT/WORD解决方…

零基础入门学习Python第二阶01生成式(推导式),数据结构

Python语言进阶 重要知识点 生成式&#xff08;推导式&#xff09;的用法 prices {AAPL: 191.88,GOOG: 1186.96,IBM: 149.24,ORCL: 48.44,ACN: 166.89,FB: 208.09,SYMC: 21.29}# 用股票价格大于100元的股票构造一个新的字典prices2 {key: value for key, value in prices.i…