AI 学院 · 90 天课程 · 深度学习进阶

深度学习进阶

CNN/RNN/GAN/扩散模型/多模态/ViT 与训练技巧。共 15 天,每天完整收录:学习目标、核心内容、关键概念、实际案例、思考题等。

范围 Day 41–55天数 15内容 完整课程
本模块:深度学习进阶(Day 41–55)。每天一个主题,完整讲解 + 案例 + 思考题,按顺序学习。
DAY 41 / 90

深度学习框架

学习目标

掌握 PyTorch 和 TensorFlow 的基本使用,理解动态图与静态图的区别。

---

昨日回顾

Day 40:交叉验证与调优

昨天我们学了:

  • K 折交叉验证:更稳定的评估方法
  • 超参数调优:网格搜索、随机搜索、贝叶斯优化
  • 数据泄露的防范

今天进入模块4,深入深度学习的工程实践。

---

核心内容

一、主流框架对比

框架特点适用场景
PyTorch动态图,Pythonic研究、原型
TensorFlow静态图,部署友好生产环境
JAX函数式,自动微分前沿研究

二、PyTorch 基础

import torch
import torch.nn as nn

# 定义模型
class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(784, 256)
        self.fc2 = nn.Linear(256, 10)
    
    def forward(self, x):
        x = torch.relu(self.fc1(x))
        return self.fc2(x)

# 训练
model = Net()
optimizer = torch.optim.Adam(model.parameters())
loss_fn = nn.CrossEntropyLoss()

三、GPU 加速

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)

---

📌 课程进度:Day 41 / 90 | 模块4:深度学习进阶

🎓 明天预告Day 42 卷积神经网络(CNN) —— 图像识别的利器!

---

DAY 42 / 90

卷积神经网络(CNN)

学习目标

理解卷积、池化操作,以及 CNN 如何自动提取图像特征。

---

核心内容

一、为什么需要 CNN?

全连接网络处理图像的问题:

  • 参数量爆炸:1000×1000 图像 → 100 万个输入
  • 没有空间结构:打乱像素顺序不影响结果

二、卷积操作

核心思想:用一个小窗口(卷积核)在图像上滑动,提取局部特征。

卷积核(3×3)
[1 0 -1]
[1 0 -1]
[1 0 -1]  ← 垂直边缘检测

💡 类比:就像用放大镜在图片上扫描,每个位置只看一小块区域。

三、池化(Pooling)

最大池化:取窗口内的最大值,降低分辨率。

作用

  • 减少计算量
  • 提供平移不变性

四、CNN 架构示例

输入图像 → [卷积 → ReLU → 池化] × 3 → 全连接 → 输出

---

📌 课程进度:Day 42 / 90

🎓 明天预告Day 43 CNN架构演进 —— AlexNet到ResNet!

---

DAY 43 / 90

CNN架构演进

学习目标

了解从 AlexNet 到 ResNet 的 CNN 架构演进。

---

核心内容

一、里程碑架构

年份模型核心创新
2012AlexNetReLU + Dropout + GPU
2014VGGNet小卷积核(3×3)堆叠
2015ResNet残差连接,可训练 152 层
2016DenseNet密集连接
2017SENet通道注意力

二、ResNet 的残差连接

问题:深层网络梯度消失,训练困难。

解决:跳过连接(Skip Connection)

output = F(x) + x

💡 效果:可以训练 1000+ 层的网络。

---

📌 课程进度:Day 43 / 90

🎓 明天预告Day 44 RNN与LSTM —— 处理序列数据!

---

DAY 44 / 90

RNN与LSTM

学习目标

理解 RNN 的序列建模能力和 LSTM 解决长程依赖的方法。

---

核心内容

一、RNN 的核心思想

循环:隐藏状态随时间传递,记住之前的信息。

h_t = tanh(W·[h_{t-1}, x_t] + b)

💡 类比:就像一个有记忆的人,每读一个新词,就更新对整句话的理解。

