注意力机制(Q,K,V)基本概念

news2024/11/24 20:50:04

文章目录

  • 一、注意力提示
    • 1.1概念
    • 1.2生活中的注意力提示
    • 1.3注意力机制基本框架
    • 小结
  • 二、注意力汇聚
    • 2.1概念
    • 2.2非参注意力汇聚
      • 2.2.1平均汇聚
      • 2.2.2Nadaraya-Waston核回归
    • 2.3通用注意力汇聚公式
    • 2.4带参数注意力汇聚
    • 小结
  • 三、注意力评分函数
    • 3.1概念
    • 3.2例子
  • 四、遮蔽softmax
    • 三+四小结

一、注意力提示

我们使用偏日常的注意力提示引入注意力机制

1.1概念

  1. 查询 query
    =自主性的提示
    =随意的

  2. 键 key
    = 非自主性的提示
    =不随意的

  3. 值 value
    = 感觉输入
    值和键是成对的

注意:此处的随意/不随意中的意志的意

1.2生活中的注意力提示

  1. 非自主性提示
    在这里插入图片描述
  2. 自主性提示
    在这里插入图片描述
    人的意志就是自主性的提示,引导注意力指向了书。当无意识时,由于突出的非自主性提示(杯子),引导注意力指向了杯子。
    此时,人的意志为query,杯子、书等物品为key,最终注意力的去向为value

1.3注意力机制基本框架

在这里插入图片描述
注意力机制通过注意力汇聚将查询(自主性提示)和键(非自主性提示)结合在一起,实现对值(感官输入)的选择倾向

小结

  • 受试者使用非自主性和自主性提示有选择性地引导注意力。前者基于突出性,后者则依赖于意识。
  • 注意力机制与全连接的层或汇聚层的区别:增加了自主性提示

二、注意力汇聚

2.1概念

查询(自主提示)和键(非自主提示)之间的交互形成了注意力汇聚;注意力汇聚有选择地聚合了值(感官输入)以生成最终的输出

2.2非参注意力汇聚

2.2.1平均汇聚

  1. 公式
    f ( x ) = 1 n ∑ i = 1 n y i (1) f(x)={1\over n}\sum_{i=1}^n y_i \tag{1} f(x)=n1i=1nyi(1)

  2. 结果
    在这里插入图片描述
    观察可知"查询-键"对越接近,注意力汇聚的注意力权值越高

  3. 缺点
    忽略了输入 x x x

2.2.2Nadaraya-Waston核回归

  1. 改进
    Nadaraya-Waston核回归比平均汇聚更优越的地方在于,其考虑了输入 x x x的位置。根据输入位置x对数据y进行加权
  2. 公式
    f ( x ) = ∑ i = 1 n K ( x − x i ) ∑ j = 1 n K ( x − x j ) y i , (2) f(x) = \sum_{i=1}^n \frac{K(x - x_i)}{\sum_{j=1}^n K(x - x_j)} y_i, \tag{2} f(x)=i=1nj=1nK(xxj)K(xxi)yi,(2)
    Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。
  3. 优点
    回归具有一致性:如果有足够的数据,模型将收敛到最优解(非参方法的特点)
    注意: 其中K为高斯核函数,可自定义

2.3通用注意力汇聚公式

受K核的启发,可以将注意力汇聚公式重写为更通用的形式(适用于非参、带参)
f ( x ) = ∑ i = 1 n α ( x , x i ) y i , (3) f(x) = \sum_{i=1}^n \alpha(x, x_i) y_i,\tag{3} f(x)=i=1nα(x,xi)yi,(3)
其中x是查询, ( x i , y i ) (x_i,y_i) (xi,yi)是键值对。 比较平均汇聚(1)和通用公式(3) , 注意力汇聚是 y i y_i yi的加权平均。 将查询x和键 x i x_i xi之间的关系建模为 注意力权重 α ( x , x i ) \alpha(x,x_i) α(x,xi), 这个权重将被分配给每一个对应值 y i y_i yi

对于任何查询,模型在所有键值对注意力权重 α ( x , x i ) \alpha(x,x_i) α(x,xi)都是一个有效的概率分布: 它们是非负的,并且总和为1。


例子

