注意力机制(三)(不同注意力机制对比)

​🌈 个人主页十二月的猫-CSDN博客
🔥 系列专栏 🏀《深度学习基础知识》

      相关专栏: 《机器学习基础知识》

                         🏐《机器学习项目实战》
                         🥎《深度学习项目实战(pytorch)》

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

回顾

注意力机制本质 

注意力机制是父类

注意力机制的限制 

自注意力机制

交叉注意力机制 

 XXX注意力机制

总结


回顾

前面两篇文章:

注意力机制(一)(基本思想)-CSDN博客

注意力机制(二)(自注意力机制)-CSDN博客

主要介绍了注意力机制的基本思想,以及注意力机制中一个常见的类型——自注意力机制。前面两篇文章为了帮助大家理解注意力机制的思想用了非常多的类比,以及联系生活实际

然而,不管类比和联系多么恰当,这些做法多多少少都会让事物本身的特性被类比、联系后的事物所掩盖。

所以本篇文章我们有两个任务:

1、还原注意力机制的本质:不使用任何的类比、比喻,仅仅来灌输注意力机制的本身思想

2、比对不同注意力机制类型:在注意力机制的本质下去比对不同注意力机制类型

注意力机制本质 

注意力机制是父类

注意力机制是一个宏大的概念,也就说注意力机制指的是一群方法,而不是一个方法。并且,现在的模型都不会直接用原始注意力机制来做,而是用其变型来完成。

所以:

注意力机制是自注意力机制、交叉注意力机制、多头注意力机制的一个父类。并且可以认为里面的Q的来源是一个未实现的抽象类,需要在其子类(自注意力机制、交叉注意力机制等)中具体去实现

注意力机制的限制 

对于上面这张图,大家应该都非常熟悉了:

1、Q与K进行查询,查询出K与Q的相似度

2、将相似度进行缩放处理

3、将Scale结果进行softMax处理的到0-1的概率值

4、将V和概率值进行MatMul后,得到的结果V‘就包含注意力的信息 

注意力机制虽然没有规定QKV的来源和关系,但是它限制QKV的做法以及其所蕴含的含义。

因此,只要满足这四步操作的,我们都可以称为是一种注意力机制 

自注意力机制

自注意力机制是注意力机制的一种特殊形式,注意力机制包括自注意力机制

在自注意力机制中,QKV是同源的,因此自注意力机制能够很好的探寻序列内部的信息

从上图中,对于Thinking的词向量X1,通过三次矩阵变化就得到了q、k、v

其实,所谓的Q K V矩阵、查询向量之类的字眼,其来源都是\large X与矩阵的乘积,本质上都是\large X的线性变换。那么为什么不直接使用\large X而要对其进行线性变换呢?

当然是为了提升模型的拟合能力,矩阵\large W都是可以训练的,起到一个缓冲的效果

总之,自注意力机制对QKV的来源(初始值)关系存在一定的限制(这个限制让自注意力机制更易探寻模型内部的信息)(对单一序列分析有很好的效果),同时也通过矩阵\large W使得模型可训练,起到缓冲作用

交叉注意力机制 

交叉注意力是注意力机制的一种,它处理两个相关但不同的序列。这在多模态任务中特别有用,如图像和文本的联合处理(存在联系的多序列联合分析)

特点:V、K同源,Q来自另一个序列(如下图)

针对这个特点,我们不难理解为何交叉注意力机制多用于多模态任务:

1、V、K来自一段视频,Q来自一段音频。要求利用音频在视频中查找音频相关的视频内容

2、此时Q就代表查询项(爱好匹配),拿这个查询项到视频构造出来的序列中去查询。给视频(K、V)中和音频(Q)相匹配的部分给予更高的关注度

3、于是在最后得到的视频序列V‘中,就重点考虑了我们要的相匹配的部分序列。此时无论是做相关视频内容的生成、查找都可以很方便的利用这个V’

 XXX注意力机制

我们同样可以:

1、让QKV都不同源

2、让Q=1,KV同源

3、anyway~~~~

