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。
思考: