Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第 3 讲总结 · 深度计算机视觉

本页把 导览 与 3.1–3.10 压成一张可复习的骨架。用法:先只看「核心问题」列自问,答不全再读「关键结论」列,最后回「典型陷阱」列校核。

节一览

节核心问题关键结论典型陷阱
3.1 为什么是卷积图像为什么不能展平后交给 MLP?全连接的两宗罪:参数爆炸(2242×3→1000224^2\times3\to1000 约 1.5×1081.5\times10^8)与无视空间结构(定义 3.1.1);卷积 == 局部连接 ++ 权值共享 ++ 平移等变(定义 3.1.2);等变是前两条的推论(命题 3.1.1)把「等变」说成「不变」;把归纳偏置当无条件优势——位置本身带语义时卷积吃亏(定义 3.1.3)
3.2 卷积运算「核在图上滑动」怎么写成公式?框架算的是互相关(定义 3.2.1),与数学卷积只差一次核翻转(命题 3.2.1,无激活时可合并成一个核,定理 3.2.1);三条公式:尺寸 (3.2)、参数 (3.4)、MACs (3.5)(命题 3.2.2、命题 3.2.3);感受野递推 rl+1=rl+(k−1)jlr_{l+1}=r_l+(k-1)j_l、jl+1=jlsj_{l+1}=j_l s(命题 3.2.4)核形状写反(应为 (Cout,Cin,k,k)(C_{out},C_{in},k,k));以为参数量与图像大小有关;把理论感受野当实际上下文;忘记 1×11\times1 卷积的偏置
3.3 池化、下采样与归一化池化提供了什么?BN 为什么训推不一致?池化的不变性弱且有条件(例 3.3.1),真实价值是降分辨率、扩视野、省算力;最大池化与单调激活可交换(命题 3.3.1);BN 训练用批统计、推理用运行统计(定义 3.3.3);统计量的覆盖维度决定层与 batch size 的关系(定义 3.3.4);卷积 Dropout 必须按通道丢(定义 3.3.5)推理忘 model.eval();小 batch 硬用 BN;把逐元素 nn.Dropout 用在特征图上;增强放在归一化之后
3.4 经典骨干演进三代网络各自解决了什么障碍?AlexNet 是一套可训配方,95%95% 参数在全连接层(例 3.4.1);VGG 用 3×33\times3 堆叠在同感受野下跌 45%45% 参数、多非线性(命题 3.4.1),89%89% 参数在分类头(例 3.4.2);退化不是过拟合(定义 3.4.2),残差 y=F(x)+xy=F(x)+x 给出直通项 II(定理 3.4.1);瓶颈是「把通道预算换深度」(定义 3.4.4)用加正则解决退化;以为残差只是为了「防梯度消失」;忽略中间激活的显存代价;把小核堆叠当普适定律
3.5 现代视觉架构不用卷积行不行?代价多大?patchify 把 NN 从 5 万降到 196(定义 3.5.1);ViT-B/16 共 86,482,408≈86.586{,}482{,}408\approx86.5M 参数,MLP 占每层 66.6%66.6%,17.617.6 GMACs 是 ResNet-50 的 4.34.3 倍(例 3.5.2);二次项要到 N⋆=6d=4608N^\star=6d=4608 才与线性项持平(例 3.5.1);Swin 用窗口 ++ 移位窗口把注意力降为线性并给出多尺度(命题 3.5.2);ConvNeXt 说明差距很大程度来自配方与微观设计以为 ViT 没有归纳偏置;以为「参数量相近就是同量级」;把 ConvNeXt 读成「卷积更好」;以为掩码比例越低越好(MAE 最优在 75%75% 附近)
3.6 迁移与自监督为什么不能从零训练?没标签怎么办?迁移是工程默认起点:先冻结、再逐步解冻,骨干学习率小一个量级(定义 3.6.1,可训练参数差约 622622 倍见 例 3.6.1);浅层学习率更小的分层衰减(方法 3.6.1);领域偏移最便宜的手段是重估归一化统计量(定义 3.6.2);InfoNCE 等价于在表示空间做 2N−12N-1 类分类(定义 3.6.3),其梯度是「吸引 ++ 排斥」(推导 3.6.1);BYOL / DINO 去负样本但机制无共识预处理与骨干不匹配;一上来全网络微调;把「不用负样本也不崩塌」当已确立定理;以为自监督一定优于监督
3.7 检测、分割与基础模型输出为什么不能只看准确率?输出从「一个标签」变成变长集合/稠密标签图(定义 3.7.1);IoU 是匹配与评估的共同基础(定义 3.7.2);NMS 是训练未去重时的补救(定义 3.7.3);AP 必须说清口径——VOC 11 点与 COCO 101 点 ++ 10 个 IoU 阈值,同一组预测差 44 个百分点(例 3.7.1);DETR 用一对一匈牙利匹配从训练层面消掉锚框与 NMS(定义 3.7.7),代价是收敛慢、小目标弱;SAM 把任务规格搬进提示(定义 3.7.8)用准确率评估检测;混淆 AP 与 mAP;以为 NMS 是必需步骤;把 SAM 当分类器(它不给语义标签);以为转置卷积能恢复信息
3.8 多模态视觉图像怎么接到语言上?CLIP 用 4 亿图文对的对称 InfoNCE 对齐,从而支持零样本分类(定义 3.8.1);双塔把编码次数从 N×MN\times M 降到 N+MN+M(例 3.8.2);VLM 三段式=对齐 / 指令微调 / 偏好优化(定义 3.8.2),视觉 token 数直接决定上下文预算(例 3.8.3);ControlNet 管「怎么摆」、LoRA 管「长什么样」(定义 3.8.3)以为 CLIP 会生成文本;以为双塔能表达组合关系;以为幻觉是「没看清」(实为语言先验压过视觉证据);跨论文直接比 VQA 数字
3.9 伦理与安全强能力的代价是什么?数据偏见会被放大并有反馈回路(定义 3.9.1);97.9%97.9% 的总体准确率可以掩盖 1212 倍的子群差异(例 3.9.1);误识与拒识代价不对称(定义 3.9.2);对抗样本存在且可迁移(定义 3.9.3),鲁棒性永远是相对攻击预算的陈述;深伪的「说谎者红利」损伤记录系统的可信基础(定义 3.9.4);有明确的出口判据用总体准确率掩盖子群失败;把对抗样本归因于过拟合;把检测器当深伪唯一防线;把「只存模板」当隐私方案;把技术判断当价值判断
3.10 Lab 2 导读怎么把零件装成能跑的检测系统?滑动窗口 = 在位置与尺度上搜索,70867086 次前向约 5.675.67 s(例 3.10.1);正负样本匹配与忽略区(例 3.10.2);「先过拟合 10 个样本」是最有效的调试手段;FGSM 实验的价值在于亲手验证「不可察觉 / 行为跃变 / 防御不易」框坐标顺序错(不报错但框乱飞);增强只改图不改框;NMS 条件方向写反;多尺度推理忘还原坐标;忘 model.eval()

