发布时间:2023-04-18 文章分类:电脑基础 投稿人:樱花 字号: 默认 | | 超大 打印

文章目录

  • 概述
  • Seq2Seq( Sequence-to-sequence )
  • Encoder-Decoder的缺陷
  • Attention 机制的引入
  • Transformer中的Encoder-Decoder

概述

注意点:

  1. 不管输入序列和输出序列长度是什么,中间的「向量 c」长度都是固定的。 这是Encoder-decoder框架的的缺点
  2. 不同的任务可以选择不同的编码器和解码器 (RNN,CNN,LSTM,GRU)。
  3. Encoder-Decoder 是一个 End-to-End 的学习算法,以机器翻译为力,可以将法语翻译成英语。这样的模型也可以叫做 Seq2Seq

Seq2Seq( Sequence-to-sequence )

For example
Encoder-Decoder 模型架构详解

案例:英文 it is a cat. 翻译成中文的过程。

  1. 先将整个源句子进行符号化处理,以一个固定的特殊标记作为翻译的开始符号和结束符号。此时句子变成 it is a cat .
  2. 对序列进行建模,得到概率最大的译词,如第一个词为 “这”。将生成的词加入译文序列,重复上述步骤,不断迭代。
  3. 直到终止符号被模型选择出来,停止迭代过程,并进行反符号化处理,得到译文。

Encoder-Decoder的缺陷

中间的「向量 c」长度都是固定的

Attention 机制的引入

Encoder-Decoder 模型架构详解

Attention 如何准确将注意力放在关注的地方呢?

引入 Attention 的 Encoder-Decoder 框架下,完成机器翻译任务的大致流程如下:

Encoder-Decoder 模型架构详解

Encoder-Decoder 模型架构详解
Encoder-Decoder 模型架构详解
Encoder-Decoder 模型架构详解
Encoder-Decoder 模型架构详解

Transformer中的Encoder-Decoder

Encoder-Decoder 模型架构详解

Attention 机制

self-Attention

Multi-Head Attention

Encoder-Decoder 模型架构详解

Transformer 中 Encoder 由 6 个相同的层组成,每个层包含 2 个部分:

Decoder 也是由 6 个相同的层组成,每个层包含 3 个部分:

上面每个部分都有残差连接 (redidual connection),然后接一个 Layer Normalization。
Encoder-Decoder 模型架构详解

encoder-decoder的局限性:
编码和解码之间的唯一联系就是一个固定长度的语义向量C。编码器要将整个序列的信息压缩进一个固定长度的向量中去 。

注意力模型
模型在产生输出的时候,还会产生一个“注意力范围”表示接下来输出的时候要重点关注输入序列中的哪些部分,然后根据关注的区域来产生下一个输出,如此往复。

Encoder-Decoder 模型架构详解

attention模型最大的区别就在于它不在要求编码器将所有输入信息都编码进一个固定长度的向量之中。

编码解码器的表示
Encoder-Decoder 模型架构详解

几点说明

Seq2Seq与Encoder-Decoder的关系
Encoder-Decoder 模型架构详解Encoder-Decoder强调的是模型设计(编码-解码的一个过程),Seq2Seq强调的是任务类型(序列到序列的问题)。

Encoder-Decoder的四种模式
最简单的解码模式
Encoder-Decoder 模型架构详解

带输出回馈的解码模式

Encoder-Decoder 模型架构详解

带编码向量的解码模式

Encoder-Decoder 模型架构详解

带注意力的解码模式

Encoder-Decoder 模型架构详解
参考链接:

  1. https://zhuanlan.zhihu.com/p/109585084
  2. https://blog.csdn.net/u014595019/article/details/52826423
  3. https://blog.csdn.net/u010626937/article/details/104819570