📚 神经网络方法与应用(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.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)计算全局依赖。
-
计算过程:
- 线性变换:输入矩阵\(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维度)。
- 缩放点积:计算Q与K的相似度,除以\(\sqrt{d_k}\)缓解高维方差问题: $$Attention(Q,K,V) = softmax\left( \frac{Q K^T}{\sqrt{d_k}} \right) V$$
- 输出:每个位置的向量是V的加权和,权重为softmax归一化后的相似度。
- 线性变换:输入矩阵\(X \in \mathbb{R}^{n×d}\)通过权重矩阵生成Q、K、V:
$$Q = X W^Q, \quad K = X W^K, \quad V = X W^V$$
-
优势:
- 全局依赖:一次计算捕捉所有位置关联,无长程依赖损失。
- 并行计算:所有位置的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)解码器模块(单层) #
- 结构:
- 掩码多头自注意力(屏蔽未来)→ 残差连接+层归一化。
- 多头注意力(Q来自解码器上一层,K/V来自编码器输出)→ 残差连接+层归一化。
- 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编码器。
- 流程:
- 图像分块:224×224图像→16×16补丁×196个,展平为768维向量。
- 嵌入:补丁向量+位置编码→输入序列。
- 编码: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解码器直接生成目标框。
- 流程:
- CNN提取图像特征→添加位置编码。
- 解码器生成N个目标框预测(N=100)。
- 匈牙利算法匹配预测框与真实框,计算损失。
- 优势:无需锚点设计,简化检测流程,性能与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 | 全局依赖性 | 自注意力+并行计算 | 任意结构数据(文本、图像、多模态) | 大模型、生成、理解、跨模态任务 |
📋 核心总结 #
- Transformer核心:自注意力机制实现全局依赖与并行计算,残差连接+层归一化保障深层训练,是大模型的基础架构。
- 大模型趋势:预训练+微调→零样本/少样本学习→多模态通用模型,参数量与数据量是性能关键。
- 架构选择:
- 图像任务:CNN(轻量化)、ViT/Swin Transformer(大模型)。
- 文本任务:Transformer(大模型)、RNN(实时处理)。
- 非结构化数据:GNN。
- 关键挑战:Transformer长序列计算复杂度高,大模型参数量大、部署困难,需通过稀疏注意力、量化、剪枝等技术优化。