ORIGIN

关于Transformer

Transformer 全面介绍

了解transformer。变形金刚!


一、背景与意义

一个文本变换模型:序列到序列

Transformer 是谷歌于2017年在论文《Attention Is All You Need》中提出的深度学习模型架构。它通过自注意力机制(Self-Attention)完全替代了传统的循环神经网络(RNN)和卷积神经网络(CNN),解决了以下核心问题:

  1. 长距离依赖:RNN难以捕捉长序列中的远距离关联。
  2. 并行计算:Transformer无需按序列顺序处理数据,可并行计算,大幅提升训练效率。
  3. 模型泛化:通过注意力机制动态学习不同位置的权重,适应多样化的上下文关系。

二、核心架构

image-20250303171124090

Transformer由编码器(Encoder)解码器(Decoder)堆叠而成,每层结构独立且参数不共享。以下为关键组件:

1. 编码器(Encoder)
  • 输入嵌入(Input Embedding):将输入词转换为高维向量。
  • 位置编码(Positional Encoding):为词向量注入位置信息(因Transformer无时序处理能力)。
  • 多头自注意力(Multi-Head Self-Attention):捕捉词与词之间的全局依赖关系。
  • 前馈网络(Feed-Forward Network):通过全连接层进行非线性变换。
  • 残差连接(Residual Connection)层归一化(Layer Normalization):缓解梯度消失,加速收敛。
2. 解码器(Decoder)
  • 掩码多头注意力(Masked Multi-Head Attention):防止未来信息泄露(训练时仅关注当前位置之前的词)。
  • 编码器-解码器注意力(Encoder-Decoder Attention):将编码器的输出作为Key和Value,解码器输入作为Query,实现跨序列对齐。
  • 其余结构与编码器类似(前馈网络、残差连接等)。

三、自注意力机制(Self-Attention)

自注意力是Transformer的核心,通过计算词与词之间的关联权重,动态聚合上下文信息。其计算过程如下:

  1. 生成Q、K、V矩阵

    输入向量通过线性变换生成查询(Query)、键(Key)、值(Value)矩阵。

  2. 计算注意力分数

    通过点积计算词与词之间的相似度,再缩放(防止梯度爆炸)并归一化:
    \[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\\ {d_k}为Key的维度 \]

  3. 多头注意力(Multi-Head)

    • 将Q、K、V拆分为多个子空间(如8个“头”),分别计算注意力后拼接结果,增强模型捕捉不同层面信息的能力。

四、位置编码(Positional Encoding)

因为transformer是并行计算每个词语的Attention的,所以没法考虑到语序问题。因此引入了位置编码。通过位置编码为输入序列注入位置信息。

  • 正弦与余弦函数
    \[ PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right), \quad PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \] (pos):词的位置,(i):维度索引。

    可泛化到任意长度的序列,且能通过线性变换捕捉相对位置关系。


五、前馈网络(Feed-Forward Network)

每个注意力层后接一个全连接前馈网络,包含两次线性变换和ReLU激活函数:
\[ \text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2 \]

  • 作用:增强模型的非线性表达能力。

六、训练与优化

  1. 损失函数:交叉熵损失(如机器翻译任务)。
  2. 优化器:Adam优化器,结合学习率预热(Warmup)和衰减策略。
  3. 正则化
    • Dropout:应用于注意力权重和全连接层。
    • 标签平滑(Label Smoothing):缓解过拟合。

七、优势与局限性

优势:
  • 并行计算:显著提升训练速度。
  • 全局上下文建模:自注意力机制可捕捉任意距离的依赖关系。
  • 可扩展性:模型深度和宽度灵活调整(如BERT、GPT等变体)。
局限性:
  • 计算复杂度:序列长度(n)的平方级复杂度((O(n^2))),难以处理超长序列。
  • 位置编码瓶颈:预设的位置编码可能无法完美适应所有任务。
  • 显存消耗:多头注意力导致参数量较大。

八、重要变体与改进

  1. BERT:仅用编码器,通过掩码语言模型预训练。
  2. GPT系列:仅用解码器,自回归生成文本。
  3. Efficient Transformers
    • Longformer:稀疏注意力机制处理长文本。
    • Linformer:低秩近似降低计算复杂度。
  4. 视觉Transformer(ViT):将图像分块输入Transformer。

九、总结

Transformer凭借其自注意力机制并行化设计,成为深度学习领域的基石模型。它不仅推动了NLP的快速发展,还跨界影响了计算机视觉、语音识别等领域。尽管存在计算复杂度高、长序列处理难等挑战,其灵活性和强大性能使其成为AI模型设计的核心范式。后续的改进模型(如稀疏注意力、模型压缩等)进一步扩展了其应用边界,奠定了其在现代AI中的核心地位。

关于前馈网络层

前馈网络层,特别是在前馈神经网络中,扮演着至关重要的角色。前馈神经网络是一种最简单的神经网络,各神经元分层排列,每个神经元只与前一层的神经元相连,接收前一层的输出,并输出给下一层,各层间没有反馈。前馈网络层的作用:

  1. 特征提取与转换

    隐藏层(即前馈网络中的中间层)的主要功能是提取输入数据的特征和抽象表示。通过具有多个隐藏层,神经网络可以学习输入数据中越来越复杂和抽象的特征。隐藏层中的每个神经元都接收来自前一层神经元的输入,对其进行处理(如加权、求和、激活等),并将其传递到下一层。这样,隐藏层可以转换输入数据并提取有用的特征,从而使网络能够学习输入和输出之间更复杂和抽象的关系。

  2. 非线性映射

    激活函数(如ReLU、sigmoid、tanh等)在隐藏层中的应用引入了非线性,使得神经网络能够学习和建模输入和输出之间更复杂的非线性关系。

  3. 信息传递与整合

    在前馈神经网络中,信息从输入层流向隐藏层,再流向输出层,而不会循环回馈。这种单向信息传递的方式使得网络结构清晰、易于理解和实现。同时,每一层都接收来自前一层的信息,并对其进行整合和处理,最终生成网络的输出。

TOP
COMMENT
made with ❤️ by o_oyao
©Yuxi undefined-2025

|