首页 > 其他分享 >重新梳理Attention Is All You Need(Transformer模型): Attention=距离,权重,概率;Multi-Head attention

重新梳理Attention Is All You Need(Transformer模型): Attention=距离,权重,概率;Multi-Head attention

时间:2024-03-26 15:32:44浏览次数:30  
标签:Transformer attention 运算 权重 Attention Head Value 理解

Attention并非transformer原创,但是transformer把Attention置为核心地位,取得了巨大的成功!我来尝试理解并介绍一下Attention注意机制。

Attention的目的是:提取特征,获得权重。

Attention是什么:提取特征(权重)的手段。

比如:给定一张图片,人类大脑很快就会把注意力放在最具辨识度的部分。换句话就是提取了最主要的信息。

相比于之前的RNN(循环神经网络),目标都是一样提取特征,获得权重,但是Attention明显技高一筹。

RNN(循环神经网络):

明显看得出,RNN是串行的,Y2依赖X1,Yn依赖Xn-1。字符越长,预测结果越差。比如直接输入一本书,一个网页,所有的字符都是依次串行操作,速度慢;文章越长,预测(权重)就越差。

Attention注意力机制:

每一个词都跟后面所有的次做attention运算,如下图,your跟所有的词做运算,your,cat,is,a, lovely,cat。cat再跟所有的词做一遍运算。

这样可以并行运算,互不干扰,充分利用GPU并行计算的能力。运算速度比RNN快很多。样本越大,比如一本书,一个网页,算的attention权重就越精确,预测结果就越好。

因此给GPT准备了海量的互联网数据,可以提高预测结果。

Attention怎么算呢?如何理解 Query,Key,Value?

如何理解Query,key,Value呢?

query是一个问题。Key和Value是配对。

举例:

Key=身高        Value=体重

k1 = 160           v1= 50

k2 = 170           v2 = 60

k3 = 180            v3 = 70

请问Query = 175,对应体重多少?Attention就会在3组数据来拟合期望的体重。

设a(q,ki)来表示Q到K的距离,权重,概率,则体重预测值f(q)

f(q) = a(q,k1)v1+a(q,k2)v2+a(q,k3)v3

从这里我们就能看出来attention == 距离,权重,概率。

这样类比,就推导出下面的公式,和右边的图片是一回事儿。

softmax:常用于神经网络的输出层,以将原始的输出值转化为概率分布,从而使得每个类别的概率值在0到1之间,并且所有类别的概率之和为1。这使得Softmax函数特别适用于多类分类问题,其中模型需要预测输入样本属于多个可能类别中的哪一个。

当Q=K=V,称为Self-attention自注意。

**这点很神奇,目前我还不是很理解为啥QKV都一样,多算几遍,就能输出一个好的attention??请大神不吝赐教?

**加上权重矩阵W,也不太理解这个权重矩阵如何训练得来?如何就让attention更好?

Multi-Head attention如何理解多头注意力?

这也是个神奇的做法。假如一个文字张量的长度为512,把这512平均分为8份,每份64;把拆分后的QKV,分别与自己的权重W做矩阵乘法,然后运算attention;算完之后,再把attention结果连接在一起变成multi-head attention,如下图所示。

查了资料,说是这里的权重矩阵 (W) 是通过模型训练学习得到的。

**w是怎么训练的呢?请大神不吝赐教?

Masked Multi-Head attention如何理解 掩码多头注意力?

首先这个是在decoder里面,因为输出是一个字跟着一个字,挨个预测的。将来的字符还没出现,需要mask盖住。不像encoder,直接把一本书灌进去,每个字都能看到前前后后所有的字。

接下来,decoder出现了一个字之后,又把前面encoder的结果当做K,V跟masked MHA的输出当做Q再做一次运算,预测出下一个字的权重。

如下图所示:

目前这是我对transformer模型attention机制的理解,中间还有一些疑问,希望大神们不吝赐教,先行感谢!

标签:Transformer,attention,运算,权重,Attention,Head,Value,理解
From: https://blog.csdn.net/ank1983/article/details/136998593

