注意力机制(Attention)、自注意力机制(Self Attention)和多头注意力(Multi-head Self Attention)机制详解

目录

  • 参考
  • 一、Attention注意力机制
    • 原理
    • 计算过程
  • 二、自注意力机制
    • 2.1 自注意力关键!!
    • 2.2 实现步骤
      • 1. 获取 K Q V
      • 2. MatMul
      • 3. scale + softmax归一化
      • 4. MalMul
    • 2.3 自注意力机制的缺陷
  • 三、多头自注意力机制
    • 3.1 简介
    • 3.2 实现步骤
    • 3.3 公式

参考

感谢我的互联网导师:水论文的程序猿
参考资料和图片来源:
Transformer、GPT、BERT,预训练语言模型的前世今生
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
【Deformable DETR 论文+源码解读】Deformable Transformers for End-to-End Object Detection

一、Attention注意力机制

原理

我(查询q) 看-> 一张图 ( 被查询对象v )

我看这张图,第一眼,我就会去判断哪些东西对我而言更重要,哪些对我而言又更不重要(去计算 Q 和 V 里的事物的重要度)

重要度计算,其实是不是就是相似度计算(更接近),点乘其实是求内积。
在这里插入图片描述

计算过程

被查询对象: V = ( v 1 , v 2 , v 3 , . . . ) V = (v1, v2, v3, ...) V=v1,v2,v3,...

在transformer中,K == V

  1. 计算相似度: Q ∗ k 1 , Q ∗ k 2 , . . . . . . = s 1 , s 2 , . . s n . Q*k1 , Q*k2, ...... = s1, s2, ..sn. Qk1,Qk2,......=s1,s2,..sn.

  2. 归一化求概率: s o f t m a x ( s 1 , s 2 , s 3 , . . . ) = a 1 , a 2 , a 3 , . . a n . softmax(s1, s2, s3, ...) = a1, a2, a3, ..an. softmax(s1,s2,s3,...)=a1,a2,a3,..an.

  3. 更新V为V’: V ′ = ( a 1 ∗ v 1 + a 2 ∗ v 2 + . . . + a n ∗ v n ) V' = (a1*v1+a2*v2+...+an*vn) V=(a1v1+a2v2+...+anvn)

这样就会就得到一个新的 V’,用 V’ 代替 V。这个新的 V’除了能表示K和V(K==V),还能代表Q的信息(对Q而言对K中哪个部分关注最多,最重要),找出来了Q对K的注意力集中在哪里。

二、自注意力机制

2.1 自注意力关键!!

K、 V、 Q 来自于同一个X,三者同源。所以叫做自注意力

K V Q 如何得到? 通过x与三个向量参数( W K , W V , W Q W^K, W^V, W^Q WK,WV,WQ)相乘得到。这三个参数向量也是我们要学习的东西。

在这里插入图片描述

2.2 实现步骤

1. 获取 K Q V

