跳过正文
  1. 文章列表/

Transformer网络

·5183 字·11 分钟·
RayChaux
作者
RayChaux
神经网络 - 这篇文章属于一个选集。
§ 5: 本文

📚 神经网络方法与应用(2025)学习笔记
#

🌀 第五章 深层神经网络:Transformer与通用大模型
#

核心目标:掌握Transformer的核心结构与工作原理,理解基于Transformer的语言/视觉/多模态大模型设计逻辑,明确Transformer与RNN/CNN的差异,构建深层神经网络的完整技术图谱。


一、Transformer核心原理
#

📌 核心定位
#

Transformer是2017年Google提出的基于自注意力机制的深层神经网络,彻底摒弃RNN的序列依赖,实现并行计算,同时建模全局依赖,成为语言大模型、视觉模型及通用大模型的核心架构。

1.1 设计背景:RNN的痛点
#

  • 长程依赖困境:RNN通过序列传递信息,易出现梯度消失/爆炸,长序列建模能力有限。
  • 并行性差:需按时间步串行计算,训练效率低。
  • 信息瓶颈:编码器-解码器架构中,解码器仅依赖编码器最后一个隐状态,丢失全局信息。
  • Transformer通过自注意力机制解决上述问题,实现“全局建模+并行计算”。

1.2 核心组件与结构
#

1.2.1 整体架构:编码器-解码器
#

  • 编码器(Encoder):6层相同模块堆叠,输入序列→全局特征编码,适用于语义理解任务。
  • 解码器(Decoder):6层相同模块堆叠,编码特征+已生成序列→目标序列,适用于生成任务。
  • 核心流程:
    1. 输入嵌入(词嵌入+位置编码)→ 表示矩阵。
    2. 编码器并行计算→全局特征矩阵。
    3. 解码器自回归生成→目标序列。

1.2.2 核心组件详解
#

(1)输入嵌入与位置编码
#
  • 词嵌入(Word Embedding):将单词映射为固定维度向量(如768维),可预训练(Word2Vec/GloVe)或随网络训练。
  • 位置编码(Positional Encoding)
    • 必要性:Transformer无序列结构,需显式注入位置信息。
    • 公式(原始Transformer): $$PE_{pos, 2i} = sin\left( pos / 10000^{2i/d} \right)$$ $$PE_{pos, 2i+1} = cos\left( pos / 10000^{2i/d} \right)$$
    • 特性:周期性变化,捕捉相对位置关系,维度与词嵌入一致,叠加后输入网络。
(2)自注意力机制(Self-Attention)
#
  • 核心思想:每个位置的表示依赖于序列中所有位置的信息,通过“查询-键-值”(Q-K-V)计算全局依赖。

  • 计算过程:

    1. 线性变换:输入矩阵\(X \in \mathbb{R}^{n×d}\)通过权重矩阵生成Q、K、V: $$Q = X W^Q, \quad K = X W^K, \quad V = X W^V$$
      • \(n\)为序列长度,\(d\)为嵌入维度,\(W^Q, W^K, W^V \in \mathbb{R}^{d×d_k}\)(\(d_k\)为Q/K维度)。
    2. 缩放点积:计算Q与K的相似度,除以\(\sqrt{d_k}\)缓解高维方差问题: $$Attention(Q,K,V) = softmax\left( \frac{Q K^T}{\sqrt{d_k}} \right) V$$
    3. 输出:每个位置的向量是V的加权和,权重为softmax归一化后的相似度。
  • 优势:

    • 全局依赖:一次计算捕捉所有位置关联,无长程依赖损失。
    • 并行计算:所有位置的Q-K-V计算可并行,效率远超RNN。
(3)多头注意力(Multi-Head Attention)
#
  • 核心思想:多个自注意力头并行计算,捕捉不同维度的依赖关系,拼接后线性变换输出。
  • 计算过程: $$MultiHead(Q,K,V) = Concat(head_1, head_2,...,head_h) W^O$$ $$head_i = Attention(Q W_i^Q, K W_i^K, V W_i^V)$$
    • \(h\)为头数(原始Transformer用8头),\(W^O \in \mathbb{R}^{h×d_k ×d}\)。
  • 优势:多视角捕捉依赖,提升特征表达能力。
(4)逐位置前馈网络(Position-wise FFN)
#
  • 结构:两层全连接+ReLU激活,对每个位置的向量独立处理: $$FFN(x) = max(0, x W_1 + b_1) W_2 + b_2$$
  • 作用:引入非线性,增强网络对局部特征的抽象能力,输入输出维度保持一致(\(d\)维)。
(5)残差连接与层归一化(Add & Norm)
#
  • 残差连接:$$x_{out} = x_{in} + SubLayer(x_{in})$$(SubLayer为自注意力或FFN),缓解梯度消失。
  • 层归一化(LayerNorm):对每个样本的特征维度归一化,加速训练: $$LayerNorm(x) = \gamma \cdot \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \beta$$
    • \(\mu, \sigma^2\)为样本特征维度的均值和方差,\(\gamma, \beta\)为可学习参数。
