当前位置: 首页 > news >正文

Transformer学习(2):自注意力机制

回顾

注意力机制

在这里插入图片描述

自注意力机制

在这里插入图片描述

自注意力机制中同样包含QKV,但它们是同源(Q≈K≈V),也就是来自相同的输入数据X,X可以分为 ( x 1 , x 2 , . . , x n ) (x_1,x_2,..,x_n) (x1,x2,..,xn)
而通过输入嵌入层(input embedding) ( x 1 , x 2 , . . , x n ) (x_1,x_2,..,x_n) (x1,x2,..,xn)变为 ( a 1 , a 2 , . . , a n ) (a_1,a_2,..,a_n) (a1,a2,..,an)这些向量,通过X来寻找X中的关键点。

而对于每个 a i a_i ai都会有对应 q i , k i , v i q_i,k_i,v_i qi,ki,vi,Q不再是共用的。
Q = { q 1 , q 2 , . . . , q n } ; K = { k 1 , k 2 , . . . , k n } ; V = { v 1 , v 2 , . . . , v n } Q = \{q_1,q_2,...,q_n\};K = \{k_1,k_2,...,k_n\};V = \{v_1,v_2,...,v_n\} Q={q1,q2,...,qn};K={k1,k2,...,kn};V={v1,v2,...,vn}

在自注意力机制中,以输入数据X自身中的 x i x_i xi作为查询对象(注意力机制中的Q),自身的其他 x x x作为被查询对象V。也就是自己作为查询与被查询对象。

计算过程

① 计算QKV:
要得到QKV,则需要使用三个参数 W Q , W K , W V W_Q,W_K,W_V WQ,WK,WV这三个参数都是可训练的,而且所有 a a a共享。
公式:
q i = a i ∗ W Q q_i = a_i*W_Q qi=aiWQ
k i = a i ∗ W K k_i = a_i*W_K ki=aiWK
v i = a i ∗ W V v_i = a_i*W_V vi=aiWV

在这里插入图片描述
而这个计算过程可以写为矩阵乘法,实现并行计算。
在这里插入图片描述
② 计算Q与K相似度(概率)
每个 q i q_i qi都有一次作为查询对象,所有的 k k k计算与其的相似度(与它相同的概率)
计算相似度的方法与注意力机制是相同,都是q与k进行点乘与scale得到相似度,其中 d k d_k dk为k的尺寸,也就是向量 k k k包含多少个数据
在这里插入图片描述

计算过程如图所示,每个 q i q_i qi都计算与所有 k k k的相似度
,
计算过程也可以表示为矩阵运算
在这里插入图片描述

③ 汇总权重,得到包含注意力信息的结果
计算出Q与K的相似度,也就是得到了对于 q i q_i qi,各个 v i v_i vi的权重
最后将得到的权重 a ^ \widehat{a} a 与每个 v i v_i vi进行点乘运算再将结果相加,就可以得到包含了对于 q i q_i qil来说哪些重要与不重要的数据 b i b_i bi,然后用 b i b_i bi来代替 a i a_i ai
在这里插入图片描述
计算过程也可以转换为矩阵运算
在这里插入图片描述

与注意力机制的不同

注意力机制是一个很宽泛(宏大)的一个概念,QKV 相乘就是注意力,但是他没有规定 QKV是怎么来的,他只规定 QKV 怎么做
Q 可以是任何一个东西,V 也是任何一个东西, K往往是等同于 V 的(同源),K和 V 不同源不相等可不可以。

而自注意力机制,特别狭隘,属于注意力机制的,注意力机制包括自注意力机制的,他不仅规定了 QKV 同源,而且固定了 QKV 的做法,规定了QKV是如何得到的。

总结

自注意力机制是规定了数据自身来作为查询对象与被查询对象。

http://www.lryc.cn/news/436218.html

相关文章:

  • 分类预测|基于粒子群优化径向基神经网络的数据分类预测Matlab程序PSO-RBF 多特征输入多类别输出 含基础RBF程序
  • 【React】Vite 构建 React
  • 算法刷题:300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
  • 【linux】一种基于虚拟串口的方式使两个应用通讯
  • 并行程序设计基础——并行I/O(3)
  • 性能测试-jmeter脚本录制(十五)
  • 关系型数据库 - MySQL I
  • 解锁AI写作新境界:5款工具让你的论文创作事半功倍
  • 一文读懂多组学联合分析产品在医学领域的应用
  • js react 笔记 2
  • 快速使用react 全局状态管理工具--redux
  • 活动系统开发之采用设计模式与非设计模式的区别-非设计模式
  • JVM面试(六)垃圾收集器
  • 固态硬盘装系统有必要分区吗?
  • 网络安全架构师
  • 如何本地部署Ganache并使用内网穿透配置公网地址远程连接测试网络
  • 算法岗/开发岗 实况
  • Nginx跨域运行案例:云台控制http请求,通过 http server 代理转发功能,实现跨域运行。(基于大华摄像头WEB无插件开发包)
  • 【数据分析预备】Pandas
  • MATLAB-基于高斯过程回归GPR的数据回归预测
  • 欧洲国际眼科盛会,中国眼科专家周进斩获六项屈光大奖
  • MySQL——数据库的高级操作(二)用户管理(2)创建普通用户
  • VIT论文阅读
  • Python编程入门必备:def关键字与函数参数
  • LiveKit的agent介绍
  • 青龙面板 升级 及其 依赖更新修复 检测and日志删除等
  • 坐牢第三十七天(Qt)
  • Vidu 全球首发「主体参照」新功能,一键同步角色特征;GPT-4o 实时音频项目负责人离职创业丨 RTE 开发者日报
  • 电子地图的主要功能与应用
  • 基于Java+SpringBoot+Vue+MySQL的西安旅游管理系统网站