一条主线:因为图像是二维网格、而 MLP 对维度顺序不作任何假设,所以参数爆炸与无视空间结构这两宗罪无法靠堆数据根治(3.1)——由此必须把「局部性 ++ 权值共享」写进结构,并为此付出「先学会把滑动写成三条公式」的代价:尺寸、参数量、感受野(3.2);公式一落地就能看出分辨率、视野与训练稳定性是三笔互相兑换的预算,于是池化、步幅与归一化各占一角(3.3);把零件按正确的配方组装,才能依次跨过「可训 → 深度是变量 → 退化」三道障碍,而残差连接是把「恒等映射变便宜」的钥匙(3.4);一旦承认「先验可以换数据」,就会自然追问先验能否更弱(ViT / Swin / ConvNeXt)以及标签能否不要(迁移与自监督)(3.5–3.6);弱先验与无标签都把小数据变成常态,于是输出结构必须从「一个标签」升级为集合与掩码图,评测口径随之全面更换(3.7–3.8);而能力越强,继承并放大数据缺陷的后果越严重,所以必须补上分群评估、对抗预算与出口判据(3.9),最后在 Lab 2 里把这些原理装成一台能跑、且能说明使用边界的机器(3.10)。

三句话带走

  1. 第 3 讲的可迁移技能只有一条:不依赖代码的形状与量级推演。 尺寸公式 (3.2)、参数公式 (3.4)、MACs 公式 (3.5) 与感受野递推 (3.6) 覆盖了绝大多数「显存爆了 / 换了分辨率就报错 / 理论上更快实测更慢」的问题;预训练权重解决的是「从哪开始」,这四条公式解决的是「为什么」和「哪里出问题」。
  2. 所有结论都是条件性的。 卷积优于 MLP 以「平移统计结构成立」为前提(3.1);ViT 优于 CNN 以「数据充足」为前提(3.5);小核堆叠优于大核以「不在意延迟与中间激活」为前提(3.4);自监督优于监督以「标签稀缺或跨域」为前提(3.6);迁移有效以「输入分布共享低层结构」为前提(3.6)。凡不带条件的比较句,都应当被追问条件。
  3. 评测口径与失败模式比榜单数字重要。 准确率在极端类不平衡下几乎无信息量(3.7 的 99.999%99.999%);AP 必须说明是 11 点还是 101 点、跨了哪几个 IoU 阈值(3.7);总体指标必须配分群指标(3.9 的 97.9%97.9% vs 88%88%);鲁棒性必须附带攻击模型与预算(3.9)。指标的选择由「错误的代价结构」决定,而不是由「大家都在报什么」决定。

