注意力机制基本思想(一)

news2024/10/6 12:21:57

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

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

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

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

前言

在注意力机制论文 Attention Is All You Need 中最苦恼大家的肯定是K、Q、V三个变量的含义

翻阅了CSDN、知乎大量文章后,我发现没有文章能够带大家对注意力机制建立直观的认识

大部分文章要么没有从初学者的角度出发介绍的是注意力机制上层应用,要么其作者自己也并没有真正理解注意力机制所以讲的不清不楚

所以在看完《动手学深度学习(pytorch版)》、Attention Is All You Need 论文、以及大量文章后,我开始动手写这篇专门为初学者的介绍注意力机制的文章

注意力机制的起源

深度学习中的注意力机制(Attention Mechanism)是一种模仿人类视觉和认知系统的方法,它允许神经网络在处理输入数据时集中注意力于相关的部分。通过引入注意力机制,神经网络能够自动地学习并选择性地关注输入中的重要信息,提高模型的性能和泛化能力

人类的注意力

以下这张图可以较好地去理解注意力机制,其展示了人类在看到一幅图像时如何高效分配有限注意力资源的,其中红色区域表明视觉系统更加关注的目标,从图中可以看出:人们会把注意力更多的投入到人的脸部。文本的标题以及文章的首句等位置。

大数据引发的两个问题

信息过载:随着大模型的出现,训练一个深度学习模型所需要的数据量越来越大,在算力有限的情况下,如何将计算资源分配给更重要的任务,是亟待解决的问题。

信息嘈杂:在神经网络学习中,一般而言模型的参数越多则模型的表达能力越强,模型所存储的信息量也越大,这也代表信息越嘈杂(重要的,不重要的都有)。在众多的输入信息中聚焦于对当前任务更为关键的信息,降低对其他信息的关注度,甚至过滤掉无关信息,能够提高模型的准确性。

问题的解决

信息嘈杂和信息过载都意味着我们需要忽视一些无用信息专注重要信息

于是,我们就需要一个算法告诉我们该关注什么,也就是什么重要,我们的注意力该放在哪里

这就是:注意力机制(如何在深度学习的模型上做出问题应该有的注意力)

由此论证了注意力机制在深度学习(尤其是大模型中)的必要性

接下来的问题就是如何让神经网络能够自动地学习并确定注意力应该如何分配

人类注意力机制深度剖析

为了帮助理解,请大家假设一个场景:

我现在在看一份报纸,报纸中有体育板块、科技板块、股票板块、健康板块四大块内容。我平常特别爱好科技板块、其次是体育、健康和股票板块,那么我最重点关注的肯定就是科技板块,最后关注的就是股票板块

下面请大家思考这个选择过程是如何进行的呢?让我来画一张流程图解释:

上面这个流程图就是我们人类大脑看到一个内容时,如何对内容进行注意力分配的机制。我希望大家在这里停一停脚步,好好感受以下这个流程图,这对后面的理解相当重要~~~

注意力机制基本思想 

在这一部分,我们将直接来看注意力机制的基本思想

我希望大家可以把这个思想和上面人类注意力机制的流程一一对应起来

先上一张图,这个图显示的就是注意力机制实现的一整个流程,分为三个阶段

定义

1、V:被查询对象(待分配注意力的对象)(上面实例中的”报纸“)

2、Q:查询对象的偏向(爱好)(上面实例中的”我的爱好“)

3、K:V的各个部分(可以假定K=V,也可以让K和V存在某种联系)(上面实例中的”各板块“)

数学基础 

假设现在已知K,也已经确定Q,这两者都用一个矩阵(向量)来表示。

现在就来看如何计算K和Q的相似度(相似度高则给予更多注意力,否则更少注意力)

向量相似性

余弦相似性(Cosine Similarity)

余弦相似性(Cosine Similarity)是一种用于度量两个向量之间相似性的方法,通常在多维空间中使用。它衡量了两个向量之间夹角的余弦值,从而提供了一种评估它们之间关系的方式。

cosine_similarity(A, B) =A\cdot B


其中A 和 B 是两个要比较的向量。
A\cdot B 表示向量的点积,也称为内积,它是两个向量对应元素的乘积之和。

几何意义是:A 投影在 B 上的模长乘以 B 的模长

