深度学习革命¶
CNN、RNN、Transformer等深度学习架构的原理与应用。
什么是深度学习¶
**深度学习(Deep Learning)**是机器学习的子集,使用多层神经网络从数据中学习复杂的模式和表示。
深度学习 vs 传统机器学习¶
| 特点 | 传统机器学习 | 深度学习 |
|---|---|---|
| 特征提取 | 人工设计 | 自动学习 |
| 数据需求 | 较少 | 大量 |
| 计算需求 | 较低 | 高(需要GPU) |
| 模型复杂度 | 较简单 | 复杂(多层) |
| 适用数据 | 结构化数据 | 图像、文本、语音等非结构化数据 |
| 可解释性 | 较强 | 较弱(黑盒) |
为什么叫"深度"学习¶
"深度"指的是神经网络的**层数**:
传统神经网络:2-3层 深度学习网络:几十到几百层
神经网络基础¶
神经元¶
神经网络的基本单元,模拟生物神经元:
数学表示:
- w:权重(可学习参数)
- b:偏置
- f:激活函数
激活函数¶
引入非线性,使网络能学习复杂模式:
| 函数 | 公式 | 特点 |
|---|---|---|
| Sigmoid | 1/(1+e⁻ˣ) | 输出0-1,适合二分类 |
| Tanh | (eˣ-e⁻ˣ)/(eˣ+e⁻ˣ) | 输出-1到1,零中心化 |
| ReLU | max(0,x) | 计算简单,缓解梯度消失 |
| Leaky ReLU | max(αx,x) | 解决ReLU死亡问题 |
| Softmax | eˣⁱ/Σeˣʲ | 多分类输出概率 |
前向传播与反向传播¶
前向传播(Forward Propagation): - 输入数据通过网络 - 每层计算输出 - 最终得到预测结果
反向传播(Backpropagation): - 计算损失函数 - 从输出层向输入层传播梯度 - 更新权重以减小损失
卷积神经网络(CNN)¶
为什么需要CNN¶
传统全连接网络处理图像的问题: - 参数量巨大(1000×1000图像有百万参数) - 丢失空间信息 - 计算效率低
CNN解决方案: - 局部连接(卷积核) - 权重共享 - 空间层次特征
卷积层¶
卷积操作:用卷积核在图像上滑动,提取局部特征。
关键参数: - 卷积核大小:3×3, 5×5, 7×7 - 步幅(Stride):卷积核移动距离 - 填充(Padding):边缘补零
池化层¶
作用: - 降低特征图尺寸 - 减少计算量 - 提供平移不变性
类型: - 最大池化:取窗口内最大值 - 平均池化:取窗口内平均值
经典CNN架构¶
| 网络 | 年份 | 特点 | 贡献 |
|---|---|---|---|
| LeNet | 1998 | 5层,手写数字识别 | CNN奠基之作 |
| AlexNet | 2012 | 8层,ReLU+Dropout | 深度学习爆发起点 |
| VGGNet | 2014 | 16-19层,3×3卷积 | 证明深度的重要性 |
| ResNet | 2015 | 152+层,残差连接 | 突破深度限制 |
| EfficientNet | 2019 | 复合缩放 | 效率与精度平衡 |
ResNet:残差网络¶
问题:深层网络训练困难(梯度消失/爆炸)
解决方案:残差连接(Skip Connection)
核心思想:学习残差(输入与输出的差),而非直接学习映射。
影响:ResNet使训练100+层网络成为可能。
循环神经网络(RNN)¶
为什么需要RNN¶
传统神经网络假设输入相互独立,无法处理序列数据。
RNN特点: - 具有"记忆"能力 - 能处理变长序列 - 参数共享
RNN结构¶
隐藏状态:hₜ = f(Wₕₕhₜ₋₁ + Wₓₕxₜ + b)
RNN变体¶
| 变体 | 特点 | 解决问题 |
|---|---|---|
| LSTM | 长短期记忆网络 | 长期依赖 |
| GRU | 门控循环单元 | 简化LSTM |
| 双向RNN | 同时看前后文 | 上下文理解 |
LSTM:长短期记忆¶
核心组件: - 遗忘门:决定丢弃什么信息 - 输入门:决定存储什么新信息 - 输出门:决定输出什么
应用: - 机器翻译 - 文本生成 - 语音识别 - 时间序列预测
Transformer:注意力机制革命¶
为什么Transformer取代RNN¶
RNN的局限: - 顺序计算,难以并行 - 长距离依赖困难 - 梯度传播问题
Transformer优势: - 完全并行计算 - 直接建模长距离依赖 - 更好的表示能力
注意力机制¶
核心思想:让模型关注输入中重要的部分。
Self-Attention(自注意力):
计算过程: 1. 将输入转换为Q、K、V三个向量 2. 计算Q与K的相似度(点积) 3. 归一化得到注意力权重 4. 加权求和V得到输出
多头注意力: - 使用多组Q、K、V - 捕捉不同子空间的信息 - 拼接后线性变换
Transformer架构¶
编码器(Encoder):
解码器(Decoder):
关键组件: - 位置编码:给模型位置信息(正弦/可学习) - 层归一化:稳定训练 - 残差连接:帮助梯度传播
Transformer的影响¶
BERT(Google): - 双向编码器 - 预训练+微调范式 - 刷新NLP任务SOTA
GPT系列(OpenAI): - 单向生成式模型 - 参数量不断增大 - 涌现强大能力
Vision Transformer: - 将图像分块作为序列 - CNN替代方案 - 在大数据上表现优异
生成对抗网络(GAN)¶
核心思想¶
通过生成器和判别器的对抗训练,学习数据分布。
训练过程¶
判别器训练: - 真样本标签为1 - 假样本标签为0 - 最大化区分能力
生成器训练: - 生成假样本 - 骗过判别器(标签设为1) - 最大化欺骗能力
经典GAN变体¶
| 变体 | 特点 | 应用 |
|---|---|---|
| DCGAN | 深度卷积GAN | 高质量图像生成 |
| CGAN | 条件GAN | 可控生成 |
| CycleGAN | 循环一致性 | 风格迁移 |
| StyleGAN | 分层风格控制 | 人脸生成 |
| BigGAN | 大规模训练 | 高分辨率图像 |
应用¶
- 图像生成:人脸、风景、艺术作品
- 图像编辑:超分辨率、去噪、修复
- 风格迁移:照片转油画、季节变换
- 数据增强:生成训练数据
深度学习的挑战¶
计算资源¶
问题:训练大模型需要大量GPU和时间。
解决方案: - 分布式训练 - 模型压缩 - 迁移学习 - 云计算平台
数据需求¶
问题:深度学习需要大量标注数据。
解决方案: - 预训练+微调 - 半监督学习 - 主动学习 - 合成数据
可解释性¶
问题:深度学习模型是"黑盒"。
研究方向: - 注意力可视化 - 梯度类激活图(Grad-CAM) - 特征归因 - 概念激活向量(CAV)
泛化能力¶
问题:模型在训练数据上表现好,但泛化能力差。
解决方案: - 正则化 - Dropout - 数据增强 - 早停
深度学习框架¶
| 框架 | 特点 | 适用场景 |
|---|---|---|
| TensorFlow | Google出品,生态完善 | 生产部署 |
| PyTorch | 动态图,易调试 | 研究实验 |
| JAX | Google新框架,函数式 | 前沿研究 |
| PaddlePaddle | 百度出品,中文支持好 | 国产化替代 |
| Keras | 高层API,易上手 | 快速原型 |
小结¶
深度学习是AI的核心技术,通过多层神经网络学习数据的层次化表示。
关键发展: - CNN → 计算机视觉 - RNN/LSTM → 序列建模 - Transformer → 现代NLP基础 - GAN → 生成模型
学习建议: 1. 理解神经网络基础 2. 掌握一种深度学习框架 3. 复现经典论文 4. 参加Kaggle竞赛
延伸阅读: