首页 > 其他分享 >Transformer

Transformer

时间:2024-03-31 17:04:39浏览次数:26  
标签:输出 Transformer self attention a1 decoder 输入

(self-attention)自注意力机制

将词汇转化为向量表示,可以使用one-hot进行编码,但是这种编码方式认为所有的词之间是没有关系的

还有一种方法是Word Embedding,这种方法相似的词汇会聚集到一起。

输入

文字、声音和图等的输入都是一堆向量

输出

1、N->N(如词性标注)

2、N->1(情绪分析,就是评价一条评论是正面的还是负面的)

3、N->N'(机器自己决定输出数目的多少)

视频中以第一种输出情况为例(N->N)

经过Self-attention得到的四个vectors是考虑了整个sequence(句子)之后才得到的,然后再作为全连接层的输入,再输出

self-attention和全连接层交替使用

self-attention处理整个句子的信息,而全连接层专注于处理某个位置的信息

self-attention的运作过程

b1--b4的产生不是按照顺序产生的,是并行运行产生的

b1的得出是考虑了a1到a4之后得到的。

b1产生的步骤:

1、根据a1找到sequence里与a1相关的其它向量

那么现在的问题是如何得出α呢?

Dot-product和Additive的方式都可以得到

本文中使用的是Dot-product

a1与a1、a2、a3、a4分别进行dot-product计算,分别计算关联性,得到α的值之后经过softmax进行归一(不一定使用softmax,也可以使用relu等,结果可能比softmax的结果更好,这里使用的方法是不确定的)

2、得到α' 之后抽取重要的信息,下面是抽取重要信息的过程

与a1的关联性越强,即得到的α' 的值越大,那么最后计算b1的时候的影响就会越大,就会越接近。

矩阵运算的角度

过程概述图(只有红框里面的数据是未知的,需要通过training data找出来的,其余的数据都是已知的)

Multi-head Self-attention

有多种不同的相关性,就会有多个head,不同的head做各自的计算

Positonal Encoding

在上述的过程中,并没有考虑位置的问题。

在做词性标注的时候,位置的信息就比较重要,比如动词出现在开头的概率就比较低

所以就需要在原有的基础上添加位置向量

self-attention VS CNN

CNN是简化版的self-attention,self-attetnion需要考虑整个的信息,而CNN只需要考虑设定的红框的信息

self-attention VS RNN

Transformer

Sequence-to-sequence(Seq2seq)

输入一个sequence,输出一个sequence,但是输出的长度是由机器自己决定的

Seq2seq过程

Encoder

transformer中的self-attention

经过b经过self-attention之后的a,然后再和b相结合,做residual之后进行norm得到c,c经过全连接层之后得到d,然后d再和c进行结合做residual,之后再做norm

上图的过程就是下图过程的详细版

右图中的输入加入了positional encoding,然后经过multi-head-attention之后进行residual和norm,接着是前馈网络,接着又进行residual和norm,就这样执行n次。

Decoder

前面的输出,再作为下一步的输入

何时停止?

添加“stop token”

encoder和decoder

masked self-attention

表示在生成b1的时候只能考虑a1,在生成b2的时候只能考虑a1和a2,在生成b3的时候只能考虑a1,a2和a3,在生成b4的时候考虑a1,a2,a3,a4

为什么需要masked self-attention?

其实非常的直观,因为decoder的过程是依次执行的,是现有前面的然后才有后面的,就像是现有a1然后才有a2,而self-attention是一块执行的

Decoder ---- Non-autoregressive(NAT)

与AT不同的是,NAT是一次输入多个begin,但是这就有一个问题,如何确定输入的begin的数量(因为输入是不确定的)?

        1、另外设置一个Classifier这个分类器的输入是decoder的input,然后输出是一个数字,这个数字就是表示的begin的数量

        2、给一个begin的上限,根据输入的end进行中断,如上图

NAT的好处

并行进行,速度比AT的速度快

但是NAT的表现弱于AT的表现

Encoder和Decoder中间的传递

cross attention

q来自于decoder,k和v来自于encoder。decoder凭借产生的q抽取encoder里面重要的信息产生作为FC的输入的值

下一步的过程:

训练过程

将decoder的输出和正确答案做cross entropy,并且使corss entropy最小,这样的正确率越高。

在训练的时候,这里decoder的输入是正确答案,就是提前给decoder看正确答案,在有“begin”和“机”的情况下,下一步输出的就是“器”

补充

前馈神经网络

神经网络前馈是接收输入数据并生成输出的机器学习模型。这些网络由多层人工神经元组成,这些人工神经元通过加权连接连接。在不环回的情况下,数据以单一方向从输入层流向输出层。在训练期间调整神经元之间连接的权重,以减少模型预测的输出与实际正确输出之间的差异。

cross entropy

交叉熵(Cross-Entropy)是一种用于衡量两个概率分布之间的距离或相似性的度量方法。在机器学习中,交叉熵通常用于损失函数,用于评估模型的预测结果与实际标签之间的差异

Dot-product

其实就是做点积(内积)运算

标签:输出,Transformer,self,attention,a1,decoder,输入
From: https://blog.csdn.net/2401_84009572/article/details/137197254

相关文章

  • 【 ICCV代码复现】Swin Transformer图像分类实战教程 (训练自己的数据集)
    SwinTransformer图像分类实战教程一、环境配置1.官方环境配置2.数据集结构二、修改配置等文件1.修改config.py2.修改build.py3.修改utils.py三、训练1.Train2.Evaluation四、常见报错1.TypeError:__init__()gotanunexpectedkeywordargument‘t_mul‘我用......
  • 词-词共现概率与Transformer
    1.词词共现概率    词-词共现概率是自然语言处理中的一个关键概念,它描述的是在一段文本或一个大型语料库中,任意两个词在同一上下文中共同出现的概率。具体来说,如果我们在分析语料库时发现词A和词B经常相邻出现或者在一定距离范围内出现,那么我们就说词A和词B具有较高的......
  • Transformer 预测过程 详解
    我们看到很多文章讲了transformer架构的高层概述,包括其中一些主要组件。但大部分文章没有讲整个预测过程是如何一步步进行的。让我们通过一个简单的例子来详细了解一下。在这个例子中,你将会看到一个翻译任务或者序列到序列任务,这恰好是transformer架构设计者最初的目标。你将......
  • Transformer逐层分解
    什么是Transformer?Transformer架构擅长处理文本数据,这些数据本身是有顺序的。他们将一个文本序列作为输入,并产生另一个文本序列作为输出。例如,讲一个输入的英语句子翻译成西班牙语。Transformer的核心部分,包含一个编码器层和解码器层的堆栈。为了避免混淆,我们把单个层称为编......
  • 重新梳理Attention Is All You Need(Transformer模型): Attention=距离,权重,概率;Multi-He
    Attention并非transformer原创,但是transformer把Attention置为核心地位,取得了巨大的成功!我来尝试理解并介绍一下Attention注意机制。Attention的目的是:提取特征,获得权重。Attention是什么:提取特征(权重)的手段。比如:给定一张图片,人类大脑很快就会把注意力放在最具辨识度的部分......
  • 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大模型硬核源......
  • 机器学习算法那些事 | 使用Transformer模型进行时间序列预测实战
    本文来源公众号“机器学习算法那些事”,仅用于学术分享,侵权删,干货满满。原文链接:使用Transformer模型进行时间序列预测实战时间序列预测是一个经久不衰的主题,受自然语言处理领域的成功启发,transformer模型也在时间序列预测有了很大的发展。本文可以作为学习使用Transformer模......