Attention Is All You Need--Transformer

1.Abstract

[作者是基于机器翻译的任务提出了该模型,现在该模型在语言处理、图像处理等领域广泛应用。]作者提出了一个新的简单的网络架构,叫做Transformer。这个架构只需要运用注意力机制,而不需要用RNN和CNN,通过减少模型参数简化了模型。作者通过实验同时说明了该架构的适应性较好

2.Conclusion

①在本文的工作中,transformer是第一个只运用注意力机制,而不采用RNN和CNN的机器翻译模型。

②同时,为了替代RNN中的循环层,本文采用了多头注意力机制

③对于翻译工作,Transformer要比基于RNN和CNN的模型训练快。

3.Instoduction

RNN的两个约束:①RNN的顺序性质使得它不能够很好的并行化。②为了将最开始的信息传到中间某个结点,需要较长的序列长度

CNN的约束:将最开始的信息和最后的信息结合,需要中间多次提取操作。

4.Model Architecture

对于机器翻译的基础模型:有一个编码器,一个解码器。编码器负责把输入序列(x_1,x_2,...,x_n)映射为z=(z_1,z_2,...,z_n),解码器负责根据z生成输出序列(y_1,y_2,...,y_m)。在每翻译的每一个步骤中,都应该是自回归的。自回归的大概意思是,如果将中文翻译为英文,在翻译到第t_n个词时,机器看不到第t_{n+1},t_{n+2},...词,只能从前t_{n-1}个词的翻译过程和第t_n个词的中文来将第t_n个词翻译成英文。

Attention Is All You Need--Transformer_第1张图片

Encoder and Decoder Stacks

编码器:

左半边是编码器,作者采用了N=6,就是把左面这个大方框(含有两个子层)的部分重复六次。第一个小层是多头注意力机制层(下面的子层),第二个小层是MLP层(上面的子层)。两个子层使用残差连接(add),并且用LayerNorm进行归一化(norm)。也就是说,每个子层的输出是LayerNorm(x +子层(x))。为了方便,模型中的所有子层以及嵌入层的输出规模d_{model}=512

Attention Is All You Need--Transformer_第2张图片

(注:图片中左下角的红色箭头指向Multi-Head的应该有三个,分别是key、value、query)

解码器:

右边是解码器,作者也采取了N=6,与编码器类似,解码器拥有三个子层,一进入编码器,就有Masked Multi-Head Attention层,masked可以理解为遮掩的意思,这里使用掩码进行遮掩,遮掩的目的是:因为在开篇说过,该模型采用自回归,但是采用注意力机制是可以知道全部信息的,即同时知道t_{n+1},t_{n+2},...,那么就需要将后面这些信息与一个负无穷大的数相乘,再通过LayerNorm归一化为0。接下来进入第二个子层,分别将编码器的结果作为key和value,再将解码器上一轮的信息mask后作为query。第三个子层也是MLP层。

Attention Is All You Need--Transformer_第3张图片

简单说明BatchNorm和LayerNorm的区别,具体可以看沐神视频。Transformer论文逐段精读【论文精读】_哔哩哔哩_bilibili

Attention Is All You Need--Transformer_第4张图片

考虑到在时序模型中,样本长度会发生变化,那么根据每一个batch来进行处理,效果会更好些。

Attention
Attention Is All You Need--Transformer_第5张图片
Attention Is All You Need--Transformer_第6张图片
Scaled Dot-Product Attention:
输入的queries和keys的维度是 d_k,values的维度是 d_v。通过 \frac{query\cdot key}{\sqrt{d_k}}来求取相似度。
通过矩阵来运算:
Attention Is All You Need--Transformer_第7张图片
Multi-Head Attention:
Attention Is All You Need--Transformer_第8张图片

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