一、历史与问题:从成像到数据驱动(CV1)

早期路线

相机与成像、Marr 的多阶段视觉观念、基于边缘/特征的识别、SIFT 等手工特征 + 传统机器学习(SVM、AdaBoost),再到 Viola–Jones 人脸检测。这一阶段的核心是:先设计特征,再学分类器

数据集与「三要素」

大规模标注数据(如 PASCAL VOC)、ImageNetILSVRC分类错误率变成可比较的指标。算法、数据、算力(GPU)共同推动 2012 AlexNet 的突破:深度卷积网络在 ImageNet 上显著降低错误率,标志着表示学习取代纯手工特征成为主流。

任务延伸

视觉不止图像分类:语义分割、实例分割、目标检测、三维与视频等在本系列后几篇分别展开;图像描述等跨模态任务在笔记中亦有提及。

感性理解:CV(1)–(9) 的“主线轴”

把视觉任务看成三步连锁就更好理解:

  1. 先学“表示”(从像素到特征):分类器需要可学习的中间表征。
  2. 再定位“哪里/什么”(从单标签到空间结构):CNN 的卷积特性让能从“图像整体”过渡到“局部证据”。
  3. 最后理解“原因/分布”:检测分割要输出结构(框/掩码),可解释性与生成则在回答“网络在看哪里、会怎么补全”。
    可以用这一轴回看每一节:每一节都在解决同一类矛盾,只是输出形式不同。

串联顺序 对应模块
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 决定。池化步长卷积降低分辨率、增大感受野。

经典结构脉络(与笔记一致)

LeNetAlexNet(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-CNNFast/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/CNNVAE 与 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笔记1Lec17&18 介绍 DQN、策略梯度 等与游戏、机器人、视觉感知作为状态的结合。若只读九篇 CV 短文,可在此处知:检测/分割之外的决策闭环在课程后半出现。

CV笔记2Lec00–Lec05(概论、超参、结构化工程、CNN、序列模型)与 CV笔记1Lec00 概论(吴恩达)重叠度高,适合用作横向复习:同一概念换表述,有利于巩固。


十三、总结与复习

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 解决的是过拟合还是优化退化
  • 两阶段检测一阶段 各牺牲/换来什么?
  • 语义分割实例分割在输出形式上的根本区别?
  • VAEGAN 在「是否显式密度」上的差异?

以上均可在 CV(1)–(9)CV笔记1 对应 Lec 中找到展开;建议用自己的图把 分类–检测–分割 画成一条任务轴。