深度学习模型指南
深度学习是机器学习的一个子领域,它基于人工神经网络,通过多层结构来学习数据的层次化表示。自2012年AlexNet在ImageNet竞赛中取得突破性成果以来,深度学习在计算机视觉、自然语言处理、语音识别、推荐系统等领域取得了革命性的进展。本指南将系统介绍各类深度学习模型的原理、架构、优缺点及典型应用场景。
深度学习模型指南
目录
- 引言
- 基础神经网络
- 卷积神经网络 (CNN)
- 循环神经网络 (RNN)
- Transformer架构
- 生成对抗网络 (GAN)
- 自编码器 (Autoencoder)
- 注意力机制与变体
- 图神经网络 (GNN)
- 扩散模型
- 模型选择与应用场景
- 总结
引言
深度学习是机器学习的一个子领域,它基于人工神经网络,通过多层结构来学习数据的层次化表示。自2012年AlexNet在ImageNet竞赛中取得突破性成果以来,深度学习在计算机视觉、自然语言处理、语音识别、推荐系统等领域取得了革命性的进展。
本指南将系统介绍各类深度学习模型的原理、架构、优缺点及典型应用场景。
基础神经网络
多层感知机 (MLP)
多层感知机(Multi-Layer Perceptron,MLP)是最基础的深度学习模型,也称为全连接神经网络。
架构原理
- 输入层:接收原始特征数据
- 隐藏层:通过激活函数进行非线性变换
- 输出层:产生最终预测结果
每个神经元通过权重连接到下一层的所有神经元,通过前向传播计算输出,通过反向传播更新权重。
数学表达
对于第 l l l层的神经元 j j j:
z j ( l ) = ∑ i w i j ( l ) ⋅ a i ( l − 1 ) + b j ( l ) z_j^{(l)} = \sum_i w_{ij}^{(l)} \cdot a_i^{(l-1)} + b_j^{(l)} zj(l)=i∑wij(l)⋅ai(l−1)+bj(l)
a j ( l ) = f ( z j ( l ) ) a_j^{(l)} = f(z_j^{(l)}) aj(l)=f(zj(l))
其中:
- w i j ( l ) w_{ij}^{(l)} wij(l) 是第 l l l层的权重
- b j ( l ) b_j^{(l)} bj(l) 是偏置项
- f ( ⋅ ) f(\cdot) f(⋅) 是激活函数
常用激活函数
| 激活函数 | 公式 | 特点 |
|---|---|---|
| Sigmoid | σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ(x)=1+e−x1 | 输出范围(0,1),存在梯度消失问题 |
| Tanh | tanh ( x ) = e x − e − x e x + e − x \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+e−xex−e−x | 输出范围(-1,1),零中心化 |
| ReLU | ReLU ( x ) = max ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x) | 计算简单,缓解梯度消失,存在神经元死亡问题 |
| Leaky ReLU | LeakyReLU ( x ) = max ( α x , x ) \text{LeakyReLU}(x) = \max(\alpha x, x) LeakyReLU(x)=max(αx,x) | 解决ReLU神经元死亡问题 |
| GELU | GELU ( x ) = x ⋅ Φ ( x ) \text{GELU}(x) = x \cdot \Phi(x) GELU(x)=x⋅Φ(x) | Transformer中常用,平滑性好 |
优缺点
优点:
- 结构简单,易于理解和实现
- 理论基础扎实(万能逼近定理)
- 适用于表格数据等结构化数据
缺点:
- 参数量大,容易过拟合
- 无法有效利用空间/时间结构信息
- 对输入数据的尺度敏感
应用场景
- 表格数据分类与回归
- 简单的预测任务
- 作为其他复杂模型的组件
卷积神经网络 (CNN)
卷积神经网络(Convolutional Neural Network)是专门为处理具有网格结构数据(如图像)而设计的深度学习模型。
核心组件
1. 卷积层 (Convolutional Layer)
卷积层通过卷积核(滤波器)在输入上滑动,提取局部特征。
卷积操作:
Output ( i , j ) = ∑ m ∑ n Input ( i + m , j + n ) ⋅ Kernel ( m , n ) \text{Output}(i,j) = \sum_m \sum_n \text{Input}(i+m, j+n) \cdot \text{Kernel}(m, n) Output(i,j)=m∑n∑Input(i+m,j+n)⋅Kernel(m,n)
关键参数:
- Kernel Size:卷积核大小,常用3×3、5×5
- Stride:滑动步长
- Padding:边缘填充方式(valid、same、full)
- Channels:输出通道数(卷积核数量)
2. 池化层 (Pooling Layer)
池化层用于降维和减少参数,保留主要特征。
| 池化类型 | 操作 | 特点 |
|---|---|---|
| Max Pooling | 取局部最大值 | 保留显著特征 |
| Average Pooling | 取局部平均值 | 平滑特征 |
| Global Pooling | 对整个特征图池化 | 输出固定维度 |
3. 全连接层 (Fully Connected Layer)
将提取的特征映射到输出空间,用于分类或回归。
经典CNN架构
LeNet-5 (1998)
- 提出者:Yann LeCun
- 架构:Conv → Pool → Conv → Pool → FC → FC
- 应用:手写数字识别(MNIST)
AlexNet (2012)
- 提出者:Alex Krizhevsky等
- 创新点:
- 使用ReLU激活函数
- Dropout防止过拟合
- 数据增强
- GPU加速训练
- 架构:5个卷积层 + 3个全连接层
VGG (2014)
- 提出者:Visual Geometry Group (Oxford)
- 特点:使用小卷积核(3×3)堆叠,增加网络深度
- VGG16:13个卷积层 + 3个全连接层
- VGG19:16个卷积层 + 3个全连接层
GoogLeNet / Inception (2014)
- 提出者:Google
- 创新点:Inception模块,并行多尺度卷积
- 优势:在增加网络深度的同时控制参数量
ResNet (2015)
- 提出者:何恺明等(Microsoft Research)
- 创新点:残差连接(Residual Connection)
- 核心思想:学习残差函数 F ( x ) = H ( x ) − x F(x) = H(x) - x F(x)=H(x)−x,而非直接学习 H ( x ) H(x) H(x)
- 架构:ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152
残差块:
Output = F ( x ) + x \text{Output} = F(x) + x Output=F(x)+x
EfficientNet (2019)
- 提出者:Google
- 创新点:复合缩放方法,同时优化深度、宽度、分辨率
- 变体:B0-B7,参数量和精度逐步提升
Vision Transformer (ViT) (2020)
- 提出者:Google Research
- 创新点:将Transformer应用于图像,将图像分块作为序列输入
- 特点:在大规模数据上表现优异,计算效率高
CNN的优缺点
优点:
- 参数共享,减少参数量
- 平移不变性
- 层次化特征学习
- 在图像任务上表现卓越
缺点:
- 对旋转、尺度变化敏感
- 需要大量标注数据
- 计算资源需求大
- 感受野受限(可通过空洞卷积缓解)
应用场景
- 计算机视觉:图像分类、目标检测、语义分割、实例分割
- 医学影像:疾病诊断、器官分割
- 自动驾驶:车道检测、障碍物识别
- 视频分析:动作识别、视频分类
循环神经网络 (RNN)
循环神经网络(Recurrent Neural Network)是专门用于处理序列数据的深度学习模型,具有记忆能力。
基础RNN
工作原理
RNN通过隐藏状态传递历史信息:
h t = f ( W h h ⋅ h t − 1 + W x h ⋅ x t + b h ) h_t = f(W_{hh} \cdot h_{t-1} + W_{xh} \cdot x_t + b_h) ht=f(Whh⋅ht−1+Wxh⋅xt+bh)
y t = g ( W h y ⋅ h t + b y ) y_t = g(W_{hy} \cdot h_t + b_y) yt=g(Why⋅ht+by)
其中:
- h t h_t ht 是 t t t时刻的隐藏状态
- x t x_t xt 是 t t t时刻的输入
- y t y_t yt 是 t t t时刻的输出
RNN的变体
| 类型 | 结构 | 适用场景 |
|---|---|---|
| One-to-One | 单输入单输出 | 图像分类 |
| One-to-Many | 单输入多输出 | 图像描述生成 |
| Many-to-One | 多输入单输出 | 情感分析、序列分类 |
| Many-to-Many | 多输入多输出 | 机器翻译、语音识别 |
长短期记忆网络 (LSTM)
LSTM由Hochreiter和Schmidhuber于1997年提出,解决了RNN的梯度消失问题。
架构组件
LSTM包含三个门控机制:
-
遗忘门 (Forget Gate)
f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ft=σ(Wf⋅[ht−1,xt]+bf)
决定丢弃哪些信息
-
输入门 (Input Gate)
i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) it=σ(Wi⋅[ht−1,xt]+bi)
C ~ t = tanh ( W C ⋅ [ h t − 1 , x t ] + b C ) \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) C~t=tanh(WC⋅[ht−1,xt]+bC)
决定更新哪些信息
-
输出门 (Output Gate)
o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) ot=σ(Wo⋅[ht−1,xt]+bo)
决定输出哪些信息
细胞状态更新:
C t = f t ⊙ C t − 1 + i t ⊙ C ~ t C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t Ct=ft⊙Ct−1+it⊙C~t
h t = o t ⊙ tanh ( C t ) h_t = o_t \odot \tanh(C_t) ht=ot⊙tanh(Ct)
门控循环单元 (GRU)
GRU由Cho等人在2014年提出,是LSTM的简化版本。
架构特点
- 重置门 (Reset Gate):控制前一时刻状态的影响
- 更新门 (Update Gate):结合遗忘门和输入门的功能
计算过程:
z t = σ ( W z ⋅ [ h t − 1 , x t ] ) 更新门 z_t = \sigma(W_z \cdot [h_{t-1}, x_t]) \quad \text{更新门} zt=σ(Wz⋅[ht−1,xt])更新门
r t = σ ( W r ⋅ [ h t − 1 , x t ] ) 重置门 r_t = \sigma(W_r \cdot [h_{t-1}, x_t]) \quad \text{重置门} rt=σ(Wr⋅[ht−1,xt])重置门
h ~ t = tanh ( W ⋅ [ r t ⊙ h t − 1 , x t ] ) \tilde{h}_t = \tanh(W \cdot [r_t \odot h_{t-1}, x_t]) h~t=tanh(W⋅[rt⊙ht−1,xt])
h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ~ t h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t ht=(1−zt)⊙ht−1+zt⊙h~t
LSTM vs GRU:
| 特性 | LSTM | GRU |
|---|---|---|
| 参数量 | 更多 | 更少 |
| 训练速度 | 较慢 | 较快 |
| 表达能力 | 更强 | 略弱 |
| 适用场景 | 长序列 | 中短序列 |
双向RNN (Bi-RNN)
双向RNN同时从前向和后向处理序列:
h t = [ h → t , h ← t ] h_t = [\overrightarrow{h}_t, \overleftarrow{h}_t] ht=[ht,ht]
适用于需要上下文信息的任务,如命名实体识别。
RNN的优缺点
优点:
- 天然处理序列数据
- 具有记忆能力
- 可变长度输入输出
缺点:
- 训练速度慢(无法并行)
- 长距离依赖问题(LSTM/GRU缓解但未完全解决)
- 梯度消失/爆炸
应用场景
- 自然语言处理:文本分类、情感分析、命名实体识别
- 语音处理:语音识别、语音合成
- 时间序列预测:股票预测、天气预报
- 机器翻译(已被Transformer取代)
Transformer架构
Transformer由Vaswani等人在2017年提出,完全基于注意力机制,彻底改变了自然语言处理领域。
核心创新
- 自注意力机制:捕获序列中任意位置之间的依赖关系
- 并行计算:突破RNN的序列限制,大幅提升训练速度
- 位置编码:注入序列位置信息
自注意力机制
缩放点积注意力
Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V Attention(Q,K,V)=softmax(dkQKT)V
其中:
- Q Q Q (Query):查询矩阵
- K K K (Key):键矩阵
- V V V (Value):值矩阵
- d k d_k dk:键的维度
多头注意力
将注意力机制分成多个头,捕获不同类型的依赖关系:
MultiHead ( Q , K , V ) = Concat ( head 1 , … , head h ) W O \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) W^O MultiHead(Q,K,V)=Concat(head1,…,headh)WO
head i = Attention ( Q W i Q , K W i K , V W i V ) \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) headi=Attention(QWiQ,KWiK,VWiV)
Transformer架构
编码器-解码器结构
编码器:
- N层堆叠
- 每层包含:多头自注意力 + 前馈神经网络
- 层归一化 + 残差连接
解码器:
- N层堆叠
- 每层包含:掩码多头自注意力 + 编码器-解码器注意力 + 前馈神经网络
- 层归一化 + 残差连接
位置编码
由于Transformer没有循环结构,需要显式编码位置信息:
PE ( p o s , 2 i ) = sin ( p o s 10000 2 i / d model ) \text{PE}_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) PE(pos,2i)=sin(100002i/dmodelpos)
PE ( p o s , 2 i + 1 ) = cos ( p o s 10000 2 i / d model ) \text{PE}_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) PE(pos,2i+1)=cos(100002i/dmodelpos)
Transformer变体
BERT (Bidirectional Encoder Representations from Transformers)
- 提出者:Google (2018)
- 架构:仅使用Transformer编码器
- 预训练任务:
- 掩码语言模型(MLM)
- 下一句预测(NSP)
- 特点:双向上下文理解
- 变体:BERT-Base、BERT-Large、RoBERTa、ALBERT
GPT (Generative Pre-trained Transformer)
- 提出者:OpenAI
- 架构:仅使用Transformer解码器
- 特点:自回归生成,单向注意力
- 版本演进:
- GPT (2018):1.17亿参数
- GPT-2 (2019):15亿参数
- GPT-3 (2020):1750亿参数
- GPT-4 (2023):参数量未公开
T5 (Text-to-Text Transfer Transformer)
- 提出者:Google (2019)
- 特点:将所有任务统一为文本到文本格式
- 预训练任务:去噪自编码(Span Corruption)
ViT (Vision Transformer)
- 提出者:Google (2020)
- 特点:将图像分块作为序列输入
- 创新:证明了Transformer在视觉任务上的有效性
Swin Transformer
- 提出者:微软 (2021)
- 特点:引入滑动窗口机制,降低计算复杂度
- 优势:适合处理高分辨率图像
Transformer的优缺点
优点:
- 并行计算,训练效率高
- 长距离依赖建模能力强
- 通用性强,适用于多种模态
- 可扩展性好(大规模预训练)
缺点:
- 计算复杂度为O(n²),对长序列不友好
- 需要大量预训练数据
- 参数量大,推理成本高
- 缺乏归纳偏置(相比CNN)
应用场景
- 自然语言处理:文本生成、机器翻译、问答系统、文本摘要
- 计算机视觉:图像分类、目标检测、图像生成
- 多模态:图文匹配、视觉问答、图像描述生成
- 代码生成:代码补全、代码翻译
生成对抗网络 (GAN)
生成对抗网络由Ian Goodfellow在2014年提出,通过两个神经网络的对抗训练来生成逼真的数据。
基本原理
GAN包含两个网络:
- 生成器 (Generator, G):生成假数据
- 判别器 (Discriminator, D):判断数据真假
训练目标:
min G max D V ( D , G ) = E x [ log D ( x ) ] + E z [ log ( 1 − D ( G ( z ) ) ) ] \min_G \max_D V(D, G) = \mathbb{E}_x[\log D(x)] + \mathbb{E}_z[\log(1 - D(G(z)))] GminDmaxV(D,G)=Ex[logD(x)]+Ez[log(1−D(G(z)))]
其中:
- x x x:真实数据
- z z z:随机噪声
- D ( x ) D(x) D(x):判别器对真实数据的判别概率
- D ( G ( z ) ) D(G(z)) D(G(z)):判别器对生成数据的判别概率
经典GAN变体
DCGAN (Deep Convolutional GAN)
- 提出者:Radford等 (2015)
- 创新点:将CNN引入GAN,使用卷积层和反卷积层
- 架构特点:
- 使用Batch Normalization
- 使用ReLU/Leaky ReLU
- 去除全连接层
WGAN (Wasserstein GAN)
- 提出者:Arjovsky等 (2017)
- 创新点:使用Wasserstein距离代替JS散度
- 优势:训练更稳定,解决模式崩溃问题
CycleGAN
- 提出者:Zhu等 (2017)
- 特点:实现无配对数据的图像风格转换
- 核心思想:循环一致性约束
StyleGAN
- 提出者:Karras等 (NVIDIA)
- 版本:StyleGAN (2018), StyleGAN2 (2019), StyleGAN3 (2021)
- 创新点:样式注入机制,解耦内容和样式
- 应用:高保真人脸生成
BigGAN
- 提出者:Brock等 (2018)
- 特点:大规模训练,生成高质量图像
- 技术:谱归一化、类条件生成
GAN的优缺点
优点:
- 生成的样本质量高
- 无需显式似然函数
- 理论框架优雅
缺点:
- 训练不稳定,难以收敛
- 模式崩溃(Mode Collapse)
- 难以评估生成质量
- 需要平衡生成器和判别器
应用场景
- 图像生成:人脸生成、艺术创作
- 图像编辑:风格迁移、图像修复、超分辨率
- 数据增强:生成合成数据扩充训练集
- 3D生成:点云生成、3D模型生成
自编码器 (Autoencoder)
自编码器是一种无监督学习模型,通过学习数据的压缩表示来重建输入。
基本架构
输入 → 编码器 → 潜在表示 → 解码器 → 重建输出
训练目标: 最小化重建误差
L = ∥ x − x ^ ∥ 2 \mathcal{L} = \|x - \hat{x}\|^2 L=∥x−x^∥2
自编码器变体
稀疏自编码器
- 约束:在潜在表示上添加稀疏性约束
- 方法:L1正则化、KL散度约束
- 目的:学习更有意义的特征
去噪自编码器 (Denoising Autoencoder)
- 提出者:Vincent等 (2008)
- 方法:输入添加噪声,训练重建原始数据
- 优势:学习更鲁棒的特征
变分自编码器 (VAE)
- 提出者:Kingma & Welling (2013)
- 核心思想:将潜在表示建模为概率分布
- 损失函数:重建损失 + KL散度
L = E q [ log p ( x ∣ z ) ] − KL ( q ( z ∣ x ) ∥ p ( z ) ) \mathcal{L} = \mathbb{E}_q[\log p(x|z)] - \text{KL}(q(z|x) \| p(z)) L=Eq[logp(x∣z)]−KL(q(z∣x)∥p(z))
- 优势:可生成新样本,潜在空间连续
β-VAE
- 提出者:Higgins等 (2017)
- 创新点:引入β参数控制KL散度权重
- 目的:增强潜在空间的解耦性
VQ-VAE (Vector Quantized VAE)
- 提出者:Oord等 (2017)
- 创新点:使用向量量化将连续表示离散化
- 应用:图像生成、语音合成
自编码器的优缺点
优点:
- 无监督学习,不需要标注数据
- 学习数据的压缩表示
- 可用于降维和特征学习
- VAE可生成新样本
缺点:
- 重建质量有限(相比GAN)
- 潜在空间可能不连续(普通自编码器)
- 训练可能不稳定
应用场景
- 数据降维:高维数据压缩
- 异常检测:重建误差大的样本视为异常
- 图像去噪:去除图像噪声
- 图像生成:VAE生成新图像
- 特征学习:预训练特征提取器
注意力机制与变体
注意力机制是深度学习中的重要概念,允许模型动态关注输入的不同部分。
基础注意力机制
Soft Attention
通过加权求和聚合信息:
attention = softmax ( f ( query , key ) ) \text{attention} = \text{softmax}(f(\text{query}, \text{key})) attention=softmax(f(query,key))
output = ∑ i attention i ⋅ value i \text{output} = \sum_i \text{attention}_i \cdot \text{value}_i output=i∑attentioni⋅valuei
Hard Attention
选择性地关注部分信息(不可微,需要强化学习)
注意力机制类型
1. 加性注意力 (Additive Attention)
- 提出者:Bahdanau等 (2014)
- 公式:
score ( h t , h s ) = v T tanh ( W h h t + W s h s ) \text{score}(h_t, h_s) = v^T \tanh(W_h h_t + W_s h_s) score(ht,hs)=vTtanh(Whht+Wshs)
2. 点积注意力 (Dot-Product Attention)
- 提出者:Luong等 (2015)
- 公式:
score ( h t , h s ) = h t T h s \text{score}(h_t, h_s) = h_t^T h_s score(ht,hs)=htThs
3. 缩放点积注意力 (Scaled Dot-Product Attention)
- 提出者:Vaswani等 (2017, Transformer)
- 公式:
score ( Q , K ) = Q K T d k \text{score}(Q, K) = \frac{QK^T}{\sqrt{d_k}} score(Q,K)=dkQKT
注意力机制变体
1. 自注意力 (Self-Attention)
Query、Key、Value都来自同一输入序列
2. 交叉注意力 (Cross-Attention)
Query来自一个序列,Key和Value来自另一个序列
3. 局部注意力 (Local Attention)
只关注局部窗口内的信息,降低计算复杂度
4. 稀疏注意力 (Sparse Attention)
只计算部分位置的注意力,如Longformer、BigBird
5. 线性注意力 (Linear Attention)
将注意力复杂度从O(n²)降低到O(n)
应用场景
- 机器翻译:对齐源语言和目标语言
- 图像描述:关注图像的特定区域
- 视觉问答:关注与问题相关的图像区域
- 推荐系统:动态关注用户历史的不同部分
图神经网络 (GNN)
图神经网络是专门用于处理图结构数据的深度学习模型。
基本概念
- 图表示:G = (V, E),V是节点集合,E是边集合
- 节点特征:每个节点的特征向量
- 边特征:每条边的特征(可选)
GNN基础架构
消息传递 (Message Passing)
GNN通过消息传递机制聚合邻居信息:
h v ( k ) = UPDATE ( h v ( k − 1 ) , AGGREGATE ( { h u ( k − 1 ) : u ∈ N ( v ) } ) ) h_v^{(k)} = \text{UPDATE}\left(h_v^{(k-1)}, \text{AGGREGATE}\left(\{h_u^{(k-1)} : u \in \mathcal{N}(v)\}\right)\right) hv(k)=UPDATE(hv(k−1),AGGREGATE({hu(k−1):u∈N(v)}))
经典GNN模型
GCN (Graph Convolutional Network)
- 提出者:Kipf & Welling (2017)
- 公式:
H ( l + 1 ) = σ ( D ~ − 1 / 2 A ~ D ~ − 1 / 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma(\tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} H^{(l)} W^{(l)}) H(l+1)=σ(D~−1/2A~D~−1/2H(l)W(l))
- 特点:基于谱图理论的简化版本
GraphSAGE
- 提出者:Hamilton等 (2017)
- 创新点:采样邻居节点,支持归纳学习
- 聚合函数:Mean、Max、Pool、LSTM
GAT (Graph Attention Network)
- 提出者:Veličković等 (2018)
- 创新点:引入注意力机制
- 公式:
α i j = softmax j ( LeakyReLU ( a T [ W h i ∥ W h j ] ) ) \alpha_{ij} = \text{softmax}_j(\text{LeakyReLU}(a^T [Wh_i \| Wh_j])) αij=softmaxj(LeakyReLU(aT[Whi∥Whj]))
Graph Neural Network (GNN)
- 提出者:Scarselli等 (2009)
- 特点:最早的GNN模型,基于Almeida-Pineda算法
Graph Isomorphism Network (GIN)
- 提出者:Xu等 (2019)
- 特点:理论上最强的表示能力(与WL测试同构)
- 公式:
h v ( k ) = MLP ( ( 1 + ε ( k ) ) h v ( k − 1 ) + ∑ u ∈ N ( v ) h u ( k − 1 ) ) h_v^{(k)} = \text{MLP}\left((1 + \varepsilon^{(k)}) h_v^{(k-1)} + \sum_{u \in \mathcal{N}(v)} h_u^{(k-1)}\right) hv(k)=MLP (1+ε(k))hv(k−1)+u∈N(v)∑hu(k−1)
GNN的优缺点
优点:
- 天然处理图结构数据
- 可变输入大小
- 捕获节点间的关系
- 归纳学习能力
缺点:
- 过度平滑(Over-smoothing):深层网络节点表示趋同
- 过度挤压(Over-squashing):长距离信息传递困难
- 计算复杂度高(对于大图)
应用场景
- 社交网络分析:社区发现、链接预测
- 推荐系统:用户-物品二部图
- 分子化学:分子性质预测、药物发现
- 知识图谱:实体分类、关系抽取
- 交通预测:路网流量预测
扩散模型
扩散模型是近年来兴起的生成模型,在图像生成领域取得了突破性进展。
基本原理
扩散模型通过两个过程建模:
- 前向扩散过程:逐步向数据添加噪声,直到变为纯噪声
- 反向去噪过程:学习从噪声中逐步恢复原始数据
前向过程
q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t} x_{t-1}, \beta_t I) q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)
反向过程
p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))
经典扩散模型
DDPM (Denoising Diffusion Probabilistic Models)
- 提出者:Ho等 (2020)
- 创新点:简化训练目标,直接预测噪声
- 损失函数:
L = E ε , x 0 , t [ ∥ ε − ε θ ( x t , t ) ∥ 2 ] \mathcal{L} = \mathbb{E}_{\varepsilon,x_0,t}\left[\|\varepsilon - \varepsilon_\theta(x_t, t)\|^2\right] L=Eε,x0,t[∥ε−εθ(xt,t)∥2]
DDIM (Denoising Diffusion Implicit Models)
- 提出者:Song等 (2020)
- 创新点:非马尔可夫采样过程,加速推理
- 优势:采样步数大幅减少
Stable Diffusion
- 提出者:CompVis (2022)
- 创新点:在潜在空间进行扩散
- 架构:VAE + U-Net + 文本编码器
- 优势:计算效率高,支持文本到图像生成
DALL-E 2
- 提出者:OpenAI (2022)
- 创新点:结合CLIP和扩散模型
- 能力:高质量文本到图像生成
Imagen
- 提出者:Google (2022)
- 特点:使用大型语言模型作为文本编码器
- 优势:高保真度、文本-图像对齐好
扩散模型的优缺点
优点:
- 生成质量高,细节丰富
- 训练稳定
- 理论基础扎实
- 可控性强(通过条件引导)
缺点:
- 推理速度慢(需要多步采样)
- 计算资源需求大
- 模型参数量大
应用场景
- 图像生成:文本到图像、图像到图像
- 图像编辑:图像修复、风格迁移、图像补全
- 视频生成:文本到视频
- 3D生成:点云生成、3D模型生成
- 音频生成:语音合成、音乐生成
模型选择与应用场景
按任务类型选择
| 任务类型 | 推荐模型 | 说明 |
|---|---|---|
| 图像分类 | ResNet, EfficientNet, ViT | CNN适合中小规模数据,ViT适合大规模数据 |
| 目标检测 | Faster R-CNN, YOLO, DETR | 两阶段vs单阶段,Transformer方法兴起 |
| 语义分割 | U-Net, DeepLab, Mask R-CNN | 医学图像常用U-Net |
| 文本分类 | BERT, RoBERTa | 预训练+微调范式 |
| 文本生成 | GPT系列, T5 | 自回归vs编码器-解码器 |
| 机器翻译 | Transformer, T5 | 现代系统普遍使用Transformer |
| 语音识别 | Conformer, Wav2Vec 2.0 | 结合CNN和Transformer |
| 图像生成 | Stable Diffusion, StyleGAN | 扩散模型质量更高,GAN速度更快 |
| 时序预测 | LSTM, GRU, Temporal Fusion Transformer | 根据序列长度选择 |
| 图数据 | GCN, GAT, GraphSAGE | 根据图大小和任务选择 |
| 异常检测 | Autoencoder, VAE | 无监督方法 |
按数据规模选择
| 数据规模 | 推荐策略 | 模型选择 |
|---|---|---|
| 小规模 (<1K) | 迁移学习 | 预训练模型微调 |
| 中规模 (1K-100K) | 从头训练 | ResNet-50, BERT-Base |
| 大规模 (100K-10M) | 大模型 | EfficientNet, BERT-Large |
| 超大规模 (>10M) | 自监督预训练 | GPT-3, CLIP, MAE |
按计算资源选择
| 资源水平 | 推荐模型 | 说明 |
|---|---|---|
| 低资源 | MobileNet, DistilBERT | 轻量化模型 |
| 中等资源 | ResNet-50, BERT-Base | 标准模型 |
| 高资源 | EfficientNet-B7, GPT-3 | 大规模模型 |
| 分布式 | Megatron-LM, Switch Transformer | 分布式训练框架 |
模型压缩技术
当计算资源受限时,可考虑以下技术:
- 知识蒸馏:大模型教小模型
- 模型剪枝:移除不重要的参数
- 量化:降低参数精度(FP32 → INT8)
- 低秩分解:分解大矩阵为小矩阵
- 神经架构搜索:自动搜索高效架构
总结
深度学习领域发展迅速,各类模型不断涌现。以下是关键要点:
发展趋势
- 预训练+微调范式:从CNN到Transformer,大规模预训练成为主流
- 多模态融合:CLIP、DALL-E等模型实现跨模态理解
- 效率优化:模型压缩、高效注意力机制
- 可解释性:注意力可视化、概念激活向量
- 自监督学习:减少对标注数据的依赖
选择建议
- 从简单开始:先用简单模型建立baseline
- 利用预训练模型:优先使用成熟的开源预训练模型
- 考虑数据特点:根据数据类型(图像、文本、图)选择模型
- 平衡精度与效率:根据应用场景选择合适的模型规模
- 持续关注前沿:深度学习发展迅速,及时跟进最新进展
更多推荐


所有评论(0)