Transformer的学习

文章目录

  • Transformer
    • 1.了解Seq2Seq任务
    • 2.Transformer 整体架构
    • 3.Encoder的运作方式
    • 4.Decoder的运作方式
    • 5.AT 与 NAT
    • 6.Encoder 和 Decoder 之间的互动
    • 7.Training

Transformer

1.了解Seq2Seq任务

NLP 的问题,都可以看做是 QA(Question Answering)的问题,QA 的问题可以看做是 Sequence to Sequence 的问题。

Sequence to Sequence 是一个常见的任务类型,例如:语音识别、语音翻译(语音辨识)、机器翻译、Chatbot、Text-to-Speech (TTS) Synthesis(文本到语音合成)、语法分析、多标签分类、目标检测等等。

image-20231214174439817

Transformer的学习_第1张图片

Sequence to Sequence 任务可以由各种序列模型执行,其中 RNN 模型是经典的用于序列数据的模型,而随着 Transformer 的出现和成功,它已经在许多序列任务中取代了传统的RNN架构。

Transformer 实际上就是一个关于 Seq2Seq 的 model


2.Transformer 整体架构

Transformer的学习_第2张图片

整体架构分为两部分:Encoder 与 Decoder

3.Encoder的运作方式

Encoder 做的就是输入一个Vector sequence,输出一个Vector sequence.

Transformer的学习_第3张图片

Encoder的运作方式如下所示:

Encoder 里面是由多个 Block 组成的,经过多个 Block 的堆叠,最后得到一个Vector sequence.

Transformer的学习_第4张图片

每个 Block 所做的事情如下:对于输入的每一个 Vector sequence,首先通过 Multi-Head Attention 得到输出 a a a,然后通过残差连接得到 a + b a+b a+b,之后通过 Layer Norm 得到正则化后的Vector sequence,接着送到 Fully Connection layer,同样使用残差连接并使用 Layer Norm 得到 Encoder 的输出。

Transformer的学习_第5张图片

4.Decoder的运作方式

Decoder 可以分为:Decoder-Autoregressive(AT) 与 Decoder-Non-autoregressive(NAT),在transformer中使用的是 Decoder-Autoressive.

Decoder 做了什么?

  • Decoder 部分首先输入一个 START,经过 Decoder 并且使用 Softmax 就会得到一个概率分布,然后对这个概率分布使用 max 得到概率最大的那个值(也就是one-hot编码)。

Transformer的学习_第6张图片

  • 紧接着,将得到的输出作为输入,送入 Decoder ,不断的迭代这个过程,就得到了最后的输出。

Transformer的学习_第7张图片

在 Decoder 中用了一个 Masked Multi-Head Attention.

Transformer的学习_第8张图片

Masked Self-atttention 每次一个 vector 在输出的时候,不可以看右边的部分,也就是说在产生 b 1 b^1 b1 的时候不能在考虑 a 2 , a 3 , a 4 a^2,a^3,a^4 a2,a3,a4,产生 b 2 b^2 b2 的时候不能考虑 a 3 , a 4 a^3,a^4 a3,a4,产生 b 3 b^3 b3 的时候不能考虑 a 4 a^4 a4 ,产生 b 4 b^4 b4 的时候就可以考虑全部的信息了。

Transformer的学习_第9张图片

具体细节如下图所示:

Transformer的学习_第10张图片

目前的这个 Decoder 运作机制不知道它应该什么时候停下来。

Transformer的学习_第11张图片

为了让其停下来,所以要有一个END的标记。

Transformer的学习_第12张图片

通过这个 END 的标记来让模型停下来。

5.AT 与 NAT

Transformer的学习_第13张图片

AT Decoder 传入的是一个 START,然后一个一个的进行输出。NAT Decoder 直接传入多个 START,同时输出。

NAT好处:平行化,一个步骤产生出完整的句子,可以控制输出的长度。(怎么控制?可能会有一个 classifier 来决定输出的长度;或者输入很多个 START,那么就会输出很多个输出,忽略 END 之后的输出)

6.Encoder 和 Decoder 之间的互动

Transformer的学习_第14张图片

Encoder 和 Decoder 之间的互动是通过 Cross attention 机制进行互动的。主要过程就是将 Decoder 中通过第一个 Masked Multi-Head Attention 以及 Add 与 Norm 后的 vector sequence 与 encoder 输出中的所有 vector sequence 进行 qkv 的计算。计算流程见下图:

①第一个输出的计算

Transformer的学习_第15张图片

②第二个输出的计算

Transformer的学习_第16张图片

7.Training

Transformer的学习_第17张图片

在decoder输入的时候,要输入正确的答案(Teacher Forcing技术,使用真实的标签作为输入)

把正确答案 Ground truth 给模型,让其与 distribution 进行 cross entropy,每一个输出有一个cross entropy,将这些 cross entropy 求和,进行梯度下降,求解最好的参数,希望 decoder 的输出跟正确答案越接近越好。


参考链接:

【强烈推荐!台大李宏毅自注意力机制和Transformer详解!】 https://www.bilibili.com/video/BV1v3411r78R/?p=3&share_source=copy_web&vd_source=a36f62f9fcd2efea97449039538032fa

你可能感兴趣的:(深度学习,transformer,深度学习)