第 5 章 深度学习 (Deep Learning)

      +

      核心结论

      • 监督学习(§5.1):给定 (x, y) 训练对,学习映射 f: X → Y;KNN / SVM / 决策树 / 神经网络。

      • 无监督学习(§5.2):只有 x 无标签;聚类(K-means)、降维(PCA / t-SNE)、自监督(旋转预测 / 拼图)。

      • 深度神经网络 (DNN)(§5.3):多层感知机(MLP);激活函数(ReLU / Sigmoid / Tanh);反向传播;BatchNorm / Dropout / 残差连接。

      • 卷积神经网络 (CNN)(§5.4):AlexNet / VGG / ResNet / MobileNet;卷积 + 池化 + 全连接;ImageNet 预训练 + 迁移学习。

      • 复杂模型(§5.5):RNN / LSTM / Transformer / ViT / Swin / Diffusion;时序 / 注意力 / 生成。

      本章主旨

      本章是 CV 的"深度学习章"——理解 CNN / ResNet / ViT 等现代架构。深度学习 2012 年起主导 CV,本章给出完整的理论与实践工具。后续章节(识别 / 检测 / 分割 / 重建)几乎全部基于本章的深度学习。

      一、核心概念

      本章围绕 6 个核心概念展开:监督学习 → 无监督学习 → DNN → CNN → 复杂模型(Transformer / Diffusion)。

      概念 定义 + 重要性 实现提示

      监督学习

      给定 (x, y) 学习 f: X → Y;KNN / SVM / 决策树 / NN。

      §5.1;CV 中分类 / 检测 / 分割都用监督学习。

      无监督学习

      只有 x 无标签;聚类 / 降维 / 自监督。

      §5.2;自监督学习是基础模型的关键。

      深度神经网络 (DNN)

      MLP + 激活函数 + 反向传播;BatchNorm / Dropout / 残差。

      §5.3;现代 CV 的基础架构。

      卷积神经网络 (CNN)

      AlexNet / VGG / ResNet / MobileNet;ImageNet 预训练。

      §5.4;CV 任务的事实标准。

      复杂模型

      RNN / LSTM / Transformer / ViT / Swin / Diffusion。

      §5.5;时序 / 注意力 / 生成。

      训练技巧

      SGD / Adam / 学习率调度 / 数据增强 / 迁移学习 / 预训练 + 微调。

      §5.4-§5.5;现代 CV 必备工具。

      二、详细笔记

      2.1 监督学习 (Supervised Learning)

      What:给定 (x, y) 训练对,学习映射 f: X → Y;最小化损失 L(f(x), y)

      Why:CV 中分类 / 检测 / 分割 / 关键点检测都用监督学习。

      How

      监督学习算法(§5.1):

      • KNN(K-近邻):简单但慢;无训练过程。

      • SVM(支持向量机):最大化间隔;核函数可扩展到非线性。

      • 决策树 / 随机森林:可解释;特征重要度。

      • 神经网络:通用逼近器;需大量数据。

      损失函数:

      • 分类:交叉熵 L = -\sum y_i \log \hat{y}_i

      • 回归:MSE L = \sum (y_i - \hat{y}_i)²

      监督学习的工程权衡
      • KNN:实现最简单;查询慢(O(n));维度灾难。

      • SVM:理论扎实;核函数选错效果差;大数据集慢。

      • 随机森林:训练快;可解释;适合表格数据。

      • 神经网络:表达力强;需大量数据 + GPU;CV 主流。

      When:分类 / 检测 / 分割 / 关键点;表格数据用 RF / SVM。

      Examplesklearn.svm.SVCsklearn.ensemble.RandomForestClassifier;PyTorch 自定义 NN。

      2.2 无监督学习 (Unsupervised Learning)

      What:只有 x 无标签;学习数据分布 / 聚类 / 降维。

      Why:标注数据昂贵;无监督学习挖掘未标注数据;自监督是基础模型的关键。

      How

      无监督学习方法(§5.2):

      • 聚类:K-means / DBSCAN / 谱聚类。

      • 降维:PCA / t-SNE / UMAP。

      • 密度估计:GMM / KDE。

      • 自监督:旋转预测 / 拼图 / 对比学习(SimCLR / MoCo)。

      自监督学习的崛起
      • 2020+:自监督成为基础模型(CLIP / SAM / DINO)的核心。

      • 关键洞察:未标注数据比标注数据多 1000 倍;自监督挖掘这些数据。

      • 对比学习(SimCLR / MoCo):同一样本的不同增强视图相似,不同样本不相似。

      When:聚类(图像分组);降维(可视化);自监督预训练。

      Examplesklearn.cluster.KMeanssklearn.decomposition.PCAtimm 库提供 MoCo / DINO 预训练模型。

      2.3 深度神经网络 (DNN)

      What:多层感知机(MLP)+ 激活函数 + 反向传播;现代 CV 的基础。

      Why:通用逼近器(理论上可拟合任意函数);深度 = 表达力。

      How

      MLP 结构(§5.3):

      \[\mathbf{h}^{(l+1)} = \sigma(W^{(l)} \mathbf{h}^{(l)} + \mathbf{b}^{(l)}) \end{bmatrix>\]
      • W^{(l)}:第 l 层权重矩阵。

      • σ:激活函数(ReLU / Sigmoid / Tanh)。

      • 反向传播:链式法则求梯度。

      关键组件:

      • 激活函数:ReLU(最常用)/ Sigmoid / Tanh / GELU / Swish。

      • BatchNorm:归一化每层输入;加速收敛。

      • Dropout:训练时随机丢弃部分神经元;正则化。

      • 残差连接y = F(x) + x;解决梯度消失;ResNet 核心。

      深度学习的工程经验
      • ReLU > Sigmoid / Tanh(无梯度消失)。

      • BatchNorm + 残差连接是训练深网的关键。

      • Adam 优化器通常比 SGD 默认更好。

      • 学习率是最重要的超参数;用 scheduler 衰减。

      When:所有 CV 任务;时间序列;NLP;多模态。

      Examplenn.Linear(in, out) + nn.ReLU() + nn.BatchNorm1d(out);PyTorch nn.Sequential 快速堆叠。

      2.4 卷积神经网络 (CNN)

      What:用卷积层替代全连接;专为图像设计;ImageNet 2012 起主导 CV。

      Why:权值共享 + 局部连接 = 参数量少 + 平移不变性;现代 CV 事实标准。

      How

      CNN 核心组件(§5.4):

      • 卷积层:与 §3.2 线性滤波相同,但权重可学习。

      • 池化层:最大池化 / 平均池化;降低分辨率。

      • 激活函数:ReLU(最常用)。

      • 全连接层:最后几层用于分类。

      经典架构:

      • LeNet-5(1998):第一个 CNN。

      • AlexNet(2012):ImageNet 突破;ReLU + Dropout。

      • VGG(2014):3×3 卷积堆叠;简单有效。

      • ResNet(2015):残差连接;训练 100+ 层网络。

      • MobileNet(2017):深度可分离卷积;移动端。

      • EfficientNet(2019):复合缩放;最优精度 / 效率。

      CNN 演进的"经验法则"
      • 深度:越深越强(残差连接使深网可训练)。

      • 宽度:通道数 × 2 是常见扩展。

      • 分辨率:224 → 384 → 512 提升精度但慢。

      • 计算预算:FLOPs 与精度权衡;EfficientNet 自动搜索最优。

      When:图像分类 / 检测 / 分割;预训练 backbone(迁移学习)。

      Exampletorchvision.models.resnet50(pretrained=True)timm.create_model('efficientnet_b0')

      2.5 Transformer 与注意力 (Transformer & Attention)

      What:用注意力机制替代卷积 / 循环;NLP 革命后扩展到 CV(ViT / Swin)。

      Why:长距离依赖 + 并行训练 + 统一 NLP / CV 框架;2021+ 主流架构。

      How

      Transformer 核心(§5.5):

      • 自注意力\text{Attn}(Q, K, V) = \text{softmax}(Q K^T / \sqrt{d}) V

      • 多头注意力:多个子空间并行。

      • 位置编码PE(pos, 2i) = \sin(pos / 10000^{2i/d})

      视觉 Transformer:

      • ViT(2020):图像分 patch → 序列 → Transformer encoder。

      • Swin(2021):层级 + 滑动窗口注意力;目标检测 / 分割 SOTA。

      • DETR(2020):Transformer 端到端检测。

      Transformer vs CNN 的工程取舍
      • CNN:局部性 + 平移等变性;小数据更优;快速推理。

      • Transformer:全局注意力 + 灵活性;大数据 + 大模型更优;慢。

      • 现代:CNN-Transformer 混合(ConvNeXt / Swin / CoAtNet)。

      When:大模型(CLIP / SAM / GPT-4V);检测 / 分割 SOTA;多模态。

      Exampletimm 提供 ViT / Swin / DETR;transformers 库 HuggingFace。

      2.6 训练技巧 (Training Tricks)

      What:学习率 / 数据增强 / 预训练 + 微调 / 分布式训练。

      Why:训练好的 CV 模型 = 数据 + 架构 + 训练技巧三要素;技巧决定上限。

      How

      训练技巧(§5.4-§5.5):

      • 学习率:最关键的超参;用 warmup + cosine decay。

      • 优化器:Adam(默认)/ SGD + momentum(大模型)。

      • 数据增强:随机裁剪 / 翻转 / 颜色抖动 / Mixup / CutMix。

      • 正则化:Dropout / Weight Decay / Label Smoothing。

      • 迁移学习:ImageNet 预训练 + 小数据微调。

      • 分布式训练:DDP / ZeRO / FSDP。

      现代 CV 训练的"配方"
      • Backbone:预训练 ResNet / ViT / Swin。

      • Neck:FPN(特征金字塔)。

      • Head:任务特定层(检测 / 分割 / 关键点)。

      • Loss:分类 + 回归 + 正则化的组合。

      • Optimizer:AdamW + cosine schedule。

      • Augmentation:Mixup / CutMix / RandAugment。

      When:训练任何 CV 模型;微调预训练模型;多 GPU 训练。

      Exampletorchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)transformers.Trainer 自动分布式。

      三、关键图表

      视觉图表

      图 5-1
      Figure 1. 图 5-1:CNN 架构(AlexNet)
      图 5-2
      Figure 2. 图 5-2:ResNet 残差块
      图 5-3
      Figure 3. 图 5-3:ViT 架构
      图 5-4
      Figure 4. 图 5-4:Transformer 注意力

      非可视化条目

      非可视化条目(表 / 算法)
      编号 内容摘要

      表 5.1

      经典 CNN 架构对比(LeNet / AlexNet / VGG / ResNet / MobileNet / EfficientNet)。

      表 5.2

      训练技巧 checklist(学习率 / 优化器 / 增强 / 正则化)。

      式 5-1 至 5-15

      MLP / CNN / 反向传播 / 注意力公式。

      列表 5.1-5.x

      PyTorch CNN / ResNet / ViT 训练示例。

      核心公式对照表

      核心公式对照表
      概念 公式

      交叉熵损失

      \(L = -\sum_i y_i \log \hat{y}_i\)

      ReLU

      \(\text{ReLU}(x) = \max(0, x)\)

      卷积层

      \(y = \sigma(\sum_{u,v} W_{u,v} \cdot x_{i+u, j+v} + b)\)

      残差块

      \(y = F(x, W) + x\)

      自注意力

      \(\text{Attn}(Q, K, V) = \text{softmax}(Q K^T / \sqrt{d_k}) V\)

      四、思维导图

      mindmap
        root((第 5 章 深度学习))
          监督学习
            KNNSVM
            决策树
            神经网络
          无监督学习
            Kmeans
            PCAtSNE
            自监督对比
          DNN
            MLP
            ReLU激活
            BatchNormDropout
            残差连接
          CNN
            AlexNet
            VGGResNet
            MobileNet
            EfficientNet
          Transformer
            自注意力
            ViT
            SwinDETR
          训练技巧
            Adam
            数据增强
            预训练微调
            分布式

      五、重点与易错点

      • CNN 仍是 CV 主流:尽管 ViT 兴起,CNN + Transformer 混合架构(Swin / ConvNeXt)更适合实际部署。

      • ResNet 是里程碑:残差连接让训练 100+ 层网络成为可能;后续所有架构借鉴。

      • 自监督是基础模型的关键:CLIP / SAM / DINO 都靠自监督预训练;标注数据昂贵。

      • 学习率是最关键超参:warmup + cosine schedule 是稳定默认。

      • 数据增强 = 隐式正则化:Mixup / CutMix 比单纯 Dropout 更强。

      • ImageNet 预训练仍是有效起点:迁移学习到下游任务通常 +5-10% 精度。

      • 大模型不等于好模型:模型大小应与数据 / 任务匹配;MobileNet 在移动端优。

      • Transformer 在 CV 的崛起:ViT 需大数据集;Swin 用层级窗口降低计算量。

      • 跨章衔接:第 6 章识别用本章 CNN;第 7 章特征用本章预训练 backbone;第 11 章 SLAM 用本章 Transformer 做前端。