二、LSTM(长短期记忆网络)

核心创新:用"门控"控制信息的流动。

遗忘门:决定忘记多少过去的信息
输入门:决定吸收多少新信息
输出门:决定输出什么

💡 类比:LSTM 就像一个整理衣柜的人——遗忘门决定扔掉什么,输入门决定新增什么。

三、RNN 的局限

  • 串行计算:无法并行,训练慢
  • 长程依赖:即使 LSTM,也很难记住 100 步之前的信息
  • 梯度消失/爆炸

💡 这也是为什么 Transformer 取代了 RNN

---

📌 课程进度:Day 44 / 90

🎓 明天预告Day 45 Seq2Seq与注意力 —— 机器翻译的基石!

---

DAY 45 / 90

Seq2Seq与注意力

学习目标

理解 Seq2Seq 架构和注意力机制在机器翻译中的应用。

---

核心内容

一、Seq2Seq 架构

Encoder(RNN) → 上下文向量 → Decoder(RNN)
  [我 喜欢 猫]        [context]      [I like cats]

问题:上下文向量是固定长度的,信息瓶颈。

二、注意力机制

解决:Decoder 每一步都"看"Encoder 的所有输出,决定关注哪里。

Decoder 第 t 步 → 计算与所有 Encoder 输出的注意力权重
              → 加权求和得到上下文
              → 生成输出

💡 这是 Transformer 注意力的前身

---

📌 课程进度:Day 45 / 90

🎓 明天预告Day 46 生成对抗网络(GAN) —— 伪造大师的诞生!

---

DAY 46 / 90

生成对抗网络(GAN)

学习目标

理解 GAN 的对抗训练原理和典型应用。

---

核心内容

一、GAN 的核心思想

两个网络互相博弈:

  • 生成器(Generator):伪造数据,试图骗过判别器
  • 判别器(Discriminator):鉴别真假,试图不被骗

💡 类比:就像假币制造者和警察的博弈——制造者越做越真,警察越练越精。

二、训练过程

1. 训练判别器:真数据标 1,假数据标 0
2. 训练生成器:生成数据,让判别器判为 1
3. 重复直到平衡

三、典型应用

  • 图像生成:人脸、风景
  • 风格迁移:照片变油画
  • 超分辨率:低清变高清
  • 数据增强:生成训练数据

---

📌 课程进度:Day 46 / 90

🎓 明天预告Day 47 变分自编码器(VAE) —— 可控的生成模型!

---

DAY 47 / 90

变分自编码器(VAE)

学习目标

理解 VAE 的隐空间概念和与 GAN 的区别。

---

核心内容

一、自编码器

输入 → Encoder → 隐向量 → Decoder → 重建输入

目标:学习数据的压缩表示。

二、VAE 的改进

核心创新:隐向量不是确定的,而是服从一个概率分布。

Encoder 输出:均值 μ 和方差 σ
采样:z = μ + σ · ε(ε ~ N(0,1))

损失函数: `` L = 重建损失 + KL散度(让分布接近标准正态) ``

三、VAE vs GAN

特性VAEGAN
训练稳定性稳定较难
生成质量较模糊更锐利
隐空间结构化,可插值难以控制
用途特征学习、可控生成高质量生成

---

📌 课程进度:Day 47 / 90

🎓 明天预告Day 48 扩散模型(Diffusion) —— DALL-E、Stable Diffusion 的底层!

---

DAY 48 / 90

扩散模型(Diffusion)

学习目标

理解扩散模型的原理——从噪声中"雕刻"出图像。

---

核心内容

一、核心思想

前向过程:给图像逐步加噪声,直到变成纯噪声。

反向过程:学习如何从噪声中逐步恢复图像。

💡 类比:就像雕塑家从一块大理石中雕刻出雕像——扩散模型从噪声中"雕刻"出图像。

二、训练与采样

