【自然语言处理四-从矩阵操作角度看 自注意self attention】

自然语言处理四-从矩阵操作角度看 自注意self attention

  • 从矩阵角度看self attention
    • 获取Q K V矩阵
    • 注意力分数
    • softmax
    • 注意力的输出
    • 再来分析整体的attention的矩阵操作过程
    • 从矩阵操作角度看,self attention如何解决问题的?
    • W^q^ W^k^ W^v^这三个矩阵怎么获得?

从矩阵角度看self attention

上一篇文章,【自然语言处理三-自注意self attention】介绍了如何实现selft attention,但没有介绍,为何自注意力就能解决参数扩张、无法并行等问题,仅仅用语言描述太过干涩,从矩阵操作的角度则可以清晰的了解,self attention的运作机制以及它如何解决这些问题的。

首先,还是先给出self attention的整体流程图

在这里插入图片描述

中间这个attention层,从输入到attention层的输出,就是我们是实现的目标,下面是一个简单的图示:
在这里插入图片描述

下面我们就从矩阵操作的角度来描述,具体如何实现中间这个self attention层。

获取Q K V矩阵

首先是根据输入乘上矩阵,获取qi,ki,vi
在这里插入图片描述
当我们将(ai,…an)整合成一个矩阵的时候,实际上这个操作是这样的:
在这里插入图片描述
这样我们的Q K V矩阵就是针对整个输入的了。

注意力分数

a1对于ai的注意力分数,是q1和ki的点乘,当然这个点乘操作在上文介绍过,可以有别的方法。

这个过程同样可以合并成一个矩阵操作,如下图:A矩阵中的每一列,就是ai对于其他输入的注意力分数
在这里插入图片描述

softmax

上述获取的A矩阵执行softmax操作
在这里插入图片描述

注意力的输出

在这里插入图片描述

softmax后的注意力分数,与其他输入的vi做乘法操作,获取最终注意力层的一个输出。
这个过程同样可以合并矩阵操作,如下:
在这里插入图片描述
最终的的这个O矩阵就是注意力的输出。

再来分析整体的attention的矩阵操作过程

这个总体的过程,可以用下面更简略的图来表示:
在这里插入图片描述

从矩阵操作角度看,self attention如何解决问题的?

1.解决参数可能急剧扩张的问题
我们从上面整体的矩阵操作过程来看,实际上只有三个矩阵Wq Wk Wv的参数需要学习,其他都是经过矩阵运算。
参数不会出现剧增
2.解决无法并行的问题
矩阵对于每个输入的操作,是并行的,不再像seq2seq架构一样,是按照时间步,一步步操作。
3.解决记忆能力的问题
attention的分数是基于全体输入的,且没有经过时间步的传播,因此记忆是基于全句子的,且信息没有丢失

Wq Wk Wv这三个矩阵怎么获得?

从整体流程来看,要实现attention,最关键的就是找到合适的Wq Wk Wv矩阵,那么这三个矩阵是怎么获得的呢?
它们是靠学习获得的,初始化后,经过模型输出,然后经过反向传播,通过调整误差,一步步的精确化了这三个矩阵

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

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

相关文章

OpenCV 16 - Qt使用opencv视觉库

1 下载好opencv视觉库 不知道怎么下载和编译opencv视觉库的可以直接使用这个 : opencvcv_3.4.2_qt 2 解压opencv包 3 打开opencv的安装目录 4.打开x86/bin 复制里面所有的dll文件,黏贴到C/windows/syswow64里面 5 新建Qt项目 6 修改pro文件:添加对应的头文件和库文件…

【GameFramework框架内置模块】4、内置模块之调试器(Debugger)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录:…

matlab批量替换txt文本文件的特定行的内容

1.下图所示,我想要替换第14行。 2.运行代码后,第14行已经更改为需要的内容。 clc,clear; %%----------------------需要更改的地方------------------------------------ % 设置要操作的文本文件路径,替换为你自己的文件路径 path D:\paper_…

Linux Nginx SSL 证书配置正确,扔展示不安全

Nginx SSL 配置 首先我能够确定自己的Nginx SSL是配置正确的: 问题展示 通过浏览器访问自己域名,点击不安全后查看证书,展示的证书并不是自己所配置的证书,如下: 通过curl -vvv https://域名访问返回的证书是过期…

60V耐压降压恒流芯片SL6015B替代PT4115

SL6015B是一款耐压60V的降压恒流芯片,可用于替代PT4115。它具有以下特点: 1. 耐压60V,适用于高电压应用场景; 2. 恒流输出,能够提供稳定的电流输出; 3. 内部集成软启动功能,有效减小启动电流&am…

html5盒子模型