可以自定义一个高斯核为
K ( u ) = 1 2 π exp ⁡ ( − u 2 2 ) K(u) = \frac{1}{\sqrt{2\pi}} \exp(-\frac{u^2}{2}) K(u)=2π 1exp(2u2)
将其带入(3)中,可以得到注意力汇聚公式如(4)
f ( x ) = ∑ i = 1 n α ( x , x i ) y i = ∑ i = 1 n exp ⁡ ( − 1 2 ( x − x i ) 2 ) ∑ j = 1 n exp ⁡ ( − 1 2 ( x − x j ) 2 ) y i = ∑ i = 1 n s o f t m a x ( − 1 2 ( x − x i ) 2 ) y i . (4) \begin{split}\begin{aligned} f(x) &=\sum_{i=1}^n \alpha(x, x_i) y_i\\ &= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}(x - x_i)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}(x - x_j)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}(x - x_i)^2\right) y_i. \end{aligned}\end{split} \tag{4} f(x)=i=1nα(x,xi)yi=i=1nj=1nexp(21(xxj)2)exp(21(xxi)2)yi=i=1nsoftmax(21(xxi)2)yi.(4)
在(4)中,给出的查询x越接近某个键 x i x_i xi,则分配给这个键对应值 y i y_i yi的注意力权重就会越大,也就获得了更多的注意力。

特别的,Nadaraya-Watson核回归是一个非参数模型。因此将K带入后的通用注意力汇聚模型也为非参的模型。如果带入一个带参模型,则为带参的注意力汇聚模型。

2.4带参数注意力汇聚

将(3)带入一个带参模型,则为带参的注意力汇聚模型。如公式(5)
f ( x ) = ∑ i = 1 n α ( x , x i ) y i = ∑ i = 1 n exp ⁡ ( − 1 2 ( ( x − x i ) w ) 2 ) ∑ j = 1 n exp ⁡ ( − 1 2 ( ( x − x j ) w ) 2 ) y i = ∑ i = 1 n s o f t m a x ( − 1 2 ( ( x − x i ) w ) 2 ) y i . \begin{split}\begin{aligned}f(x) &= \sum_{i=1}^n \alpha(x, x_i) y_i \\&= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}((x - x_i)w)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}((x - x_j)w)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}((x - x_i)w)^2\right) y_i.\end{aligned}\end{split} f(x)=i=1nα(x,xi)yi=i=1nj=1nexp(21((xxj)w)2)exp(21((xxi)w)2)yi=i=1nsoftmax(21((xxi)w)2)yi.

小结

  1. 注意力汇聚可以分为非参数型和带参数型
  2. Nadaraya-Watson核回归具有非参数的注意力机制的机器学习范例
  3. Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。从注意力的角度来看,分配给每个值的注意力权重取决于将值所对应的键和查询作为输入的函数

至此注意力机制的基本概念介绍完毕,接下来介绍注意力机制的进阶概念


三、注意力评分函数

3.1概念

在通用注意力汇聚公式介绍时,我们自定义了一个高斯核,并将其带入通用注意力汇聚公式中
K ( u ) = 1 2 π exp ⁡ ( − u 2 2 ) K(u) = \frac{1}{\sqrt{2\pi}} \exp(-\frac{u^2}{2}) K(u)=2π 1exp(2u2)
将其带入(3)中,可以得到注意力汇聚公式如(4)
f ( x ) = ∑ i = 1 n α ( x , x i ) y i = ∑ i = 1 n exp ⁡ ( − 1 2 ( x − x i ) 2 ) ∑ j = 1 n exp ⁡ ( − 1 2 ( x − x j ) 2 ) y i = ∑ i = 1 n s o f t m a x ( − 1 2 ( x − x i ) 2 ) y i . (4) \begin{split}\begin{aligned} f(x) &=\sum_{i=1}^n \alpha(x, x_i) y_i\\ &= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}(x - x_i)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}(x - x_j)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}(x - x_i)^2\right) y_i. \end{aligned}\end{split} \tag{4} f(x)=i=1nα(x,xi)yi=i=1nj=1nexp(21(xxj)2)exp(21(xxi)2)yi=i=1nsoftmax(21(xxi)2)yi.(4)
其中x为查询, x i x_i xi为键, y i y_i yi为值

通过观察可得,可以将K的指数部分 − u 2 2 -\frac{u^2}{2} 2u2视为注意力评分函数。
即注意力汇聚的输出可以分为以下三个步骤:

  1. 通过注意力评分函数计算键 x i x_i xi和x的得分
  2. 将得分作为softmax函数的输入
  3. softmax计算后将得到与键对应的值的概率分布(即注意力权重)
  4. 计算注意力权重与值的加权和

