当前位置:   article > 正文

Transformer从零详细解读(可能是你见过最通俗易懂的讲解)_transformer代码逐步讲解

transformer代码逐步讲解

Transformer是2017年火起来的。

Transformer结构

DERT:物体检测

ViT:在视觉中做Transformer。

Transformer就是解决三个事儿:k,q,v三个辅助向量

q:查询向量,查询和其他输入之间的关系;k:键向量

v:特征表达,v是特征的代表。

建立在输入数据之间有联系。

1.输入部分

Nx:N个编码器的堆叠。(N是一个超参数,由程序员规定。)

残差连接(跳跃连接):跨层向上传递信息。

Add&Norm:规范化层。

Feed Forward:前馈全连接子层

文本嵌入层(Embedding)的作用:

无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示,希望在这样的高维空间捕捉词汇间的关系。

位置编码的作用:

因为在Transformer的编码器结构中,并没有针对词汇位置信息的处理,因此需要在Embedding层后加入位置编码器,将词汇位置不同面能会产生不同语义的信息加入到词嵌入张量中,以弥补位置信息的缺失。

原论文中的图,Nx为个数,左部分是encode ,右部分是decode。右半部分多了一层被掩盖的多头注意力机制。

可以将encode分成如上三个部分。

一共12个字,每个字对应512维度的字向量。

天然的时序关系,Transformer处理单词是并行处理的,不像RNN是一个一个接着处理的。所以transformer对比RNN就缺少了单词的先后关系,这个时候就需要位置编码。

2i代表偶数,2i+1代表奇数。

2.编码器部分

了解编码器的各个部分。作为编码器的组成单元,每个编码器层完成一次对输入的特征提取过程。

2.1掩码张量


掩代表遮掩,码就是我们张量中的数值,它的尺寸不定,里面一般只有1和0的元素,代表位置被遮掩或者不被遮掩,至于是0位置被遮掩还是1位置被遮掩可以自定义,因此它的作用就是让另外一个张量中的一些数值被遮掩,也可以说被替换,它的表现形式是一个张量。
掩码张量的作用:
在transformer中,掩码张量的主要作用在应用attention时,有一些生成的attention张量中的值计算有可能已知了未来信息而得到的,未来信息被看到是因为训练时会把整个输出结果都一次性进行Embedding,但是理论上解码器的的输出却不是一次就能产生最终结果的,而是一次次通过上一次结果综合得出的,因此,未来的信息可能被提前利用所以,我们会进行遮掩。

2.2Scaled Dot-Product Attention的计算

2.3Multi-Head Attention

2.4前馈全连接层

什么是前馈全连接层:
在Transformer中前馈全连接层就是具有两层线性层的全连接网络。
前馈全连接层的作用:
考虑注意力机制可能对复杂过程的拟合程度不够,通过增加两层网络来增强模型的能力。

2.5规范化层

规范化层的作用:
它是所有深层网络模型都需要的标准网络层,因为随着网络层数的增加,通过多层的计算后参数可能开始出现过大或过小的情况,这样可能会导致学习过程出现异常,模型可能收敛非常的慢。因此都会在一定层数后接规范化层进行数值的规范化,使其特征数值在合理范围内。(神经网络的标配)

3.解码器层

作为解码器的组成单元,每个解码器层根据给定的输入向目标方向进行特征提取操作,即解码过程

作用:根据编码器的结果以及上一次预测的结果,对下一次可能出现的“值”进行特征表示。

4.输出部分

了解线性层和softmax的作用。
掌握线性层和softmax的实现过程。

4.1线性层

作用:通过对上一步的线性变化得到指定维度的输出,也就是转换维度的作用。

4.2softmax层

使最后一维的向量中的数字缩放到0-1的概率值域内,并满足他们的和为1。

思考:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/654741
推荐阅读
相关标签
  

闽ICP备14008679号