首页 > 其他分享 >Transformer

Transformer

时间:2022-11-06 17:14:23浏览次数:35  
标签:输出 Transformer attention Encoder Decoder 输入

Transformer

  它是一个Sequence-to-sequence(Seq2seq)模型,输入一个序列,输出也是一个序列,但是输出序列的长度不知道,是由机器决定的。

      Seq2seq可以解决语音识别、机器翻译、语音翻译、QA、文法剖析、多标签分类等问题。

      Seq2seq模型有两部分,分别为Encoder和Decoder。

Encoder

Encoder是给出一排向量,然后输出另一排向量。(可用RNN或CNN)

Encoder的结构:

 

 

 

 

  其中,每一个self-attention的输出都考虑到了所有的输入;

      Residual的意思是将输出的结果跟输入加起来得到输出;

      Fully-conneted也是要先进行residual后进行标准化;

  其实先进行layer normalization然后再residual得到的结果会更好。

 

 

Decoder

 

Decoder结构:

 

 

种类一、Autoregressive

例子:语音识别

 

 

 

 

   句子的开头BEGIN记为BOS,这是一个特殊的字符,Decoder的每个输入可以用一个独热编码表示。然后将前一个得到的输出结果作为输入,然后下一个输出的结果就是考虑到前面所有的输入得到的输出结果,以此类推,得到整个输出序列。

 

  在输出的结尾要有一个End标识,Begin与End可用同一个符号表示。

 

Self-attention与Masked Self-attention的区别:

 

Self-attention:

 

 

Masked Self-attention:

 

 

  是masked的原因在于decoder输出的东西是一个一个产生的,没有办法知道后面的。

 

 

  种类二:Non-autoregressive(NAT)

 

 

与AT不同,NAT的结果是一次产生的。

决定输入的begin的个数的方法:

法一、另外弄一块来预测输出结果的长度(输入为各个输入的向量),得到的是一个数值,然后数值为多少就喂多少个begin进去,然后得到输出结果;

法二、自己决定,然后看输出结果,end后面的就当没有输出。

 

NAT好处:

 

(1)平行化,因为一次产生完整句子,速度会更快;

 

(2)可以自己控制decoder输出的长度。

 

劣势:但是表现的通常比AT差。

 

 

Transformer连接的桥梁:

 

 

Cross attention的运作过程:

 

 

  实际上,cross attention的encoder层的输入不一定只能是Encoder的最后一层的输出结果,也可以有其他的方式。

 

 

Transformer的训练

 

 

  得到的每个向量与独热编码之间都有一个偏差-cross entropy,最终要选偏差最小的。

     Decoder的输入是正确答案(Ground Truth),这个技术叫做Teacher Forcing。

 

Tips:

  有时候decoder不一定要自己决定输出,还可以对输入有复制的行为。(如:对话,摘要),用到的技术可以有Pointer Network、Copy Mechanism。

  在训练时给decoder的输入加一些错误的东西,否则如果这个模型在训练时没遇到过错误,测试时遇到了就不会处理,这个叫做Scheduled Sampling。

 

 

 

标签:输出,Transformer,attention,Encoder,Decoder,输入
From: https://www.cnblogs.com/qiqi-yi/p/16863028.html

相关文章