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

文章目录

  • 一、注意力提示
    • 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.mzph.cn/news/173665.shtml

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

相关文章

【触想智能】无风扇工控电脑一体机使用优势分析

无风扇工控电脑一体机是属于工控一体机分类中的其中一种,看名字,很明显就是没有散热风扇的工控电脑一体机,而平常我们使用的电脑主机是带有电源风扇、CPU散热风扇的。 无风扇工控电脑一体机的配置组成和商用电脑主机的配置基本一样&#xff0…

C#常见的设计模式-结构型模式

引言 设计模式是软件工程中用于解决常见问题的可复用解决方案。在C#编程中,常见的设计模式具有广泛的应用。本篇博客将重点介绍C#中常见的结构型设计模式,包括适配器模式、装饰器模式、代理模式、组合模式和享元模式。 目录 引言1. 适配器模式(Adapter …

Selenium/webdriver原理解析

最近在看一些底层的东西。driver翻译过来是驱动,司机的意思。如果将webdriver比做成司机,竟然非常恰当。 我们可以把WebDriver驱动浏览器类比成出租车司机开出租车。在开出租车时有三个角色: 乘客:他/她告诉出租车司机去哪里&…

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

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

中科驭数受邀出席2023 ODCC冬季全会,共谋开放数据中心创新发展

近日,2023年开放数据中心委员会(简称“ODCC”)冬季全会在宁夏银川成功召开,中科驭数作为ODCC的新成员单位,受邀出席本次重要会议。 ▲ 中科驭数正式加入ODCC开放数据中心委员会 开放数据中心委员会是在中国通信标准化…

排序篇(六)----排序小结(不用三连,混流量券)

排序篇(六)----排序小结 排序算法复杂度及稳定性分析 直接插入排序的算法复杂度: 最好情况下,当数组已经有序时,直接插入排序的时间复杂度为O(n),其中n是数组的大小。最坏情况下,当数组逆序排列时,直接插…

Lazada测评怎么做?

国内电商行业的发展日趋激烈,卖家想要脱颖而出非常困难,许多卖家选择入驻跨境电商平台开店, 跨境电商平台吸引了许多卖家入驻,而最近有很多朋友在私信问我关于Lazada测评的一些事情 Lazada产品测评流程步骤 怎么测评 这个怎么测…

pc数据通过插槽来设置启用未启用

使用三元表达式 <el-table-column prop"state" label"启用" width"180"><template v-slot"{ row }"><span>{{row.state 1 ? "已启用" : row.state 0 ? "未启用" : "无"}}</sp…

基于AC6969的蓝牙控制RGB彩灯

程序的实现思路&#xff1a;单片机与手机app之间通过蓝牙实现通讯&#xff0c;通过点击屏幕上的对应色块然后app会把对应的RGB值发送到单片机。然后单片机会对数据进行解析然后把数字量转换为模拟量&#xff0c;然后通过PWM控制IO口输出不同的电压以此来达到控制RGB灯 RGB彩灯原…

死磕Nacos系列:Nacos是如何更新服务信息的?

前言 说到服务信息&#xff0c;我们还是得回到NamingService&#xff0c;因为这是和NacosServer进行服务注册的核心组件&#xff0c;内部提供了注册、获取Nacos实例的能力。至于其他组件&#xff0c;如Ribbon&#xff0c;在调用时需要所有实例信息来进行负载&#xff0c;那肯定…

【古诗生成AI实战】之四——模型包装器与模型的训练

在上一篇博客中&#xff0c;我们已经利用任务加载器task成功地从数据集文件中加载了文本数据&#xff0c;并通过预处理器processor构建了词典和编码器。在这一过程中&#xff0c;我们还完成了词向量的提取。 接下来的步骤涉及到定义模型、加载数据&#xff0c;并开始训练过程。…

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

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

【Cisco Packet Tracer】电子邮箱仿真搭建

本文使用Cisco Packet Tracer&#xff0c;搭建电子邮箱仿真系统&#xff0c;使得zhangsancisco.com可以和lisicisco.com可以互相发送邮件。 电子邮箱账号&#xff08;为了简单起见&#xff0c;账号密码设置一致&#xff09;&#xff1a;zhangsan/lisi 域名&#xff1a;cisco.…

office tool plus工具破解word、visio等软件步骤

第一步&#xff1a;下载工具 破解需要用到office tool plus软件 office tool plus软件下载地址&#xff1a;Office Tool Plus 官方网站 - 一键部署 Office 选择其中一个下载到本地&#xff08;本人选择的是第一个的云图小镇下载方式&#xff09; 第二步&#xff1a;启动工具 …

回归预测 | MATLAB实现SMA+WOA+BOA-LSSVM基于黏菌算法+鲸鱼算法+蝴蝶算法优化LSSVM回归预测

回归预测 | MATLAB实现SMAWOABOA-LSSVM基于黏菌算法鲸鱼算法蝴蝶算法优化LSSVM回归预测 目录 回归预测 | MATLAB实现SMAWOABOA-LSSVM基于黏菌算法鲸鱼算法蝴蝶算法优化LSSVM回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现SMAWOABOA-LSSVM基于黏菌算法…

【腾讯云云上实验室】用向量数据库——实现高效文本检索功能

文章目录 前言Tencent Cloud VectorDB 简介Tencent Cloud VectorDB 使用实战申请腾讯云向量数据库腾讯云向量数据库使用步骤腾讯云向量数据库实现文本检索 结论和建议 前言 想必各位开发者一定使用过关系型数据库MySQL去存储我们的项目的数据&#xff0c;也有部分人使用过非关…

CloudCompare 源码编译

一、下载源码 二、cmake 编译 这里面有四个比较重要的地方 1、源码的位置 2、生成的位置 3、项目的位置 4、qt 的位置 三、编译 开始测试&#xff0c;先用那个项目做测试 没有问题 然后用build的那个打开 加入Qt 的相关库到qcc中 启动项目生成cloudcompare 启动 ok ,完成…

本地Nginx服务搭建结合内网穿透实现多个Windows Web站点公网访问

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

动态规划学习——等差子序列问题

目录 一&#xff0c;最长等差子序列 1.题目 2.题目接口 3.解题思路及其代码 二&#xff0c;等差序列的划分——子序列 1.题目 2.题目接口 3.解题思路及其代码 一&#xff0c;最长等差子序列 1.题目 给你一个整数数组 nums&#xff0c;返回 nums 中最长等差子序列的长度…

NX二次开发UF_CURVE_create_arc_center_radius 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_create_arc_center_radius Defined in: uf_curve.h int UF_CURVE_create_arc_center_radius(tag_t center, double radius, tag_t help_point, UF_CURVE_limit_p_t limit_p…