训练: ```

  1. 随机选一张训练图像
  2. 随机选一个时间步 t
  3. 加 t 步噪声得到 x_t
  4. 训练模型预测添加的噪声

**采样(生成)**:
  1. 从纯噪声开始
  2. 迭代去噪(通常 20-1000 步)
  3. 得到生成图像

#### 三、条件生成

通过文本提示引导生成:

"一只宇航员在太空骑马的油画" → Text Encoder → 条件 → 扩散模型 → 图像 ```

代表:Stable Diffusion、DALL-E 3、Midjourney

---

📌 课程进度:Day 48 / 90

🎓 明天预告Day 49 多模态模型 —— 图文音视频统一的 AI!

---

DAY 49 / 90

多模态模型

学习目标

理解多模态 AI 的原理和典型架构。

---

核心内容

一、什么是多模态?

让 AI 同时理解多种信息形式:文本、图像、音频、视频。

二、典型架构

图像/音频/视频 → 编码器 → 统一表示空间
                              ↓
文本 ←→ 解码器 ←→ 联合表示

三、代表模型

模型能力
CLIP图文对齐(OpenAI)
GPT-4V图文理解
Gemini图文音视
LLaVA图文对话(开源)

四、CLIP 的核心思想

对比学习:让配对的图文靠近,不配对的远离。

图像编码器(ViT)     文本编码器(Transformer)
     ↓                      ↓
  图像向量 ←——对比学习——→ 文本向量

---

📌 课程进度:Day 49 / 90

🎓 明天预告Day 50 视觉Transformer(ViT) —— Transformer 进军视觉领域!

---

DAY 50 / 90

视觉Transformer(ViT)

学习目标

理解 ViT 如何将图像当作"词序列"处理。

---

核心内容

一、核心思想

把图像切分成小块(patch),每个 patch 当作一个"词"。

图像(224×224)→ 切分成 16×16 的 patch(共 196 个)
               → 每个 patch 展平 + 线性投影
               → [CLS] token + 位置编码
               → Transformer Encoder

二、ViT vs CNN

特性ViTCNN
归纳偏置少(需更多数据)局部性、平移不变性
全局感受野第一层就有需多层堆叠
数据需求大(ImageNet 不够)较小
可扩展性更好较差

三、混合架构

Swin Transformer:窗口注意力 + 层级结构

  • 解决 ViT 计算量大的问题
  • 结合 CNN 的局部性和 Transformer 的全局性

---

📌 课程进度:Day 50 / 90

🎓 明天预告Day 51 优化器详解 —— Adam、SGD、学习率调度!

---

DAY 51 / 90

优化器详解

学习目标

深入理解各种优化器的原理和适用场景。

---

核心内容

一、优化器演进路线

SGD → Momentum → AdaGrad → RMSprop → Adam → AdamW

二、Adam 的原理

结合 Momentum 和 RMSprop:

  • 一阶矩估计:动量(梯度方向)
  • 二阶矩估计:自适应学习率(梯度大小)
# Adam 参数更新
m = β₁·m + (1-β₁)·g      # 动量
v = β₂·v + (1-β₂)·g²     # 二阶矩
m_hat = m / (1-β₁^t)      # 偏差修正
v_hat = v / (1-β₂^t)
w = w - α·m_hat / (√v_hat + ε)

三、AdamW

改进:将权重衰减(L2 正则)从梯度计算中分离。

💡 实践:现代 Transformer 训练默认使用 AdamW。

---

📌 课程进度:Day 51 / 90

🎓 明天预告Day 52 学习率调度 —— 让训练更稳定、收敛更快!

---

DAY 52 / 90

学习率调度

学习目标

掌握各种学习率调度策略及其效果。

---

核心内容

一、为什么需要调度?

  • 初期:学习率高,快速接近最优
  • 后期:学习率低,精细调整

二、常用策略

策略描述
Step Decay每 N 轮降低一次
Exponential指数衰减
Cosine Annealing余弦曲线衰减
Warmup前 N 步线性增大
One Cycle先增后降

