0
点赞
收藏
分享

微信扫一扫

Transformer【第五章】


文章目录

  • ​​Seq2seq​​
  • ​​Encoder​​
  • ​​Decoder​​
  • ​​Autoregressive​​
  • ​​Non-autoregressive​​
  • ​​Encoder-Decoder (Cross attention)​​
  • ​​Training​​

Seq2seq

Transformer 是一个 Sequence-to-sequenceModel(缩写 Seq2seq

input 是 一个 sequenceoutput 是一个 sequence,但是不知道多长,由机器自己决定 output 的长度。

应用:语音辨识,机器翻译,语音翻译

Transformer【第五章】_机器翻译


一般的 Seq2seq model 可以分为两块:Encoder + Decoder

input 一个 sequence,由 Encoder 负责处理这个 sequence,再把处理好的结果丢给 Decoder,由 Decoder 决定它要输出什么样的 sequence

Transformer【第五章】_人工智能_02

Encoder

作用:给一排向量输出另外一排向量(相同长度),TransformerEncoder 使用的就是 Self-attention

Transformer【第五章】_人工智能_03

Encoder 中分为很多 block,每个 block 都是输入一排向量,输出一排向量,每个 block 实际并不是 Neuron Network 的一层,每个 block 作的事情,是好几个 layer 在作的事情:Self-attention、再丢到 FC 中,output 另外一排 vector(就是 block 的输出)

Transformer【第五章】_transformer_04

在原来的 Transformer 里面更复杂:

self-attention 的输出后加上原来的 inputvector,得到新的 ouput(残差网络),然后作 normalizationlayer normalization),然后作为 FC 的输入,FC 也有 Residual 的架构,即将 FC 的输出加上 FC 的输入再作 layer normalization,然后作为 Block 的输出。

Transformer【第五章】_机器翻译_05

Decoder

Autoregressive

Decoder 产生输出

Decoder 先将 Encoder 的输出先读进去。

Decoder 如何产生一段文字:

  1. 先给它一个特殊符号代表开始(BOS)一个Specialtoken
  2. Decoder吃到这个特殊的符号,每个Token都可以用One-HotVector表示(其中一维是 1,其它是 0)
  3. Decoder输出一个vector,大小和Vocabularysize一样(通过softmax来确定输出是哪个字),然后再将Encoder的输出、begin、 跟这个字的One-HotVector作为Decoder的下一个输入,然后再得到输出,依次类推…,

Transformer【第五章】_深度学习_06

Decoder 的结构:

Transformer【第五章】_人工智能_07

EncoderDecoder 的区别:

除了遮着的地方 和 Masked Self-attention,其它基本相似

Transformer【第五章】_机器翻译_08

Masked Self-attention (不考虑右边的)因为 Decoder 的输入是从左边输出产生的,没办法看到右边。

Transformer【第五章】_深度学习_09


Transformer【第五章】_机器翻译_10

只和自己及左边的

Transformer【第五章】_机器翻译_13

Decoder 决定输出的长度。

Transformer【第五章】_深度学习_14

需要加一个特殊的符号,表示结束。

Transformer【第五章】_机器翻译_15


Transformer【第五章】_人工智能_16

Non-autoregressive

一次产生整个句子:

  1. Classifier来决定输入的Begin的数量
  2. 确定最长长度的begin,然后将输出在End处截断。

Transformer【第五章】_机器翻译_17

Encoder-Decoder (Cross attention)

Cross attention(连接 EncoderDecoder 的桥梁)

有两个输入来自 Encoder,一个来自 Decoder

Transformer【第五章】_语音辨识_18

Encoder 的输出是 begin 经过 Self-attention(Mask),产生一个向量,然后将这个向量乘一个矩阵得到向量 Query 产生 ,然后将 计算 attention 的分数,得到 ,然后将 分别乘 ,然后再把其加起来的到 ,然后再经过

Cross attention 来自 Decoder 来自 Encoder

Transformer【第五章】_transformer_34

下一个输出的产生同上

Transformer【第五章】_transformer_35

Training

跟分类很像。

Transformer【第五章】_人工智能_36


Decoder 每次的输出都是 One-hotvector

分别对每一个 Decoder 的输出作 Cross Entropy,来训练。

训练的时候,给它正确的答案作为 Decoder 的输入。

Transformer【第五章】_机器翻译_37


举报

相关推荐

第五章

五,Eureka 第五章

第五章 Tomcat

第五章总结

MySQL 第五章

第五章 列表

第五章 数组

0 条评论