(6)掩码机制(Mask)
#
  • 仅用于解码器,防止“看未来”信息:
    • 掩码矩阵:下三角矩阵,上三角元素为\(-\infty\),softmax后变为0,屏蔽未来位置的影响。
    • 应用场景:自回归生成任务(如机器翻译、文本生成)。

1.2.3 编码器与解码器细节
#

(1)编码器模块(单层)
#
  • 结构:多头自注意力 → 残差连接+层归一化 → FFN → 残差连接+层归一化。
  • 特点:无掩码,所有位置并行计算,输出全局特征矩阵。
(2)解码器模块(单层)
#
  • 结构:
    1. 掩码多头自注意力(屏蔽未来)→ 残差连接+层归一化。
    2. 多头注意力(Q来自解码器上一层,K/V来自编码器输出)→ 残差连接+层归一化。
    3. FFN → 残差连接+层归一化。
  • 特点:结合已生成序列和全局特征,实现自回归生成。

1.3 Transformer与RNN的核心对比
#

对比维度 Transformer RNN(含LSTM/GRU)
依赖建模 全局依赖,一次计算捕捉所有关联 序列依赖,需逐步传递信息
并行性 完全并行,训练效率高 串行计算,效率低
长程依赖 无损失,缩放点积直接建模 易梯度消失,需门控机制缓解
计算复杂度 \(O(n^2 d)\)(n为序列长度) \(O(n d^2)\)
适用场景 长序列、大模型、生成/理解任务 短序列、实时处理、时序预测

💡 考点:Transformer的并行性和全局依赖建模是其核心优势;计算复杂度随序列长度平方增长,是长序列任务的主要瓶颈。


二、基于Transformer的大模型
#

📌 核心趋势:预训练+微调(Pre-train + Fine-tune),从单任务模型到通用大模型
#

2.1 语言大模型
#

2.1.1 GPT系列(生成式预训练)
#

  • 核心定位:基于Transformer解码器,专注生成任务(文本续写、翻译、对话)。

  • GPT-1结构

    • 预训练:无监督语言建模(LM),最大化序列续写概率: $$L_1(u) = \sum_i log P(u_i | u_{i-k},...,u_{i-1};\theta)$$
    • 微调:有监督任务(分类、翻译),损失函数结合LM损失: $$L_3(C) = L_2(C) + \lambda L_1(C)$$
    • 数据:BooksCorpus(7000本书,8亿词)。
  • GPT-2改进

    • 更大参数量(1.17亿→15.42亿),更大数据集(40GB Reddit数据)。
    • 零样本学习(Zero-shot):无需微调,通过自然语言提示(Prompt)直接处理任务。
  • GPT-3改进

    • 参数量达1750亿,数据集45TB。
    • 少样本学习(Few-shot/One-shot):通过少量示例完成任务,无需参数更新。
  • InstructGPT/GPT-4

    • 人类反馈强化学习(RLHF):对齐人类偏好,减少无效/有害输出。
    • 多模态能力:GPT-4支持文本+图像输入,具备思维链(Chain of Thought)推理能力。

2.1.2 BERT系列(双向编码预训练)
#

  • 核心定位:基于Transformer编码器,专注理解任务(分类、问答、命名实体识别)。

  • 核心创新

    • 双向编码:通过掩码语言模型(MLM)让模型学习上下文依赖。
    • MLM训练:15%的Token被替换为[MASK](80%)、随机词(10%)或原词(10%),预测原词。
    • 下句预测(NSP):判断两个句子是否为连续上下文,捕捉句子级依赖。
  • 结构细节

    • 输入:[CLS](分类标记)+ 句子A + [SEP] + 句子B + [SEP]。
    • 嵌入:词嵌入+段嵌入(区分句子A/B)+ 位置嵌入。
    • 版本:BERT-Base(12层编码器,110M参数)、BERT-Large(24层,340M参数)。
  • 优势:双向上下文建模,在11个NLP任务中刷新SOTA,成为后续理解类模型的基础。

2.1.3 GPT vs BERT 对比
#

对比维度 GPT(解码器) BERT(编码器)
网络结构 Transformer解码器(掩码自注意力) Transformer编码器(无掩码自注意力)
编码方向 单向(从左到右) 双向(上下文同时建模)
核心任务 生成任务(续写、翻译) 理解任务(分类、问答)
预训练目标 语言建模(LM) 掩码语言建模(MLM)+ 下句预测(NSP)
代表能力 零样本生成、思维链推理 上下文理解、细粒度语义分析

2.2 视觉模型
#

2.2.1 ViT(Vision Transformer)
#

  • 核心思想:将图像分割为固定大小的补丁(Patch),视为“图像单词”,直接输入Transformer编码器。
  • 流程:
    1. 图像分块:224×224图像→16×16补丁×196个,展平为768维向量。
    2. 嵌入:补丁向量+位置编码→输入序列。
    3. 编码:Transformer编码器→全局特征,[CLS]标记输出用于分类。
  • 关键结论:当预训练数据足够大(如JFT-300M),ViT性能超越CNN(如ResNet),证明Transformer可迁移至视觉任务。