当余弦相似性等于1时,表示两个向量在多维空间中的方向完全相同,即它们是完全相似的。
当余弦相似性等于0时,表示两个向量之间不存在线性关系,它们是不相关的。
当余弦相似性等于-1时,表示两个向量在多维空间中的方向正好相反,即它们是完全不同的。
 

K、Q相似度衡量 

到这里,不难想出衡量K、Q相似度也就是衡量其中向量的相似度,所以可以用内积的方式实现

假设:Q,𝐾=𝑘1,𝑘2,⋯,𝑘𝑛 

通过点乘的方法计算Q 和 K 里的每一个事物的相似度,就可以拿到 Q 和k1𝑘1的相似值s1𝑠1,Q 和k2𝑘2的相似值s2𝑠2⋯⋯最后Q 和kn𝑘𝑛的相似值 sn

S_i=F(Q,k_i)

这是我们就有了S1,S2,S3,⋯,Sn,通过前面的分析,我们可以知道S就表示相似度,相似度越高则我们要分配的注意力也就越多。但是此时S的数据仍然是杂乱无章的,所以我们需要对S进行归一化处理,让S从相似度转为概率度,也就是分配注意力的比例

所以,这里我们对S1,S2,S3,⋯,Sn进行一层softmax得到概率a1,a2,⋯,an

到这里,我们已经完成前面两个阶段的任务,下面让我们进入阶段三

注意力分配

 阶段三的本质就是注意力的汇总,也就是根据前面算得注意力分配比例a1,a2,⋯,an来计算得出查询目标V上各部分最终得到的注意力值

数学角度来看:

V = (v1,v2,⋯,vn)

(a1,a2,⋯,an)∗+(v1,v2,⋯,vn)=(a1∗v1+a2∗v2+⋯+an∗vn) = V'

此时得到全新的V',这个V不仅包含V本身的信息,也包含查询者对这个信息的倾向爱好

Attention((K,V),Q)=\sum_{i=1}^N\alpha_iv_i

于是,我们就可以用这个 V'来代替原本的V,这个V也就包含了我们的注意力

总结

总的来说,注意力机制的完整流程为:

第一步:根据Query和Key计算二者的相似度。可以用上面所列出的加性模型、点积模型或余弦相似度来计算,得到注意力得分si;

第二步:用softmax函数对注意力得分进行数值转换。一方面可以进行归一化,得到所有权重系数之和为1的概率分布,另一方面可以用softmax函数的特性突出重要元素的权重;

第三步:根据权重系数对Value进行加权求和:


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

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

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

相关文章

2024年华中杯B题论文发布+数据预处理问题一代码免费分享

【腾讯文档】2024年华中杯B题资料汇总 https://docs.qq.com/doc/DSExMdnNsamxCVUJt 行车轨迹估计交通信号灯周期问题 摘要 在城市化迅速发展的今天,交通管理和优化已成为关键的城市运营问题之一。本文将基于题目给出的数据,对行车轨迹估计交通信号灯…

记录Python链接mysql的数据库的2种操作方式

一、使用pymysql库方式 import pymysqldb pymysql.connect(hostlocalhost,userroot,password123456) #创建链接,在3.8以后好像已经不支持这个种链接方式了, #db pymysql.connect(localhost,root,123456) cursor db.cursor()#拿到游标这样我们就拿到了…

Rust 语言 GUI 用户界面框架汇总(持续更新)

拜登:“一切非 Rust 项目均为非法”😎 什么是 GUI 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 现在的应用开发,是既要功…

云从科技AI智能体云月亮相中国铁建GSF项目展示中心

近日,中国铁建大湾区科学论坛永久会址项目综合展示体验中心(以下简称“中国铁建GSF项目展示中心”)迎来了一位特别的客服——云月数智人。云月是云从从容多模态大模型的融合承载体——AI智能体(AI-Agent),她…

设计模式系列:适配器模式

简介 适配器模式(Adapter Pattern)又称为变压器模式,它是一种结构型设计模式。适配器模式的目的是将一个类的接口转换成客户端所期望的另一种接口,从而使原本因接口不匹配而不能一起工作的两个类能够一起工作。 适配器模式有两种…

免费的浏览器翻译插件——easypubmed

支持谷歌和edge浏览器,应用商店直接检索安装就可。 非常方便,无论是打算文字还是查单词,只要选中按D,就可以一键翻译啦。 最重要是免费,而且添加了小牛翻译引擎哦。 当然了,此插件本身是给医学生准备的。Pu…

