深度学习笔记——Transformer

306 阅读4分钟

大家好,这里是好评笔记,本文为试读,查看全文请移步公主号:Goodnote。本文详细介绍面试过程中可能遇到的Transformer知识点。

7.png


@[toc]

在这里插入图片描述

初识Transformer

Transformer 是一种革命性的神经网络架构,最早由 Vaswani 等人在 2017 年提出,它彻底改变了自然语言处理(NLP)的领域。与传统的递归神经网络(RNN)和长短期记忆网络(LSTM)不同,Transformer不依赖于序列的时间步 ,而是通过注意力机制 并行处理整个输入序列。它在诸如机器翻译、文本生成和语言模型等任务中表现出色。下面详细介绍 Transformer 的原理、结构和应用。

1. 编码器-解码器架构

Transformer 的架构由两个部分组成:

  • 编码器(Encoder):将输入序列 -> (映射) -> 连续的表示空间
  • 解码器(Decoder):根据编码器的输出 ->生成目标序列

编码器和解码器均由多个相同的层堆叠而成。每层都有两个主要组件

  • 多头自注意力机制(Multi-Head Self-Attention Mechanism)
  • 前馈神经网络(Feed-Forward Neural Network)

解码器的额外结构

解码器除了与编码器相同的结构外,还多了一个编码器-解码器注意力机制,它在生成每个目标时依赖于编码器的输出

2. 自注意力机制(Self-Attention Mechanism)

Transformer 的核心是自注意力机制,它能够捕捉输入序列中的全局依赖关系,并且不需要像 RNN 那样逐步计算在这里插入图片描述

解码器中的注意力机制的2点特殊

  1. 编码器-解码器注意力机制:解码器中,不仅包含自注意力机制,还包括一个与编码器输出交互的注意力机制,它允许解码器在生成每个词时参考编码器的上下文信息
  2. 未来遮蔽确保在生成第 t 个词时,只能看到之前生成的词,而看不到未来的词

3. 位置编码(Positional Encoding)

因为 Transformer 不依赖输入序列的顺序信息,它需要显式地将位置信息引入模型中。为此,Transformer 使用位置编码(Positional Encoding)来为每个输入向量添加位置信息。 位置编码通过正弦和余弦函数生成,并按照序列的索引位置注入到每个词向量中: 在这里插入图片描述 其中 ( pospos ) 是词在序列中的位置,( ii ) 是词向量的维度索引,( dd ) 是词向量的总维度。

4. 前馈神经网络(Feed-Forward Neural Network, FFN)

在每个编码器和解码器层中,除了自注意力机制外,还包括一个前馈神经网络。每个时间步上的前馈网络是独立应用的,它的公式如下: 在这里插入图片描述

5. 残差连接和层归一化(Residual Connections and Layer Normalization)

Transformer 的每个子层(如自注意力机制或前馈神经网络)面都有一个残差连接(Residual Connection)和层归一化(Layer Normalization),确保在网络训练的过程中信息可以直接传递,缓解深层网络中的梯度消失问题。 残差连接的形式为: 在这里插入图片描述

6. Transformer 的应用

Transformer 由于其并行计算的优势,以及在处理长距离依赖关系上的优越表现,在许多任务中取得了卓越的成果:

  • 机器翻译:例如谷歌翻译。
  • 文本生成:例如 OpenAI 的 GPT 系列模型。
  • 文本摘要:自动生成文档摘要。
  • 语言建模:如 BERT、GPT 及其变体,用于各种 NLP 任务。
  • 图像处理&多模态:ViT、ViLT。

7. Transformer 的优势

  • 并行处理不依赖时间步顺序,可以并行处理整个序列,因此训练速度更快,特别适合大规模数据集。
  • 长距离依赖处理能力强注意力机制,能够轻松处理序列中远距离的依赖关系,而不像 RNN 或 LSTM 那样受限于序列的长度。
  • 广泛的应用:Transformer 已成为 NLP 的标准架构,并被扩展到其他领域,如图像处理(Vision Transformer, ViT)和语音处理等。

编码解码的过程

详细全文请移步公主号:Goodnote。

参考:欢迎来到好评笔记(Goodnote)!