Transformer中的多头注意力机制-为什么需要多头?

Transformer为什么使用多头注意力机制呢?

多头可以学习到不同维度的特征和信息。为什么可以学习到不同维度的信息呢?

答案是:多头注意力机制的组成是有单个的self attention,由于self attention通过产生QKV矩阵来学习数据特征,那每一个self attention最终会产生一个维度上的输出特征,所以当使用多头注意力机制的时候,模型就可以学习到多维度的特征信息,这使得模型可以从多个维度更好的理解数据。同时多头注意力机制还是并行计算的,这也符合现在硬件架构,提升计算效率。详细说明请看下文。

首先,要明确的是multi head attention的组成是单个的self attention。我们先理解self attention的计算过程。

self attention的计算如左下图所示:其中QKV的来源是将输入X进行线性变换,产生三个不同的权重矩阵,如右下图所示,然后这三个矩阵依次和输入x做矩阵点乘运算得到了QKV,

最后通过下面这个式子的可以得到self attention的输出,我们可以将其理解为一个维度上的特征信息。

而多头注意力机制的如下图,允许模型从不同的子空间关注多个不同的位置(上图中的QKV的来源文件中矩阵是生成了,可学习的,)从而捕捉不同级别的特征和信息,使得每个头可以学习到不同的关系,这使得模型可以从不同的角度理解数据。

几个问题:

1、Q和K为什么使用不同的权重矩阵生成?为什么不能使用同一个值进行自身的点乘运算?

回答:1)使用不同的权重举证可以增加模型的表达能力,不同的权重矩阵允许模型在不同的空间中学习和匹配不同的特征。2)不同的权重矩阵可以使模型更好的参数化,学习到更多的信息而不是仅仅依赖一个权重矩阵。

2、self attention中为什么是点乘而不是add?二者复杂度上有什么区别?

回答:点乘注意力通常在实践中表现更好,可能是因为计算简单和高效。点乘复杂度为O(d*n^2)其中d是特征维度,n是序列长度。

3、transformer的encoder结构

回答:encoder由多个相同的block组成,如下图所示,每个block中包含由两个模块,multi head attention和feed forward模块。每个模块中都含有一个残差连接和归一化层。

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

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

相关文章

中信建投在金融电于化期刊发布 DataOps 实践

文 ‖ 中信建投证券股份有限公司 马丽霞 高宇航 李可 许哲 李海伟 近年来,数据的分析和应用对各行各工业的业务模式和竞争形态进行重塑,而积极应对挑战和顺应时代变化是各个市场参与者的必选项。作为资本市场数字化转型的领航者,中信建投证券…

时序预测 | Python实现TCN时间卷积神经网络价格预测

时序预测 | Python实现TCN时间卷积神经网络时间序列预测 目录 时序预测 | Python实现TCN时间卷积神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 时间卷积网络,TCN。 利用CNN技术处理时间序列数据。 卷基础层有三种,第一种是一维CNN,用于输…

WebUI工作流插件超越ComfyUI

在AI绘画领域,Stable Diffsion是最受欢迎的,因为它是开源软件。 开源有两大优势,一是免费,二是适合折腾。 大量的开发者、爱好者投入无尽的热情,来推动Stable Diffsion的快速发展。 在图形界面方面,WebU…

Aria2 开发历程 (4) --使用RPC与 Aria2 进行通讯

结合这段时间搜集到到资料,比较理想的方案是通过RPC(websocket)来与运行时的Aria2(必须是运作中)进行通讯。 在配置文件和命令行都有RPC的相关配置: 例如:配置文件中的: ## RPC 设置 ### 启用 JSON-RPC/XML-RPC 服务…

麒麟操作系统网桥配置

网桥概念: Bridge 是 Linux 上用来做 TCP/IP 二层协议交换的设备,其功能可 以简单的理解为是一个二层交换机或者 Hub;多个网络设备可以连接 到同一个 Bridge,当某个设备收到数据包时,Bridge 会将数据转发 给其他设备。…

Re8 Generative Modeling by Estimating Gradients of the Data Distribution

宋扬博士的作品,和DDPM同属扩散模型开创工作,但二者的技术路线不同 Introduction 当前生成模型主要分成两类 基于似然模型 通过近似最大似然直接学习分布的概率密度,如VAE 隐式生成模型 概率分布由其抽样过程的模型隐式表示&#xff0c…

Git常用命令#切换分支

要在 Git 中切换分支,你可以使用 git checkout 命令。 a.创建新分支并切换到该分支 如果你想要创建一个新分支并立即切换到该分支,可以使用以下命令: git checkout -b 新分支名这会创建一个名为 新分支名 的新分支,并将你的工作目…

golang WaitGroup的使用与底层实现

使用的go版本为 go1.21.2 首先我们写一个简单的WaitGroup的使用代码 package mainimport ("fmt""sync" )func main() {var wg sync.WaitGroupwg.Add(1)go func() {defer wg.Done()fmt.Println("xiaochuan")}()wg.Wait() }WaitGroup的基本使用场…

如何判断数据库慢 SQL 查询?

慢 SQL 查询通常指执行时间较长或者消耗大量系统资源的查询。要判断一个 SQL 查询是否慢,可以考虑以下几个方面: 执行时间: 观察查询执行所需的时间。如果一个查询花费了相对较长的时间才能返回结果,可能就是慢查询的一个指标。通…

计算机硬件(一)

1.机箱 计算机的许多硬件,如主板,硬盘和电源等,都安放在固定机箱中。机箱是一个相对封闭的空间,箱体一般由钢和铝合金等金属制成(其他材料亦可用,但不多见),同时设有许多通风口,以促进箱内空气流动,防止内部温度过高,机箱的颜色,大小乃至形状…

[Matlab有限元分析] 2.杆单元有限元分析

1. 一维杆单元有限元分析程序 一维刚单元的局部坐标系(单元坐标系)与全局坐标系相同。 1.1 线性杆单元 如图所示是一个杆单元,由两个节点i和j,局部坐标系的X轴沿着杆的方向,由i节点指向j节点,每个节点有…

XUbuntu22.04之OBS30.0设置录制音频降噪(一百九十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…