三、Warmup 的重要性

问题:训练初期梯度不稳定,大学习率导致发散。

解决:前几千步从小学习率线性增加到目标值。

学习率
  ↑    ___________
  │   /           \
  │  /             \
  │ /               \
  │/                 \
  └──────────────────→ 步数
     Warmup   Cosine

---

📌 课程进度:Day 52 / 90

🎓 明天预告Day 53 归一化技术 —— BatchNorm、LayerNorm!

---

DAY 53 / 90

归一化技术

学习目标

理解归一化技术如何加速训练和稳定网络。

---

核心内容

一、为什么需要归一化?

  • 内部协变量偏移:每层输入分布变化,训练困难
  • 梯度问题:大输入导致梯度消失/爆炸

二、BatchNorm

# 对一个 batch 的数据归一化
μ = mean(x)        # 批次均值
σ = std(x)         # 批次标准差
x_norm = (x - μ) / (σ + ε)
y = γ·x_norm + β   # 可学习的缩放和平移

优点

  • 加速训练(可用更大学习率)
  • 轻微正则化效果

缺点

  • 依赖 batch size
  • 训练和推理行为不一致

三、LayerNorm

Transformer 的选择:对每个样本的所有特征归一化。

# 不依赖 batch,适合序列模型
μ = mean(x, dim=-1)
σ = std(x, dim=-1)

四、RMSNorm

简化版 LayerNorm:去掉均值中心化,只归一化方差。

💡 LLaMA 使用 RMSNorm,计算更快。

---

📌 课程进度:Day 53 / 90

🎓 明天预告Day 54 正则化进阶 —— Dropout、Early Stopping、数据增强!

---

DAY 54 / 90

正则化进阶

学习目标

掌握 Dropout、Early Stopping 和数据增强等高级正则化技术。

---

核心内容

一、Dropout 深入

训练时:以概率 p 随机关闭神经元。

推理时:所有神经元激活,输出乘以 (1-p)。

💡 为什么有效:强迫网络学习冗余表示,防止共适应。

二、Early Stopping

核心思想:在验证集性能开始下降时停止训练。

训练集损失 ↓↓↓↓↓
验证集损失 ↓↓↓↑     ← 在这里停止!

三、数据增强

模态增强方法
图像翻转、旋转、裁剪、颜色抖动
文本同义词替换、回译、随机删除
音频变速、加噪、混响

---

📌 课程进度:Day 54 / 90

🎓 明天预告Day 55 模型压缩 —— 知识蒸馏、剪枝、量化!

---

DAY 55 / 90

模型压缩

学习目标

掌握知识蒸馏、剪枝和量化三大压缩技术。

---

核心内容

一、为什么需要压缩?

  • 部署到手机/IoT:内存和算力有限
  • 降低推理成本:减少服务器资源
  • 降低延迟:实时应用需要快速响应

二、知识蒸馏(Knowledge Distillation)

核心思想:让小模型学习大模型的"暗知识"(soft target)。

# 软标签 vs 硬标签
硬标签:[0, 1, 0]      # 只告诉正确类别
软标签:[0.1, 0.8, 0.1]  # 还告诉相似度信息

💡 暗知识:大模型输出中,错误类别的相对概率也包含信息。

三、剪枝(Pruning)

核心思想:去掉不重要的权重或结构。

粒度方法
权重剪枝把接近 0 的权重设为 0
结构化剪枝剪掉整个卷积核/注意力头

四、量化(Quantization)

核心思想:用更少的比特表示权重。

精度比特数效果
FP3232标准
FP1616速度翻倍
INT88速度 4x
INT44速度 8x,质量下降

---

📌 课程进度:Day 55 / 90 ✅ 模块4完成

🎓 下一步模块5:大模型应用与工程 —— API调用、Prompt工程、RAG、Agent!

---

← 机器学习基础大模型应用与工程 →