2.2.2 Swin Transformer
#

  • 核心改进:引入CNN的局部性归纳偏置,解决ViT计算复杂度高的问题。
  • 创新点:
    • 窗口注意力(Window Attention):在局部窗口内计算注意力,复杂度降至\(O(n d^2)\)。
    • 移位窗口(Shifted Window):相邻层窗口移位,捕捉跨窗口依赖。
    • 层次化结构:特征图尺寸逐步缩小(4倍→8倍→16倍),适配检测/分割任务。
  • 性能:在COCO检测(61.3 mAP)、ADE20K分割(57.0 mIoU)中超越CNN模型。

2.2.3 DETR(Detection Transformer)
#

  • 核心思想:端到端目标检测,用Transformer解码器直接生成目标框。
  • 流程:
    1. CNN提取图像特征→添加位置编码。
    2. 解码器生成N个目标框预测(N=100)。
    3. 匈牙利算法匹配预测框与真实框,计算损失。
  • 优势:无需锚点设计,简化检测流程,性能与Faster R-CNN相当。

2.3 通用大模型与多模态学习
#

2.3.1 通用大模型的核心属性
#

  • 多模态性:支持文本、图像、语音、3D信号等多类型数据。
  • 可表征性:统一语义空间,跨模态信息对齐。
  • 可扩展性:模型规模(参数量)与性能正相关(Scaling Law)。
  • 可组合性:支持任务组合与复杂推理。

2.3.2 多模态模型案例
#

  • ViLT(Vision-Language Transformer)

    • 输入:文本嵌入+图像补丁嵌入,共享Transformer编码器。
    • 预训练目标:图像-文本匹配(ITM)、掩码语言建模(MLM)。
    • 优势:结构简洁,推理速度快,适配图文检索、视觉问答任务。
  • GPT-4

    • 多模态输入:文本+图像,输出文本。
    • 涌现能力(Emergent Abilities):未专门训练的任务(如图表推理)可泛化。
    • 思维链:将复杂问题分解为中间步骤,提升推理准确率。
  • ChatGPT

    • 基于GPT-3.5微调,专注对话任务。
    • 优势:连续对话、上下文理解、回复质量高;局限:可能生成虚假信息,缺乏实时知识。

2.4 大模型优化方向
#

  • 稀疏注意力:Longformer、BigBird等,通过局部窗口+全局稀疏采样,降低长序列复杂度。
  • 混合专家模型(MoE):将网络分为多个专家模块,每个输入仅激活部分专家,提升效率。
  • 量化与剪枝:降低参数量化精度(如8bit)、剪枝冗余参数,适配端侧部署。
  • 指令微调(Instruction Tuning):用自然语言指令数据集微调,提升零样本任务适应性。

三、RNN补充要点与模型对比
#

3.1 RNN训练算法细节
#

3.1.1 BPTT与RTRL对比(再梳理)
#

算法 计算方式 空间复杂度 适用场景
BPTT 反向模式,沿时间回溯计算梯度 高(需存储所有时刻隐状态) 离线训练、短序列
RTRL 前向模式,同步计算梯度 低(仅存储当前梯度) 在线学习、无限长序列

3.1.2 梯度消失/爆炸解决方案
#

  • 梯度爆炸:权重衰减(L1/L2正则)、梯度截断、Truncated BPTT。
  • 梯度消失:LSTM/GRU门控机制、残差连接、ReLU激活函数。

3.2 LSTM与GRU核心对比
#

对比维度 LSTM GRU
门控数量 3个(遗忘门、输入门、输出门)+ 记忆单元 2个(重置门、更新门)
记忆存储 独立记忆单元(c_t)+ 隐状态(h_t) 隐状态(h_t)兼顾记忆与输出
参数量 少(约为LSTM的2/3)
训练难度 高(参数多) 低(结构简洁)
适用场景 长序列、复杂依赖 中等长度序列、资源受限场景

3.3 四大神经网络架构对比(MLP/CNN/RNN/Transformer)
#

架构 核心假设 核心思想 适用数据 代表任务
MLP 无结构假设 全连接+非线性激活 向量型数据 分类、回归
CNN 局部性+不变性 局部连接+参数共享 网格型数据(图像) 分类、检测、分割
RNN 时序依赖性 循环连接+参数共享 序列型数据(文本、语音) 预测、生成、时序分析
Transformer 全局依赖性 自注意力+并行计算 任意结构数据(文本、图像、多模态) 大模型、生成、理解、跨模态任务

📋 核心总结
#

  1. Transformer核心:自注意力机制实现全局依赖与并行计算,残差连接+层归一化保障深层训练,是大模型的基础架构。
  2. 大模型趋势:预训练+微调→零样本/少样本学习→多模态通用模型,参数量与数据量是性能关键。
  3. 架构选择
    • 图像任务:CNN(轻量化)、ViT/Swin Transformer(大模型)。
    • 文本任务:Transformer(大模型)、RNN(实时处理)。
    • 非结构化数据:GNN。
  4. 关键挑战:Transformer长序列计算复杂度高,大模型参数量大、部署困难,需通过稀疏注意力、量化、剪枝等技术优化。
通过邮件回复
神经网络 - 这篇文章属于一个选集。
§ 5: 本文