相关文章

  • 基于GA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览优化前:   优化后:   2.算法运行软件版本matlab2022a 3.算法理论概述      时间序列预测是许多领域中的核心问题,如金融市场分析、气候预测、交通流量预测等。近年来,深度学习在时间序列分析上取得了显著的成果,尤其是卷积神经网络......
  • Transformer
    Transformer自注意力机制自注意力机制核心就是计算句子在编码过程中每个位置上的注意力权重,然后再以权重和的方式计算整个句子的隐含向量表示attention核心?self-attention核心公式:\(\text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\)其......
  • 学习人工智能:Attention Is All You Need-3-训练;结果;结论;Transformer模型相当于 E=MC^2
    5训练Training本节描述了我们模型的训练方案。5.1训练数据和批次处理TrainingDataandBatching我们在标准的WMT2014英德数据集上进行了训练,该数据集包含约450万个句子对。句子使用字节对编码[3]进行编码,其共享源-目标词汇表包含约37000个标记。对于英法翻译,我们使用......
  • 谈一谈BEV和Transformer在自动驾驶中的应用
    谈一谈BEV和Transformer在自动驾驶中的应用BEV和Transformer都这么火,这次就聊一聊。结尾有资料连接一BEV有什么用首先,鸟瞰图并不能带来新的功能,对规控也没有什么额外的好处。从鸟瞰图这个名词就可以看出来,本来摄像头等感知到的物体都是3D空间里的的,投影到2D空间,只是信息的......
  • 马斯克开源的 grok-1 底层 Transformer 模型论文 《Attention is All You Need》
    拓展阅读马斯克开源的grok-1底层Transformer模型论文《AttentionisAllYouNeed》马斯克开源的grok-1大模型底层Transformer模型到底是个啥?马斯克开源的grok-1大模型硬核源码第1弹马斯克开源的grok-1大模型硬核源码第2弹马斯克开源的grok-1大模型硬核源......
  • python reqeusts 请求时headers指定content length后 请求不响应
    解释:HTTP头部中的Content-Length字段表示请求体的大小,用字节来表示。当你在使用Python的requests库进行请求时,如果你手动设置了Content-Length,但实际发送的请求体大小与Content-Length头部声明的大小不一致,服务器可能会认为这是一个无效的请求或者导致连接超时,因此服务器不会响应......
  • 机器学习算法那些事 | 使用Transformer模型进行时间序列预测实战
    本文来源公众号“机器学习算法那些事”,仅用于学术分享,侵权删,干货满满。原文链接:使用Transformer模型进行时间序列预测实战时间序列预测是一个经久不衰的主题,受自然语言处理领域的成功启发,transformer模型也在时间序列预测有了很大的发展。本文可以作为学习使用Transformer模......
  • 分类预测 | Matlab实现MTF-CNN-Mutilhead-Attention马尔可夫转移场卷积网络多头注意力
    分类预测|Matlab实现MTF-CNN-Mutilhead-Attention马尔可夫转移场卷积网络多头注意力机制多特征分类预测/故障识别目录分类预测|Matlab实现MTF-CNN-Mutilhead-Attention马尔可夫转移场卷积网络多头注意力机制多特征分类预测/故障识别分类效果基本介绍模型描述程序设......
  • 【论文精读】VIT:vision transformer论文
    相关文章【论文精读】Transformer:AttentionIsAllYouNeed文章目录相关文章一、文章概览(一)研究背景(二)核心思路(三)相关工作(三)文章结论二、模型细节(一)组成模块(二)模型的大体流程(三)具体的模型的前向过程(四)transformerencoder的公式表达(五)消融实验1、关于图像分类编码方......
  • BurstAttention:可对非常长的序列进行高效的分布式注意力计算
    提高llm中注意力机制效率的努力主要集中在两种方法上:优化单设备计算和存储能力,如FlashAttention,以及利用多设备的分布式系统,如RingAttention。FlashAttention通过使用静态随机存储器(SRAM)来存储中间状态,而不是依赖于高带宽存储器(HBM)来提高注意力计算速度。而RingAttention通......