有一个句子是“ T h i n k i n g M a c h i n e s ”,该句子中有两个单词,两个单词的向量分别 x 1 , x 2 ,分别与( W K , W V , W Q ) 3 个矩阵相乘得到 q 1 , q 2 , k 1 , k 2 , v 1 , v 2 的 6 个向量。 有一个句子是“Thinking Machines”,该句子中有两个单词,两个单词的向量分别x1,x2,分别与(W^K, W^V, W^Q)3个矩阵相乘得到q1,q2,k1,k2,v1,v2的6个向量。 有一个句子是ThinkingMachines,该句子中有两个单词,两个单词的向量分别x1,x2,分别与(WK,WV,WQ3个矩阵相乘得到q1,q2,k1,k2,v1,v26个向量。
在这里插入图片描述

2. MatMul

q 1 分别与 k 1 , k 2 点乘得到得分,寻找 q 1 对 x 1 , x 2 的重要信息 q1分别与k1,k2点乘得到得分,寻找q1对x1,x2的重要信息 q1分别与k1,k2点乘得到得分,寻找q1x1,x2的重要信息
在这里插入图片描述

3. scale + softmax归一化

scale:对得分进行规范,防止梯度下降出现问题。
softmax: 归一化求概率得到a1,a2
在这里插入图片描述
经过Softmax的归一化后,每个值是一个大于0且小于1的权重系数,且总和为0,这个结果可以被理解成一个权重矩阵W。

这个W就是注意力权重,其中包含着该单词与该句子之间的相关信息和更关心哪个部分。

4. MalMul

用得分比例 [0.88,0.12] 乘以[ v 1 , v 2 v1,v2 v1,v2]后得到相加得到z1 : z 1 = ( a 1 ∗ v 1 + a 1 ∗ v 2 ) z1 = (a1 * v1 + a1*v2) z1=(a1v1+a1v2)

在这里插入图片描述

得到的新向量z1就是thinking这个单词的新的词向量,z1里面包含着thinking这个单词和“Thinking Machines”这句话里每一个单词的相似程度和关联信息。

同理可得到z2向量,代表machines的新的词向量。

2.3 自注意力机制的缺陷

  1. 自注意力机制虽然考虑了所有的输入向量,但没有考虑到向量的位置信息。在实际的文字处理问题中,可能在不同位置词语具有不同的性质,比如动词往往较低频率出现在句首。(解决:引入位置编码)
  2. 模型在对当前位置的信息进行编码时,会过度的将注意力集中于自身的位置,有效信息抓取能力就差一些。 (解决:引入多头注意力)

三、多头自注意力机制

3.1 简介

简单理解:多组自注意力机制并行运行,最后把结果拼接起来。
在这里插入图片描述

3.2 实现步骤

  1. 定义多组 W q 、 W k 和 W v Wq、Wk和Wv WqWkWv,生成多组Q、K和V
  2. 分别对多组进行自注意力机制,得到多组 z ( z 0 − z n z(z_0-z_n zz0zn
  3. 多组 z ( z 0 − z n z(z_0-z_n zz0zn)进行拼接(cancat),再乘以矩阵W做一次线性变化降低维度,得到最终的Z。
    在这里插入图片描述

3.3 公式

在这里插入图片描述
其中,x是输入特征,z表示 query,由x经过Wq线性变换来的,k是key的索引,q 是query的索引,M 表示多头注意力的头数,m代表第几注意力头部, A m q k A_{mqk} Amqk表示第m头注意力权重(即上图a中一直到SoftMax的过程), W m ’ x k W^’_m x_k Wmxk其实就是value,整个[ ]内的过程就是图a的全过程, W m W_m Wm是注意力施加在value之后的结果经过线性变换(也就是图b的Linear)从而得到不同头部的输出结果, Ω k \Omega_k Ωk表示所有key的集合。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用

Docker是一种基于容器的虚拟化技术,它允许开发者将应用程序及其依赖项打包到一个轻量级容器中,然后在任何可用的开发、测试和生产环境中进行部署和运行。 下面是Docker的基本概念和优势: 容器:Docker容器是一种独立运行的软件包&a…

【QT】飞机大战

0 项目简介 飞机大战是我们大家所熟知的一款小游戏,本教程就是教大家如何制作一款自己的飞机大战 首先我们看一下效果图 玩家控制一架小飞机,然后自动发射子弹,如果子弹打到了飞下来的敌机,则射杀敌机,并且有爆炸的特…

C语言--假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只​

一.题目描述 假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只? 二.思路分析 本题是一个典型的穷举法例题,而穷举法,最重要的就是条件判断。⭐⭐ 本题中的条件很容易发现: 假设鸡有x只,兔有y只…

基于php+thinphp+vue的教材管理系统

运行环境 开发语言:PHP 数据库:MYSQL数据库 应用服务:apache服务器 使用框架:ThinkPHPvue 开发工具:VScode/Dreamweaver/PhpStorm等均可 项目简介 教材管理系统,主要的模块包括首页、个人中心、学生管理、老师管理、教材征订管理、教师教材退订管理、…

电源基础元件

文章目录 电源基础元件理想电压源理想电流源受控电源 电源基础元件 理想电压源 定义 其两端电压总能保持定值或一定的时间函数,其值与流过它的电流i无关的元件叫理想电压源 理想电压源的电压、电流关系 1.电源两端电压由电源本身决定,与外电路无关&…

【兔子王赠书第7期】机器学习与人工智能实战:基于业务场景的工程应用

文章目录 写在前面机器学习推荐图书写给读者前言本书面向的读者我为什么要写这本书运行本书的示例代码本书导航本书采用的约定使用代码示例 推荐理由粉丝福利写在后面 写在前面 新的一周开始啦,本周博主给大家带来《机器学习与人工智能实战:基于业务场景…

五分钟利用Vite创建Vue项目

1.准备工具 Vite是尤雨溪团队开发的,官方称是下一代新型前端构建工具,能够显著提升前端开发体验。 上面称是下一代,当前一代当然是我们熟悉的webpack Vite 优势 开发环境中,无需打包操作,可快速的冷启动。轻量快速…

初始MySQL(五)(自我复制数据,合并查询,外连接,MySQL约束:主键,not null,unique,foreign key)

目录 表复制 自我复制数据(蠕虫复制) 合并查询 union all(不会去重) union(会自动去重) MySQL表的外连接 左连接 右连接 MySQL的约束 主键 not null unique(唯一) foreign key(外键) 表复制 自我复制数据(蠕虫复制) #为了对某个sql语句进行效率测试,我们需要海量…

【GEE学习日记】GEE下载ERA5指定小时数据

1 背景 ERA5数据集提供了逐小时的气象产品,最近做实验需要用到指定日期的14点的气象数据,所以学习了一下。 我的目的:获取2003年每月5,15,25日 14点的空气温度 2 代码 var roi table.geometry(); // table是我上传…

【计算机网络】VRRP协议理论和配置

目录 1、VRRP虚拟路由器冗余协议 1.1、协议作用 1.2、名词解释 1.3、简介 1.4、工作原理 1.5、应用实例 2、 VRRP配置 2.1、配置命令 2.2、拓扑与配置: 1、VRRP虚拟路由器冗余协议 1.1、协议作用 虚拟路由冗余协议(Virtual Router Redundancy Protocol&am…

11.13 牛客刷题8/10

11.13 信号完整性 指针地址 的加减,注意 最后转为16进制

插件式换肤框架原理解析

作者:ak 插件换肤实现原理概述 收集到需要换肤的控件确定控件中需要换肤的属性和资源ID加载插件APK,构造AssetManager并生成插件的Resource类,就可以加载插件包中的资源执行换肤:通过ID加载插件包中的资源,然后再通过…

C# 并发编程

C# 并发编程 前言 对于现在很多编程语言来说,多线程已经得到了很好的支持, 以至于我们写多线程程序简单,但是一旦遇到并发产生的问题就会各种尝试。 因为不是明白为什么会产生并发问题,并发问题的根本原因是什么。 接下来就让…

基于ssm课堂考勤系统-计算机毕设 附源码 50546

ssm课堂考勤系统 摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理&am…

Go的优雅退出

Go优雅退出/停机以前主要通过signal来实现,当然现在也是通过signal来实现,只是从go 1.16开始,新增了更加友好的API: func NotifyContext(parent context.Context, signals ...os.Signal) (ctx context.Context, stop context.CancelFunc) 该…

北邮22级信通院数电:Verilog-FPGA(9)第九周实验(2)实现下降沿触发的JK触发器(带异步复位和置位功能)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 JK.v module JK (input clk,input J,input K,input…

【C++类和对象下:解锁面向对象编程的奇妙世界】

【本节目标】 1. 再谈构造函数 2. Static成员 3. 友元 4. 内部类 5.匿名对象 6.拷贝对象时的一些编译器优化 7. 再次理解封装 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。…

CRM系统的销售管理功能,你了解多少?

很多时候,CRM系统直接被当做是销售管理系统,其实无可厚非,因为CRM系统本身是围绕销售逻辑来实现的,不仅可以有效的优化商机,对商机的把握也是十分精确。下面我们就来详细说说,CRM系统都有哪些销售管理功能&…

2023年数维杯国际大学生数学建模挑战赛A题

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 cs数模团队在数维杯前为大家提供了许多资料的内容呀&#xff0…

2023.11.13【读书笔记】丨生物信息学与功能基因组学(第六章 多重序列比对 下)

目录 6.4 多重序列比对数据库6.5 基因组区域的多重序列比对6.6 展望6.7 常见问题总结 6.4 多重序列比对数据库 Pfam:基于谱隐马尔可夫模型构建的蛋白质家族数据库 SMART:简易分子构型研究工具,与细胞信号传导、细胞外结构域以及染色质功能…