深度学习--CNN应用--VGG16网络和ResNet18网络

前言 我们在学习这两个网络时,应先了解CNN网络的相关知识 深度学习--CNN卷积神经网络(附图)-CSDN博客 这篇博客能够帮我们更好的理解VGG16和RetNet18 1.VGG16 1.1 VGG简介 VGG论文网址:VGG论文 大家有兴趣的可以去研读一下…

JAVA面向对象(下 )(一、继承和方法重写)

一、继承 1.1 什么是继承 生活中继承是指: 继承财产>延续财产 继承/遗传 父母的长相,基因 > 延续上一代的基因 继承技能、专业、职位 >延续 继承中华民族的传统文化 > 延续 青出于蓝而胜于蓝 或 长江后浪推前浪,前浪被拍在…

es安装中文分词器

下载地址,尽量选择和自己本地es差不多的版本 https://github.com/infinilabs/analysis-ik/releases 下载好,解压,把里面的文件放到es的plugins/ik目录下 把plugin-descriptor.properties文件里的es版本改成自己对应的 再启动es,能…

十、OOP面向对象程序设计(五)

1、什么是接口以及接口的运用 1)接口定义 Java接口(Interface),是一些列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能。) 2)接口定义的一般形式 修饰符:…

抖音小店怎么选品?这些超级容易爆单的选品方法,很少有人告诉你!

哈喽~我是电商月月 抖音小店的运营过程中,选品是非常重要的,好的商品不用宣传,就有人看 今天我就来给大家分享几个选品技巧,学会后商品一上架就有流量! 利用数据选品 1.“蝉妈妈”的数据排行榜选品 “蝉妈妈”能看…

在Ubuntu中如何查看NASM -f选项支持的输出格式

2024年4月19日,周五下午 用下面这条指令就可以了: nasm -hf

v1.9.2-httpsok快速申请免费SSL证书

v1.9.2-🔥httpsok快速申请免费SSL证书 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业,稳定、安全、可靠。 一行命令,一分钟轻松搞定SSL证书自动续期 更新日志 V1…

超越现实的展览体验,VR全景展厅重新定义艺术与产品展示

随着数字化时代的到来,VR全景展厅成为了企业和创作者展示作品与产品的新兴选择。通过结合先进的虚拟现实技术,VR全景展厅不仅能够提供身临其境的观展体验,而且还拓展了传统展示方式的界限。 一、虚拟现实技术的融合之美 1、高度沉浸的观展体验…

Pytorch-自动微分模块

🥇接下来我们进入到Pytorch的自动微分模块torch.autograd~ 自动微分模块是PyTorch中用于实现张量自动求导的模块。PyTorch通过torch.autograd模块提供了自动微分的功能,这对于深度学习和优化问题至关重要,因为它可以自动计算梯度&#xff0c…

行人属性AI识别/人体结构化属性AI识别算法的原理及应用场景介绍

行人属性AI识别技术是一种基于人工智能技术的图像识别技术,通过对行人的图像或视频进行处理和分析,提取出其中的结构化信息,如人体姿态、关键点位置、行人属性(性别、年龄、服装等)等。 行人结构化数据分析的方法包括…

什么是边缘计算?它为何如此重要?-天拓四方

随着信息技术的快速发展,数据处理和计算的需求日益增大,特别是在实时性要求极高的场景中,传统的云计算模式面临着巨大的挑战。在这样的背景下,边缘计算作为一种新兴的计算模式,正逐渐受到业界的广泛关注。那么&#xf…

【创建型模式】单例模式

一、单例模式概述 单例模式的定义:又叫单件模式,确保一个类只有一个实例,并提供一个全局访问点。(对象创建型) 要点: 1.某个类只能有一个实例;2.必须自行创建这个实例;3.必须自行向整…

【nginx代理和tengine的启动-重启等命令】

在nginx成功启动后[任务管理器有nginx.exe进程],运行vue项目,在浏览器访问http://localhost:10001/,提示:访问拒绝(调试中network某些地址403); 解决方案: localhost改为ip&#xff…

自动化测试Selenium(4)

WebDriver相关api 定位一组元素 webdriver可以很方便地使用findElement方法来定位某个特定的对象, 不过有时候我们需要定位一组对象, 这时候就要使用findElements方法. 定位一组对象一般用于一下场景: 批量操作对象, 比如将页面上的checkbox都勾上. 先获取一组对象, 再在这组…