1.边框的常用属性 border-color 属性 说明 示例 border-top-color 上边框颜色 border-top-color:#369; border-right-color 右边框颜色 border-right-color:#369; border-bottom-color 下边框颜色 border-bottom-color:#fae45b; border-left-color 左边框颜色…

BUUCTF crypto做题记录(9)新手向

一、rsa2 得到题目代码如下: N 101991809777553253470276751399264740131157682329252673501792154507006158434432009141995367241962525705950046253400188884658262496534706438791515071885860897552736656899566915731297225817250639873643376310103992170…

探究前端路由hash和history的实现原理(包教包会)

今天我们来讲一讲前端中很重要的一个部分路由(router),想必前端小伙伴对‘路由’一词都不会感到陌生。但是如果哪天面试官问你,能大概说一说前端路由的实现原理吗? 你又会如何应对呢? 今天勇宝就带着大家一…

41.仿简道云公式函数实战-数学函数-SUMIF

1. SUMIF函数 SUMIF 函数可用于计算子表单中满足某一条件的数字相加并返回和。 2. 函数用法 SUMIF(range, criteria, [sum_range]) 其中各参数的含义及使用方法如下: range:必需;根据 criteria 的条件规则进行检测的判断字段。支持的字段…

RC4算法

RC4 RC4是Ron Rivest为RSA设计的序列密码,RC4算法简单、速度快、容易用软硬件实现,因此应用广泛。比如WEP、WPA、SSL/TLS应用了RC4;Windows、Lotus notes、Apple APCE等软件系统也应用了RC4。 1. RC4算法 RC4具体算法如下: 第一步:密钥调度算法(The Key-Scheduling Alg…

3. Java中的锁

文章目录 乐观锁与悲观锁乐观锁(无锁编程,版本号机制)悲观锁两种锁的伪代码比较 通过 8 种锁运行案例,了解锁锁相关的 8 种案例演示场景一场景二场景三场景四场景五场景六场景七场景八 synchronized 有三种应用方式8 种锁的案例实际体现在 3 个地方 从字节码角度分析 synchroni…

排序(9.17)

1.排序的概念及其运用 1.1排序的概念 排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列中,存在多个具有相同的关键字的记…

OSI参考模型和TCP/IP网络参考模型

1、OSI参考模型 1.1 产生背景 为了解决网络之间的兼容性问题,实现网络设备间的相互通讯,国际标准化组织ISO于1984年提出了OSIRM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI参考模型很快成为计算机网络通信的基础模型。由于种种原因,并没有…

Redis高可用三主三从集群部署

文章目录 🔊博主介绍🥤本文内容使用宝塔面板搭建集群规划配置验证 使用docker搭建使用脚本搭建📢文章总结📥博主目标 🔊博主介绍 🌟我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博…

聊一聊bpmn-js中的elementFactory模块

上一篇文章里我们了解了bpmn-js使用palette模块进行左侧小工具区域(也可以理解为调色板区域)的功能扩展,今天这个话题则是延续上期的palette进行开展的。 从上篇文章《聊一聊bpmn-js中的Palette》我们知道,PaletteProvider通过getPaletteEntries方法提供小工具Map对象,而单…

Python 实现 CR 指标计算 (带状能量线):股票技术分析的利器系列(13)

Python 实现 CR 指标计算 (带状能量线):股票技术分析的利器系列(13) 介绍算法公式 代码rolling函数介绍核心代码计算MID计算CR计算移动平均 完整代码 介绍 CR指标,又称带状能量线,通过计算股价的动能和变化…

MySQL的21个SQL经验

1. 写完SQL先explain查看执行计划(SQL性能优化) 日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。 explain select userid,name,age from user where userid =10086 or age =18;2、操作delete或者update语句,加个limit(S…

BTC网络 vs ETH网络

设计理念 BTC 网络 比特币是一种数字货币,旨在作为一种去中心化的、不受政府或金融机构控制的电子货币。其主要目标是实现安全的价值传输和储存,比特币的设计强调去中心化和抗审查。 ETH 网络 以太坊是一个智能合约平台,旨在支持分散的应…

计网Lesson15 - TCP可靠传输

文章目录 1. 停止等待ARQ协议2. 连续ARQ协议与滑动窗口协议 1. 停止等待ARQ协议 ARQ(Automatic Repeat–reQuest)自动重传请求 几种重传情况 发送端丢失 发送方过久没有接收到接收方的确认报,这种情况会触发超时重传机制,发送方…

瑞_Redis_Redis客户端

文章目录 1 Redis客户端1.1 Redis命令行客户端1.2 图形化桌面客户端1.2.1 资源准备1.2.2 安装1.2.3 建立连接 🙊 前言:本文章为瑞_系列专栏之《Redis》的基础篇的Redis客户端章节。由于博主是从B站黑马程序员的《Redis》学习其相关知识,所以本…