Transformer——seq2seq的模型

内容来源于李宏毅2021/2022春机器学习课程p49-50

seq2seq一般由Encoder和Decoder组成

在Encoder进行输入,在Decoder输出结果
Transformer——seq2seq的模型_第1张图片

Encoder(给一排向量,输出一排向量)

在一个Encoder中会对右侧的模型循环N遍
Transformer——seq2seq的模型_第2张图片
右侧的模型展开后类似于下面的样子。输入一排向量后,进入self-attention后进入fully connected layers。最后得到输出。
Transformer——seq2seq的模型_第3张图片
Bolck中的细节:在输入得到的结果a进行于输入的b相加得到的结果在进行norm运算X,得到的结果进入fully connected layers形成Y,将X和Y相加得到的结果再进行一次norm计算后最后的结果就是一个Bolck的输出。
Transformer——seq2seq的模型_第4张图片

Decoder

我们在字典中设置号begin和end的值,Decoder一个一个读入Encoder的输出,然后自己在一个一个输出结果,当达到条件时候就会出END
Transformer——seq2seq的模型_第5张图片
Decoder会根据自己的是一个输出结果和Encoder的输入来觉得当前的输出结果。
Transformer——seq2seq的模型_第6张图片
在Decoder中我们不能简单的运用self-attention,因为我们需要根据前面的输入来一个一个进行当前的输出,而普通的self-attention会一次性的进行全部的输出,所以这边改用Mask self-attention,只考虑前面输入的值,不考虑后面的

Transformer——seq2seq的模型_第7张图片

Encoder和Decoder之间如何传递

Encoder和Decoder的模型,在Decoder的中间存在着俩个Encoder的数据传入
Transformer——seq2seq的模型_第8张图片
每次Decoder经过第一个norm后生成的一个q
将q于每个Encoder的结果的a形成的矩阵k计算,再乘上a形成的矩阵v,最后加起来得到V,将这个结果作为Decoder的fully connected的输入
Transformer——seq2seq的模型_第9张图片

你可能感兴趣的:(NLP,transformer,人工智能,深度学习)