值得记住的定量结论

结论数值 / 形式出处
全连接第一层的量级150,528×1000≈1.5×108150{,}528\times1000\approx1.5\times10^8;同规模 3×33\times3 卷积(64→6464\to64)仅 36,86436{,}864例 3.1.1
输出尺寸 / 参数 / 算力Wout=⌊(Win+2p−keff)/s⌋+1W_{out}=\lfloor(W_{in}+2p-k_{\text{eff}})/s\rfloor+1;CoutCink2+CoutC_{out}C_{in}k^2+C_{out};HoutWoutCoutCink2H_{out}W_{out}C_{out}C_{in}k^2命题 3.2.2、命题 3.2.3
感受野与跳距rl+1=rl+(k−1)jlr_{l+1}=r_l+(k-1)j_l、jl+1=jl sj_{l+1}=j_l,s;下采样让 rr 近似几何增长命题 3.2.4、例 3.2.3
可分离卷积的省算比ρ=1/C+1/k2\rho=1/C+1/k^2,k=3,C=64k=3,C=64 时约 0.1270.127命题 3.2.6
三代骨干的参数量AlexNet 61,640,93661{,}640{,}936(95%95% 在 FC);VGG16 1.384×1081.384\times10^8(89%89% 在 FC);ResNet-50 2.55×1072.55\times10^7例 3.4.1、例 3.4.2
残差梯度∂y/∂x=I+∂F/∂x\partial y/\partial x=I+\partial F/\partial x,展开式中唯一不含 JJ 的项就是 II定理 3.4.1
ViT-B/1686,482,40886{,}482{,}408 参数、17.617.6 GMACs(ResNet-50 的 4.34.3 倍)、MLP 占每层参数 66.6%66.6%例 3.5.2
二次项临界点N⋆=6dN^\star=6d;d=768d=768 时为 46084608例 3.5.1
AP 的口径差同一组 12 个预测:11 点插值 0.5890.589,COCO 风格约 0.5480.548例 3.7.1
偏见被平均稀释总体 97.9%97.9%,而占比 10%10% 的子群只有 88%88%(错误率差 1212 倍)例 3.9.1

与后续的连接

  • 第 4 讲 · 深度生成建模:本讲的每个模型都在回答「这是什么」或「在哪里」;第 4 讲换问「能不能生成新的图像」。本讲练出的骨干(卷积的或注意力的去噪网络)在那里成为扩散模型的去噪器;3.8 节的潜空间扩散与 ControlNet / LoRA 是那条线的接口层,而 3.9 节讨论的深伪,其技术根源正是第 4 讲要讲的生成能力。
  • 第 6 讲 · 多模态与前沿:3.8 节只讲视觉这一侧的接口(对齐 / 连接 / 定制),语言模型侧的训练细节与偏好优化留给第 6 讲与它的 VLM 三段式。
  • Lab 2 · 人脸检测系统:本讲的落点,3.10 是它的理论导读;Lab 3 的视觉—语言前端用的就是 3.4–3.5 的骨干。
  • 期末项目方向:涉及图像的选题按 3.6.5 的决策顺序选骨干与迁移策略 → 按 3.7.2 定评估口径 → 按 3.9.5 写出使用边界;一份合格的视觉项目报告必须包含分群评估与失败模式分析。
  • 复习入口:公式速查卡 的卷积公式一行、易混对照卡 的「卷积 vs 注意力」「BN vs LN」「AP vs mAP」;排错先走 工程工具箱,再做本讲 习题集 → 回忆卡 → 综合自测卷,最后用 学习目标自检表 对账 K3.x / S3.x / A3.1。