引入注意力评分函数的注意力机制框架如图所示
引入注意力评分函数的注意力机制框架

3.2例子

除了高斯核函数K的指数部分外,还有加性注意力、缩放点积注意力可作为评分函数

  1. 加性注意力
  • 当查询和键是不同长度的矢量使适用
  1. 缩放点积注意力
  • 计算效率更高
  • 查询和键有相同长度

四、遮蔽softmax

并非所有值都应该被纳入到注意力汇聚中。可以指定一个有效序列长度,使masked_softmax滤去超出范围的部分

三+四小结

  1. 注意力汇聚从参数角度上可分为非参和带参。从结构上,可以拆分为评分函数+softmax函数或者像Nadaraya-Watson核回归中的一个高斯核整体
  2. 将注意力汇聚的输出计算可以作为值的加权平均,选择不同的注意力评分函数会带来不同的注意力汇聚操作。
  3. 当查询和键是不同长度的矢量时,可以使用可加性注意力评分函数。当它们的长度相同时,使用缩放的“点-积”注意力评分函数的计算效率更高

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

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

相关文章

echarts 自定义提示样式

在setOption中添加自定义样式 tooltip: {trigger: axis,formatter: (params)> {// console.log(params);var result if(params[0] && params[1]){result 发电量对比<div style"background:#F4F7FC;padding:5px;margin:5px 0px;border-radius:6px"&…

《微信小程序开发从入门到实战》学习三十二

3.5 开发我的投票页面与使用tab栏切换页面 实现很简单&#xff0c;简单的列表页面&#xff0c;但是需要加在tabBar那里&#xff0c;加油。 3.5.1 开发我的投票页面 在app.js里的pages的数组里加上"pages/myVote/myVote"&#xff0c;保存了后出现了myVote文件夹。 …

如何快速检测硬盘健康程度?

当我们使用Windows11/10/8/7计算机时&#xff0c;可能会遇到各种各样的问题&#xff0c;比如蓝屏报错、系统崩溃或其他运行不正常的状况。很多时候都是因为硬盘错误或故障导致的。那么&#xff0c;我们该如何快速检测硬盘健康程度呢&#xff1f; 在驱动器属性中执行硬盘查错 硬…

英语语法:连词or, and, if, unless怎么用?

连词or, and, if, unless怎么用&#xff1f;1. or conj. 或者&#xff0c;还是&#xff0c; 和&#xff0c; 否则用法&#xff1a;并列连词①当“或者&#xff0c;还是”讲时&#xff0c;用在选择疑问句中&#xff0c;是选择疑问句的标志例&#xff1a;Are you a teacher or a …

GNSS接收机 高精度GNSS接收机 4GGNSS接收机

GNSS接收机TN521 ★多频多系统个高精度定位&#xff0c;支持GPS L1/L2&#xff0c;BD B1/B2&#xff0c;支持北斗三代 ★外置GNSS、4G天线 ★平面精度2.5mm 1ppm RMS&#xff0c;高程精度511ppm RMS ★监测终端内嵌工业级智能平台 ★支持4G全网通、全面支持移动/联通/电信…

数据库应用:MongoDB 数据备份与恢复

目录 一、实验 1.MongoDB 数据库备份与恢复 2.MongoDB 数据表备份与恢复 二、问题 1.MongoDB有哪些命令行工具实现数据备份与恢复 一、实验 1.MongoDB 数据库备份与恢复 &#xff08;1&#xff09;查看版本 rootnode1:~# mongo --version&#xff08;2&#xff09;准备…

NX二次开发UF_CURVE_create_arc_center_tangent 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_create_arc_center_tangent Defined in: uf_curve.h int UF_CURVE_create_arc_center_tangent(tag_t center, tag_t tangent, UF_CURVE_help_data_p_t help_data_p, UF_CUR…

Python语言创建爬虫代理IP池详细步骤和代码示例

目录 一、引言 二、代理IP的选择 三、使用代理IP的代码示例 四、创建代理IP池的代码示例 五、总结 一、引言 在爬虫程序中&#xff0c;代理IP的使用是避免IP被封禁、提高爬取效率的重要手段。本文将详细介绍如何使用Python语言创建一个爬虫代理IP池&#xff0c;包括代理I…

每日一练2023.11.27———连续因子【PTA】

题目要求&#xff1a; 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3567&#xff0c;其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N&#xff0c;要求编写程序求出最长连续因子的个数&#xff0c;并输出最小的连续因子序列。 输入格式&#xff…

3D模型材质编辑器

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 材质贴图&#xff08;Texture Mapping&#xff09;&#xff1a;是在物体着色方面最引人注目、…

MySQL中的存储过程(详细篇)

文章目录 概述优点缺点 MySQL存储过程的定义存储过程的基本语句格式存储过程的使用定义一个存储过程定义一个有参数的存储过程定义一个流程控制语句 IF ELSE定义一个条件控制语句 CASE定义一个循环语句 WHILE定义一个循环语句 REPEAT UNTLL定义一个循环语句 LOOP使用存储过程插…

Go 内置运算符

一、算数运算符 1、算数运算符使用 package mainimport ("fmt" )func main(){fmt.PrintIn("103",103) //10313fmt.PrintIn("10-3",10-3) //10-37fmt.PrintIn("10*3",10*3) //10*330//除法注意&#xff1a;如果运算的数都是…

工信部:1—10月我国软件业务收入98191亿元 同比增长13.7%

2023年1—10月份软件业经济运行情况 1—10月份&#xff0c;我国软件和信息技术服务业&#xff08;以下简称“软件业”&#xff09;运行态势平稳&#xff0c;软件业务收入较快增长&#xff0c;利润总额两位数增长&#xff0c;软件业务出口降幅持续收窄。 一总体运行情况 软件…

Python编写的爬虫:为什么受到如此的欢迎?

目录 一、引言 二、Python爬虫受欢迎的原因 1、语言简洁易读 2、强大的数据处理能力 3、丰富的网络爬虫库 4、跨平台性 5、社区支持与资源丰富 三、Python爬虫应用案例 四、总结 一、引言 在当今的大数据时代&#xff0c;信息获取和数据处理能力对于企业和个人来说至…

网络篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、说一下HTTP的长连接与短连接的区别二、TCP 为什么要三次握手,两次不行吗?为什么?三、说一下 TCP 粘包是怎么产生的?怎么解决粘包问题的?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大…

类 —— 封装、四类特殊成员函数、this指针、匿名对象、深浅拷贝问题

类 将同一类对象的所有属性都封装起来。 类中最基础的内容包括两部分&#xff0c;一个是属性、一个是行为。 ● 属性&#xff1a;表示一些特征项的数值&#xff0c;比如说&#xff1a;身高、体重、性别、肤色。这些属性都是名词。属性一般都以名词存在。属性的数值&#xff0c…

Linux(CentOS7.5):硬盘分区纪实

一、服务器概述 1、既有一块系统硬盘&#xff0c;新增一块100G硬盘。 2、要求&#xff0c;将新插入硬盘分为&#xff1a;20G、30G、50G。 二、操作步骤 1、确认新硬盘是否插入成功&#xff1a; fdisk -l# 红色框出来的&#xff0c;为识别出来的新硬盘信息 # 黄色框出来的&#…

BGP路由的选路综合实验

题目要求 1.使用PreVal策略&#xff0c;确保R1通过R3到达192.168.10.0/24 2.使用AS_Path策略&#xff0c;确保R1通过R3到达192.168.11.0/24 3.配置MED策略&#xff0c;确保R1通过R3到达192.168.12.0/24 4.使用Local Preference策略&#xff0c;确保R4通过R2到达192.168.1.0/24…

联邦学习Federated Learning(FL)

联邦学习Federated Learning 序言FL流程细节FL代码实现&#xff08;Pytorch&#xff09;Reference 序言 手机的数据涉及到个人隐私和安全&#xff0c;如果将客户端的数据上传到服务端&#xff0c;终究是很容易泄漏出用户的信息&#xff0c;何况 用户也不愿意把自己的数据交给服…

使用Python实现银行管理系统

使用Python实现银行管理系统 题目介绍程序演示登录开户查询取款存款转账锁定解锁存盘退出 相关代码开户功能查询功能取款功能存款功能转账功能锁定功能解锁功能存盘功能加载存盘的数据登录/登出功能主程序 完整代码 在本篇博文中&#xff0c;我们将使用Python编写一个简单的银行…