一、历史与问题:从成像到数据驱动(CV1)
早期路线
相机与成像、Marr 的多阶段视觉观念、基于边缘/特征的识别、SIFT 等手工特征 + 传统机器学习(SVM、AdaBoost),再到 Viola–Jones 人脸检测。这一阶段的核心是:先设计特征,再学分类器。
数据集与「三要素」
大规模标注数据(如 PASCAL VOC)、ImageNet 与 ILSVRC 把分类错误率变成可比较的指标。算法、数据、算力(GPU)共同推动 2012 AlexNet 的突破:深度卷积网络在 ImageNet 上显著降低错误率,标志着表示学习取代纯手工特征成为主流。
任务延伸
视觉不止图像分类:语义分割、实例分割、目标检测、三维与视频等在本系列后几篇分别展开;图像描述等跨模态任务在笔记中亦有提及。
▸感性理解:CV(1)–(9) 的“主线轴”
把视觉任务看成三步连锁就更好理解:
- 先学“表示”(从像素到特征):分类器需要可学习的中间表征。
- 再定位“哪里/什么”(从单标签到空间结构):CNN 的卷积特性让能从“图像整体”过渡到“局部证据”。
- 最后理解“原因/分布”:检测分割要输出结构(框/掩码),可解释性与生成则在回答“网络在看哪里、会怎么补全”。
可以用这一轴回看每一节:每一节都在解决同一类矛盾,只是输出形式不同。
| 串联顺序 | 对应模块 |
|---|---|
| CV1 | 分类基础:数据/损失/优化 |
| CV2 | CNN基础:卷积/池化/感受野 |
| CV3 | 训练技巧:正则化/归一化/调参 |
| CV4 | 经典CNN结构:LeNet -> ResNet |
| CV5 | RNN经典结构:视觉序列任务 |
| CV6 | 目标检测:R-CNN/YOLO/SSD |
| CV7 | 图像分割:语义/实例 -> U-Net/DeepLab |
| CV8 | 可视化与可解释性:显著图/风格迁移 |
| CV9 | 生成模型:VAE/GAN/Pixel |
串联顺序:CV1 -> CV2 -> CV3 -> CV4 -> CV5 -> CV6 -> CV7 -> CV8 -> CV9
二、图像分类基础:像素、挑战与数据驱动范式
语义鸿沟
图像对机器是高维像素矩阵,对人类是物体与关系。分类器需应对视角、尺度、遮挡、光照、类内差异等变化。
数据驱动
KNN 等基线依赖距离度量,高维下不稳健;线性分类器(多类 SVM、Softmax)在手工特征或浅层表示上有效。深度学习的思路是:端到端从数据学习表示,同一套管线可迁移到不同物体类别。
与 CV1 的关系
CV1 的「发展历程」与 Lec02 的「挑战与数据驱动」互为叙事与细节:脉络上先建立为什么要卷积与深度网络,再进入具体层与优化。
三、损失函数与最优化
损失
SVM 合页损失与 Softmax + 交叉熵在分类中常见;回归任务对应 MSE 等。理解数据损失 + 正则项的结构,才能解释权重衰减与过拟合。
优化
SGD、动量、学习率策略(衰减、warmup 等)贯穿训练。笔记强调:梯度流是否健康(消失/爆炸)与学习率尺度往往先于「换更复杂模型」需要排查。
这一部分为 Lec04 反向传播与 Lec05 CNN 提供目标函数与更新规则语言。
四、全连接网络与反向传播(CV1)
多层感知机
仿射层 + 非线性堆叠;计算图视角下,反向传播是链式法则的系统化实现。向量化实现与内存/速度权衡在作业与笔记中反复出现。
与卷积的衔接
全连接对整图展平向量参数爆炸且破坏空间结构,自然导向 Lec05 的 CNN。
五、卷积神经网络:归纳偏置与架构(CV2/4)
▸感性理解:卷积在做“局部共享的证据检索”
- 局部连接:每个输出位置只看局部窗口,所以特征更像“局部模式”。
- 权值共享:同一种模式在不同空间位置都用同一组参数,因此模型不必为每个位置学一遍。
- 感受野:随着层数加深(含池化/步长),每个高层特征开始“看更大范围”,于是从纹理逐步走向物体语义。
卷积与池化
局部连接、权值共享、平移近似不变性;输出尺寸由输入、核大小、步长、padding 决定。池化或步长卷积降低分辨率、增大感受野。
经典结构脉络(与笔记一致)
LeNet → AlexNet(ReLU、Dropout、大数据+GPU)→ VGG(小卷积堆叠加深)→ GoogLeNet/Inception(多分支宽度)→ ResNet(残差缓解退化)。轻量化(MobileNet、ShuffleNet 等)关注乘加数与延迟,适合部署。
CV4 笔记的定位
CV(4) 将 Lec5 与 Lec9、Lec10 合并:既讲层与尺寸公式,又讲经典骨干与复杂度,可与本节的文字逐条对照。
六、训练技巧:正则化、归一化与调试(CV3)
核心议题
Dropout、数据增强减轻过拟合;Batch Normalization(及后续 Group/Instance Norm)稳定前向分布、常允许更大学习率;梯度裁剪应对 RNN/深层网络中的爆炸梯度。
超参数与框架
学习率、权重衰减、动量、训练轮数需验证集监控。框架(笔记1 Lec08)提供自动微分与 GPU 算子,降低实现门槛,但不替代对数值与 shape的理解。
CV(3) 笔记对应 Lec6–7,宜与 CV(4) 的「能训深」合读:结构解决表达,技巧解决可训性。
七、序列与视觉:RNN 与图像标注(CV5)
为何在 CV 里出现 RNN
视频、字幕、轨迹等具有时序;图像标注需从图像特征生成词序列,典型为 CNN 编码图像 + RNN/Attention 解码文本。
RNN 要点
BPTT、梯度消失、LSTM/GRU;与 NLP 笔记中的 RNN 章节共享数学,区别在输入模态(像素/特征图 vs 词向量)。
CV(5) 整合了 Lec8&11 与序列建模材料,阅读时可对照 NLP4/NLP5。
八、目标检测(CV6)
任务
在图像中输出多个框 + 类别,区别于单标签分类。两阶段(R-CNN 系列:先 proposal 再分类回归)与 一阶段(YOLO、SSD:密集预测)是主要分野。
技术脉络
R-CNN → Fast/Faster R-CNN(共享卷积、ROI Pooling/Align、RPN)→ Mask R-CNN(加实例分割分支)。IoU、NMS、多任务损失是工程必备概念。
▸感性理解:检测=“先猜候选,再把候选变成精确框”
- 先猜:两阶段先用 RPN / proposal 生成“可能有目标的位置”,减少后续分类/回归的搜索空间。
- 再校准:框回归(预测偏移/尺度)把“粗候选”精调到目标边界。
- 再去重:NMS 的直觉是:同一个目标会产生多个高度重叠的候选框,需要只保留一个“代表”。
- 因而 IoU/NMS 不只是公式:它们对应的是“评价标准”和“候选集合如何收敛”的过程。
九、图像分割(CV7)
语义 vs 实例
语义分割:每像素一类,不区分子实例;实例分割:先检测实例再 per-instance mask。
网络结构
编码器–解码器、上采样(转置卷积、插值)、空洞卷积扩大感受野;FCN、U-Net、DeepLab、PSPNet 等代表不同设计选择。mIoU 是常用指标。
▸感性理解:分割在做“像素级对齐与证据融合”
- 输出形式从“一个类别”变成“每个像素一个类别”,所以需要把损失/指标理解成对齐问题。
- mIoU 不是单纯算准确率,它更像在问:预测区域与真实区域的重叠比例能到什么程度。
- 编码器–解码器/跳连的直觉是:先用深层抓语义,再把细节用上采样还原回来。
十、可视化、可解释性与风格(CV8)
可视化
第一层卷积核、高层激活、最大响应图像块、遮挡/显著图、引导反向传播等帮助理解「网络在看什么」。
应用向
神经风格迁移(Gram 矩阵匹配纹理)等说明:同一套 CNN 特征既可分类,也可做感知损失。CV(8) 与 Lec15 一一对应。
▸感性理解:可解释性是在“反过来提问”
- 关心的是:某个输出为什么会变?所以可视化/显著图/梯度类方法本质上都在“把网络的影响路径倒过来看”。
- 遮挡实验的直觉:把证据拿走,输出是否就崩掉;如果崩,就说明那块区域是关键证据。
- 风格迁移的直觉:Gram 矩阵度量通道间“纹理相关性”,所以优化输入图像是在匹配这些相关统计。
十一、生成模型(CV9)
目标
学习 $p_\theta(x)$ 或等价采样机制,用于生成、补全、数据增广等。
主要范式(笔记中的分类)
显式密度(如 PixelRNN/CNN、VAE 与 ELBO)与 GAN(对抗训练、极小极大博弈)。各有利弊:前两者可估密度或下界,GAN 样本常锐利但训练不稳。
CV(9) 正文含 VAE、GAN、Pixel 系 的要点式整理,宜配合 Lec16 推导。
▸感性理解:生成=“学会从数据分布里采样”
- 显式密度(Pixel 系、VAE 的思路):更像是在逼近 $p_\theta(x)$ 或其下界,所以可以把训练理解成“让我在数据上不至于太意外”。
- GAN:把生成器当成“骗过判别器”的对手学习者,直觉是“互相对抗推动样本分布对齐”。
- 一句话区分:VAE 更像估计概率,GAN 更像对齐分布,Pixel 更像按顺序建模每个像素。
十二、强化学习与视觉(笔记1 Lec17&18,系列短文未单独成篇)
CV(1)–(9) 短文未单列「深度强化学习」,但 CV笔记1 在 Lec17&18 介绍 DQN、策略梯度 等与游戏、机器人、视觉感知作为状态的结合。若只读九篇 CV 短文,可在此处知:检测/分割之外的决策闭环在课程后半出现。
CV笔记2 的 Lec00–Lec05(概论、超参、结构化工程、CNN、序列模型)与 CV笔记1 的 Lec00 概论(吴恩达)重叠度高,适合用作横向复习:同一概念换表述,有利于巩固。
十三、总结与复习
CV(1)–(9) 篇目与主题速查
| 短文 | 主题关键词 |
|---|---|
| CV1&知识基础 | 历史、ImageNet、分类与最优化入门、Lec1–4 整合 |
| CV2&卷积神经网络 | 卷积/池化、感受野、与全连接对比 |
| CV3&神经网络训练技巧 | Dropout、BN、数据增强、训练监控 |
| CV4&CNN经典结构 | LeNet–ResNet、轻量化、复杂度 |
| CV5&RNN经典结构 | RNN/LSTM、视觉中的序列任务 |
| CV6&目标检测 | R-CNN 系、YOLO/SSD、IoU/NMS |
| CV7&图像分割 | 语义/实例、FCN/U-Net/DeepLab、mIoU |
| CV8&视觉模型可视化与可解释性 | 可视化方法、风格迁移 |
| CV9&生成模型 | 无监督目标、VAE、GAN、Pixel 模型 |
两条笔记(CV笔记1 / CV笔记2)怎么用
| 维度 | CV笔记1 | CV笔记2 |
|---|---|---|
| 主线 | CS231n 式:分类 → CNN → 检测分割 → 可视化生成 → RL | 深度学习专项:NN 基础 → 实践 → CNN → 序列与注意力 |
| 强项 | 视觉任务覆盖面全、作业向细节 | 调参、工程化、迁移学习表述系统 |
| 建议 | 以 Lec 编号 建目录;短文 CV(1)–(9) 作考前速查 | 与笔记1 交叉章节阅读,补「为什么这样训」的直觉 |
三条主线(复习用)
| 主线 | 核心矛盾 | 在本材料中的体现 |
|---|---|---|
| 表示 | 像素 → 语义 | CNN 层次特征;可视化章节验证层次 |
| 任务 | 点标签 → 框 → 像素 | 分类 → 检测 → 分割 |
| 可学性 | 深网络优化与泛化 | 损失与优化、训练技巧、BN/Dropout |
学习自检(可选)
- ImageNet 前后,视觉 pipeline 从「特征手工」到「端到端」差在哪一步?
- 全连接参数量随输入尺寸如何缩放?卷积如何缓解?
- ResNet 解决的是过拟合还是优化退化?
- 两阶段检测与 一阶段 各牺牲/换来什么?
- 语义分割与实例分割在输出形式上的根本区别?
- VAE 与 GAN 在「是否显式密度」上的差异?
以上均可在 CV(1)–(9) 或 CV笔记1 对应 Lec 中找到展开;建议用自己的图把 分类–检测–分割 画成一条任务轴。