总之,我们任意给QKV的来源加以改变我们就可以得到一个全新的注意力机制。但是这样的一个来源组合,你必须要能够给出一个合理的解释同时保证它有一个很好的效果,否则就是没有意义的(现在对注意力来源修改的研究很多啦,想要利用这个发现一个全新的、优秀的注意力机制可不容易)

总结

1、注意力机制是一个方法群体的总称(父类)

2、自注意力、交叉注意力机制都是对注意力机制的继承,对QKV来源进行了限制

3、注意力机制本身对QKV的限制仅仅在操作方法上

4、自注意力机制主要用于单一序列的内部分析;交叉注意力机制用于多模态学习(多序列分析)


撰写文章不易,如果文章能帮助到大家,大家可以点点赞、收收藏呀~

十二月的猫在这里祝大家学业有成、事业顺利、情到财来

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

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

相关文章

【Harmony3.1/4.0】笔记五

概念 本文综合row,column作为主要布局,结合image组件,text组件,textimput组件,button组件以及轮播布局搭建登录页面 效果图 ArkTS代码 //登录综合页面 Entry Component struct Five{//添加图片State imgs:Resource[…

C#:变量的更多内容

枚举:一种变量类型,用户定义一组可能的离散值,这些值可以用人们能理解的方式使用。 结构:一种合成的变量类型,由用户定义的一组其他变量类型组成。 数组:包含一种类型的多个变量,允许以索引方…

kubernetes中的附件组件Metrics-server与hpa资源实现对pod的自动扩容和缩容

一、概述 Metrics-Server组件目的:获取集群中pod、节点等负载信息; hpa资源目的:通过metrics-server获取的pod负载信息,自动伸缩创建pod; 二、安装部署 Metrics-Server组件 安装目的,就是给k8s集群安装top…

RustGUI学习(iced)之小部件(二):如何使用滑动条部件

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述…

基于springboot+vue的民法普及系统的设计与实现

1、系统演示视频(演示视频) 2、需要请联系

kafka部分partition的leader=-1修复方案整理

kafka部分partition的leader-1修复方案整理 1. 背景说明2. 修复测试2.1 创建正常的topic并验证生产和消费2.2 停止kafka模拟leader-12.3 修复parition2.4 修复完成验证生产消费是否恢复 3. 疑问和思考3.1 kafka在进行数据消费时,如果有partition的leader-1&#xff…

openEuler 22.03 LTS SP3(华为欧拉)一键安装 Oracle 11GR2 RAC(231017)

前言 Oracle 一键安装脚本,演示 openEuler 22.03 LTS SP3 一键安装 Oracle 11GR2 RAC(231017)过程(全程无需人工干预):(脚本包括 ORALCE PSU/OJVM 等补丁自动安装) ⭐️ 脚本下载地…

【结构型模型】享元模式

一、享元模式概述 享元模式定义:又叫蝇量模式,运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细…

备考2024年小学生古诗文大会:吃透10道历年真题和知识点(持续)

对上海小学生的小升初和各种评优争章来说,语文、数学、英语的含金量较高的证书还是很有价值和帮助的。对于语文类的竞赛,小学生古诗文大会和汉字小达人通常是必不可少的,因为这两个针对性强,而且具有很强的上海本地特色。 根据往…

IPEmotion轻松解决急停设备的控制与数据存储问题

一 背景 众所周知,急停操作在各种工业领域中都扮演着非常重要的角色。在一个个紧急情况下,及时采取急停操作可节省宝贵时间,避免人身伤害或设备损坏,降低安全风险,尤其是在新能源测试中,出于对高压电性能方…

C语言实现双人贪吃蛇项目(基于控制台界面)

一.贪吃蛇 贪吃蛇是一款简单而富有乐趣的游戏,它的规则易于理解,但挑战性也很高。它已经成为经典的游戏之一,并且在不同的平台上一直受到人们的喜爱和回忆。 二.贪吃蛇的功能 游戏控制:玩家可以使用键盘输入设备来控制蛇的移动方…

书生·浦语大模型开源体系(四)作业

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…