Advertisement

李宏毅《Deep Learning》学习笔记 - transformer

阅读量:

学习资料

教学视频:https://www.youtube.com/watch?v=ugWDIIOHtPA&list=PLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index=61&t=1s

Transformer

Transformer基于Seq2Seq结合Self-Attention机制

Seq2Seq Model的问题

Seq2Seq模型的主要缺点在于其运算效率较低,并行处理能力不足。如图所示,在左侧部分展示了传统的 Seq2Seq 模型工作流程,在右侧部分则采用卷积神经网络(CNN)来进行数据处理过程。与传统的 Seq2Seq 方法相比,在实现并行化方面 CNN 显示出了显著的优势。

在这里插入图片描述

相比Seq2Seq层而言,在无需修改输入输出结构的情况下可以直接取代原有的RNN层,并且还可以通过引入并行化技术来提高计算效率。

在这里插入图片描述

Self-Attention

对每一个Input都经过变换处理,生成三个向量q、k、v。接着,在此基础上进行注意力计算:这里的注意力机制的本质是衡量两个向量之间的相似程度。

在这里插入图片描述

attention有多种计算方法,下面使用的是scaled dot-product attention。

在这里插入图片描述

接着,将所有的attention value都做soft-max

在这里插入图片描述

将经过soft-max的值,与每一个v相乘,求和,求得b^1

在这里插入图片描述

对于b^2的计算方法,也是类似

在这里插入图片描述
在这里插入图片描述

让我们来探讨如何进行矩阵计算的并行化处理。对输入数据x^{1}, x^{2}, x^{3}, x^{4}进行变换后得到a^{1}, a^{2}, a^{3}, a^{4}。这些转换后的值将被用作构建一个I矩阵的各项列。随后我们将该I矩阵分别与权重矩阵W_{t} = [W_{q}; W_{k}; W_{v}], 其中每一个子块对应着不同的运算(如查询、键、值),从而生成相应的查询向量q, 键向量k, 值向量v. 每一列实际上都是之前所述的具体步骤所得到的结果:即q_{i}, k_{i}, v_{i}.

在这里插入图片描述

再看一下计算\hat{\alpha}b的过程。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后,我们再回顾一下,整个self-attention的计算过程。

在这里插入图片描述

Multi-head Self-Attention

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Positional Encoding

在这里插入图片描述
在这里插入图片描述

Seq2Seq with Attention

将原先的RNN层,用self-attention layer代替,就好了。

在这里插入图片描述

架构分析

下面是Transformer的完整架构,包括Encoder和Decoder。

在这里插入图片描述

下面是对架构中各组成部分的详细说明。其中Multi-Head Attention即为上文所述的自注意力层。Add & Norro被图1左上方黄色区域所解释。其中Add操作表示将输入a与输出b相加,在此过程中Norro指代层归一化(Layer Normalization)过程的具体实现方式。此处对比了Layer Normalization和Batch Normalization两种归一化方法。具体而言,在Layer Normalization中对单个样本中的各维度值进行标准化,在Batch Normalization则对同一维度在同一批数据中的数值执行标准化处理。

在这里插入图片描述

论文实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其他应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~