Transformer

https://app.yinxiang.com/Home.action#n=4bf5db61-7f99-4905-9ed3-75510c178c52&s=s59&ses=4&sh=2&sds=5&
https://app.yinxiang.com/Home.action#n=613d3d11-412f-4422-b384-e43990b5f3aa&s=s59&ses=4&sh=2&sds=5&
https://app.yinxiang.com/Home.action#n=97ca659d-81c2-45e7-8a12-82bb13e65d5d&s=s59&ses=4&sh=2&sds=5&
https://app.yinxiang.com/Home.action#n=bd8cd471-cc70-41c1-8f82-47ad6af99675&s=s59&ses=4&sh=2&sds=5&
https://app.yinxiang.com/Home.action#n=11709cb0-6ae8-4077-8027-a2947d2cf15e&s=s59&ses=4&sh=2&sds=5&
https://app.yinxiang.com/Home.action#n=d282cfa8-82e4-4334-bf49-f585a9c237e8&s=s59&ses=4&sh=2&sds=5&

Transformer 是一种新的、基于 attention 机制来实现的特征提取器,可用于代替 CNN 和 RNN 来提取序列的特征。

Transformer 首次由论文 《Attention Is All You Need》 提出,在该论文中 Transformer 用于 encoder - decoder 架构。事实上 Transformer 可以单独应用于 encoder 或者单独应用于 decoder 。

  • 它使用了Attention机制,将序列中的任意两个位置之间的距离是缩小为一个常量
  • 它不是类似RNN的顺序结构,因此具有更好的并行性,符合现有的GPU框架。

论文中所设置的,编码器由6个编码block组成,同样解码器是6个解码block组成。与所有的生成模型相同的是,编码器的输出会作为解码器的输入,如图所示:


Encoder的结构如图所示:

encoder的详细结构:

在Transformer的encoder中,数据首先会经过一个叫做‘self-attention’的模块得到一个加权之后的特征向量即


得到 之后,它会被送到encoder的下一个模块,即Feed Forward Neural Network。这个全连接有两层,第一层的激活函数是ReLU,第二层是一个线性激活函数,可以表示为:

Decoder的结构如图所示

它和encoder的不同之处在于Decoder多了一个Encoder-Decoder Attention,两个Attention分别用于计算输入和输出的权值

Self-Attention:当前翻译和已经翻译的前文之间的关系;
Encoder-Decnoder Attention:当前翻译和编码的特征向量之间的关系。

你可能感兴趣的:(Transformer)