🔮 深度学习
神经网络架构、训练方法与核心应用领域
什么是深度学习?
深度学习(Deep Learning)是机器学习的一个分支,核心思想是使用多层神经网络从数据中自动学习特征和规律。与传统机器学习需要人工设计特征不同,深度学习能直接从原始数据(像素、文本、音频)中端到端地学习。
💡 深度学习 vs 传统机器学习
传统 ML:人工特征提取 → 模型学习(如 SVM、随机森林);深度学习:原始数据 → 多层网络自动提取特征 → 输出。数据量越大、模型越深,深度学习优势越明显。
神经网络基础
神经元与感知机
神经网络的基本单元是神经元(Neuron),模拟生物神经元的工作方式:接收多个输入,加权求和后通过激活函数产生输出。
# 单个神经元的计算
output = activation(Σ(wi × xi) + b)
# wi: 权重(可学习参数)
# xi: 输入
# b: 偏置(可学习参数)
# activation: 激活函数(引入非线性)
激活函数
激活函数为网络引入非线性,使其能拟合复杂的函数关系:
- ReLU:f(x) = max(0, x)。最常用,计算快,但存在「死神经元」问题
- GELU:平滑版 ReLU,Transformer 默认使用,训练更稳定
- Sigmoid:f(x) = 1/(1+e⁻ˣ),输出 0-1,常用于二分类输出层
- Softmax:将多维输出转为概率分布,多分类任务的标准选择
- SiLU/Swish:f(x) = x·σ(x),近年流行,性能优于 ReLU
反向传播与梯度下降
神经网络通过反向传播(Backpropagation)算法学习:计算损失函数对每个参数的梯度,然后用梯度下降更新参数。
# 训练循环伪代码
for epoch in range(num_epochs):
for batch in data_loader:
# 前向传播
output = model(batch)
loss = criterion(output, target)
# 反向传播
optimizer.zero_grad() # 清空梯度
loss.backward() # 计算梯度
optimizer.step() # 更新参数
卷积神经网络(CNN)
CNN 是处理图像和视频的核心架构。通过卷积操作自动提取空间特征(边缘、纹理、形状等)。
核心组件
- 卷积层(Conv):用滑动窗口提取局部特征,每个卷积核学习一种特征
- 池化层(Pooling):下采样,减小特征图尺寸,增加平移不变性
- 批归一化(BatchNorm):稳定训练,加速收敛
- 全连接层(FC):最后将特征映射到分类/回归输出
经典 CNN 架构演进
| 模型 | 年份 | 创新点 | 意义 |
|---|---|---|---|
| LeNet-5 | 1998 | 首个成功的 CNN | 手写数字识别 |
| AlexNet | 2012 | ReLU、Dropout、GPU 训练 | 引爆深度学习革命 |
| VGGNet | 2014 | 小卷积核堆叠(3×3) | 证明深度的重要性 |
| ResNet | 2015 | 残差连接(Skip Connection) | 解决梯度消失,训练极深网络 |
| EfficientNet | 2019 | 复合缩放(深度×宽度×分辨率) | 效率与精度最佳平衡 |
| ConvNeXt | 2022 | 现代化 CNN(借鉴 Transformer 设计) | CNN 仍可匹敌 Transformer |
PyTorch 实现示例
import torch
import torch.nn as nn
class SimpleCNN(nn.Module):
def __init__(self, num_classes=10):
super().__init__()
self.features = nn.Sequential(
nn.Conv2d(3, 32, 3, padding=1), # 3→32 通道
nn.BatchNorm2d(32),
nn.ReLU(),
nn.MaxPool2d(2), # 32×32 → 16×16
nn.Conv2d(32, 64, 3, padding=1), # 32→64 通道
nn.BatchNorm2d(64),
nn.ReLU(),
nn.MaxPool2d(2), # 16×16 → 8×8
)
self.classifier = nn.Sequential(
nn.Flatten(),
nn.Linear(64 * 8 * 8, 256),
nn.ReLU(),
nn.Dropout(0.5),
nn.Linear(256, num_classes),
)
def forward(self, x):
x = self.features(x)
x = self.classifier(x)
return x
循环神经网络(RNN)
RNN 是处理序列数据(文本、时间序列、语音)的经典架构,具有记忆能力——当前输出依赖于当前输入和之前的隐藏状态。
RNN 的问题与改进
- 梯度消失/爆炸:长序列中梯度难以传递到早期时间步
- LSTM(1997):引入「门控机制」(遗忘门、输入门、输出门),有效解决长距离依赖
- GRU(2014):LSTM 的简化版,参数更少,效果相当
- Bidirectional RNN:同时处理正向和反向序列,捕捉双向上下文
📌 RNN 的现状
在 NLP 领域,RNN/LSTM 已基本被 Transformer 取代(并行性更好、长距离依赖更强)。但在某些时间序列预测和边缘设备部署场景中,LSTM 仍有应用价值。
Transformer 架构
Transformer 是当前深度学习的核心架构,支撑了 GPT、BERT、ViT 等几乎所有 SOTA 模型。完全基于注意力机制,摒弃了 RNN 的序列依赖。
核心创新
- 自注意力(Self-Attention):序列中每个位置都能直接关注任意其他位置,O(1) 路径长度
- 多头注意力(Multi-Head):并行运行多组注意力,从不同子空间捕获信息
- 位置编码(Positional Encoding):注入序列顺序信息(正弦编码、RoPE 等)
- 编码器-解码器结构:Encoder 理解输入,Decoder 生成输出
Transformer 的三大分支
🔵 仅编码器
BERT、RoBERTa。双向理解上下文,适合分类、NER、语义相似度等理解任务。
🟢 仅解码器
GPT、Llama、Qwen。自回归生成,适合文本生成、对话、代码编写等任务。
🟠 编码器+解码器
T5、BART。Seq2Seq 架构,适合翻译、摘要等输入-输出任务。
计算机视觉(CV)
计算机视觉让机器能「看懂」图像和视频,是深度学习最成功的应用领域之一。
核心任务
- 图像分类:判断图像属于哪个类别(ResNet、EfficientNet)
- 目标检测:定位并识别图像中的物体(YOLO、DETR)
- 语义分割:逐像素分类(U-Net、DeepLab)
- 实例分割:区分同类不同个体(Mask R-CNN)
- 图像生成:从噪声或文本生成图像(Diffusion Model、GAN)
Vision Transformer(ViT)
将 Transformer 直接应用于图像:把图像切分为固定大小的 patch(如 16×16),每个 patch 当作一个 token 输入 Transformer。在大数据集上预训练后,ViT 的性能超越 CNN,且扩展性更强。
自然语言处理(NLP)
NLP 让机器能理解和生成人类语言,是大模型(LLM)的直接基础。
NLP 发展脉络
规则方法 → 统计方法 → Word2Vec → ELMo → BERT → GPT → LLM
# 关键里程碑
2013 Word2Vec 词嵌入,开启分布式语义表示
2018 ELMo 上下文相关的词表示
2018 BERT 双向预训练,刷新 11 项 NLP 记录
2018 GPT-1 自回归预训练,展示生成能力
2020 GPT-3 175B 参数,涌现 Few-shot 能力
2022 ChatGPT RLHF 对齐,对话能力爆发
2023 GPT-4 多模态,推理能力大幅提升
词嵌入(Word Embedding)
将离散的词映射为连续的稠密向量,语义相近的词在向量空间中距离更近:
# 经典词向量关系
king - man + woman ≈ queen
paris - france + japan ≈ tokyo
# 常用方法
# Word2Vec(2013):CBOW / Skip-gram
# GloVe(2014):全局共现矩阵分解
# FastText(2016):子词级别嵌入,支持形态学
训练技巧与优化
常用优化器
| 优化器 | 特点 | 适用场景 |
|---|---|---|
| SGD + Momentum | 经典,泛化好,但收敛慢 | CNN 训练 |
| Adam | 自适应学习率,收敛快 | 通用,快速原型 |
| AdamW | Adam + 解耦权重衰减 | Transformer 训练标配 |
| LAMB / LARS | 大 batch 训练优化 | 分布式预训练 |
防止过拟合
- Dropout:训练时随机丢弃神经元(通常 0.1-0.5)
- 数据增强:旋转、翻转、裁剪、Mixup、CutMix
- 权重衰减(Weight Decay):L2 正则化,限制参数大小
- 早停(Early Stopping):验证集性能不再提升时停止
- Label Smoothing:软化标签,防止模型过于自信
学习率调度
# 常用调度策略
Warmup + Cosine Decay # Transformer 标配(先升后降)
Step Decay # 每隔 N 个 epoch 降低学习率
One Cycle Policy # 先升后降,一个周期
ReduceLROnPlateau # 验证集 loss 不降时自动降低
生成模型
扩散模型(Diffusion Model)
当前图像和视频生成的主流架构。核心思想:逐步向数据添加高斯噪声(前向过程),再学习逆转去噪(反向过程)。
- DDPM(2020):去噪扩散概率模型,奠定理论基础
- Stable Diffusion(2022):在潜空间做扩散,大幅降低计算成本
- DALL-E 3(2023):文本到图像生成,理解复杂语义
- Sora(2024):文本到视频生成,生成长达 1 分钟的高质量视频
生成对抗网络(GAN)
由生成器和判别器对抗训练的模型。虽然逐渐被扩散模型取代,但在实时生成和风格迁移中仍有应用:
- StyleGAN:高质量人脸生成
- CycleGAN:无配对图像风格转换
- Pix2Pix:配对图像翻译(如素描→照片)
深度学习框架对比
| 框架 | 开发者 | 特点 | 使用场景 |
|---|---|---|---|
| PyTorch | Meta | 动态图、调试友好、社区活跃 | 研究 + 工业界首选 |
| TensorFlow | 生态完善、部署能力强 | 移动端/边缘部署 | |
| JAX | 函数式、自动微分、XLA 加速 | 大规模训练、科研 | |
| PaddlePaddle | 百度 | 中文文档完善、产业级工具 | 国内企业应用 |
🚀 学习路线建议
先学 PyTorch 基础 → 实现经典 CNN(ResNet)→ 学习 Transformer 架构 → 阅读 BERT/GPT 论文 → 动手微调预训练模型 → 探索 CV/NLP 具体方向。动手实践比看论文更重要——用 Kaggle 竞赛和 Hugging Face 项目练手。