从固定到可变:利用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.hqwc.cn/news/670725.html

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

相关文章

模板初阶篇

本篇目标 泛型编程函数模板类模板 一、泛型编程 下面是实现一个通用的交换函数 void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, double& right) {double temp left;left right;right temp; } v…

SpringBoot整合rabbitmq使用案例

RocketMQ(二十四)整合SpringBoot SpringBoot整合rabbitmq使用案例 一 SpringBoot整合RocketMQ实现消息发送和接收消息生产者1)添加依赖2)配置文件3)启动类4)测试类 消息消费者1)添加依赖2&…

软件测试,软件评测师

如果你想考软件评测师证书,那这篇文章可以帮你少走很多弯路,估计你用别人一半的时间备考就可以通过考试,以下为本人亲身经验哈,你可以先收藏后看哦,提前祝你考试过过过。 如果以后想从事一份软件测试工程师的工作&…

【算法系列】链表

目录 常用技巧 常用操作 leetcode/牛客题目 一、移除链表元素 二、反转链表 三、链表的中间结点 四、返回倒数第k个节点 五、合并两个有序链表 六、链表分割 七、链表的回文结构 八、相交链表 九、环形链表 十、环形链表 II 十一、随机链表的复制 十二、两数相加…

淡茶怎么泡?

很多人都知道喝浓茶对身体不好,但是怎么冲泡淡茶却一知半解。按照《品深淡茶冲泡标准》中对绿茶冲泡淡茶的规定,冲泡的茶汤中咖啡碱不得高于31.67mg/100mL,可可碱不得高于2.67mg/mL,茶碱不得高于1.50mg/100mL,茶多酚不…

使用nginx部署Vue项目

前提是后端已经跨域! 下载nginx,在路径下使用cmd打开nginx,关闭nginx使用任务管理器details end task 把dist中的文件都放到html文件夹中 打开conf,找到nginx.conf,编辑以下内容 location就是刚才放dist文件的那个文…

ArthasGC日志GCeasy详解

Arthas详解 Arthas是阿里巴巴在2018年9月开源的Java诊断工具,支持JDK6,采用命令行交互模式,可以方便定位和诊断线上程序运行问题.Arthas官方文档十分详细.详见:官方文档 Arthas使用场景 Arthas使用 # github下载arthas wget https://alibaba.github.io/arthas/arthas-boot.j…

Go 语言 ORM 框架之 xorm

1、xorm 1.1、xorm 简介 xorm 是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 特性 支持 struct 和数据库表之间的灵活映射,并支持自动同步事务支持同时支持原始SQL语句和ORM操作的混合执行使用连写来简化调用支持使用ID, In, Where, Limit,…

太速科技-FMC377_双AD9361 射频收发模块

FMC377_双AD9361 射频收发模块 FEATURES: ◆ Coverage from 70M ~ 6GHz RF ◆ Flexible rate 12 bit ADC/DAC ◆ Fully-coherent 4x4 MIMO capability, TDD/FDD ◆ RF ports: 50Ω Matched ◆ support both internal reference and exter…

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

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

JavaScript注释规范

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃 ,大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端基础路线”,可获…

JSON原生AJAX

文章目录 JSONFastjsonfastjson引入fastjson 常用APIfastjson作用常用API使用实例 ajax和json综合(重要)请求参数和响应数据都是普通字符串响应数据改为json格式请求和响应都是js数据封装到Result类和抽取到BaseController 原生AjaxAJAX的执行流程XMLHttpRequest对象使用原生的…