第 3 讲 · 综合自测卷(100 分 · 建议 60 分钟)
闭卷、计时、一次做完。做完先按文末评分标准自评,再按漏点定位表回正文与习题。 与习题集的分工:习题集练单点能力(概念辨析、推导、编程验收),本卷练整卷节奏与按点给分。本卷题目绝大多数为新增;与习题集共用同一组数字的只有第 13 题(同一组数据、不同问法),已在题面注明。 应试口径:概念判断题只写「对 / 错」不得分,必须给理由或反例;推导题按步给分,只写结论最多给 3 分;开放题必须给出可测量的失败判据。
第一部分 · 概念判断(10 题 × 3 分 = 30 分)
判断对错,并给出一句话理由或反例。
1. 转置卷积是卷积的逆运算,可以恢复下采样时丢掉的信息。
2. 一层卷积的可学习参数量与输入图像的 成正比。
3. ViT 的主要计算量花在注意力矩阵 上,所以扩大 patch 大小主要是为了省这份算力。
4. 「3 层 一定优于 1 层 」,因为前者参数更少、非线性更多。
5. CLIP 能判断「红色立方体在蓝色球左边」这类关系型描述是否成立。
6. 平均池化与 ReLU 可交换,因此「卷积 → ReLU → 平均池化」与「卷积 → 平均池化 → ReLU」数值等价。
7. 用全局平均池化替换大分类头后,网络仍能给出目标的位置信息。
8. ViT 在 ImageNet-1k 上弱于同期 ResNet,主要是因为它的先验太弱且算力不够,换更强的 GPU 就能追上。
9. 数据集的偏见只影响训练阶段;推理阶段只要把分类阈值调整得足够公平,就不会产生群体性误判。
10. 对抗样本会跨模型迁移,因此「换一个结构不同的模型」本身就构成一种有效防御。
第一部分答案(每题 3 分:判断 1 分 + 理由 2 分)
1. 错。 转置卷积是与卷积梯度同形的线性映射 ,不是逆运算:正向卷积把多个不同输入映射到同一输出(多对一),信息在此时已丢失; 只放大形状,不能恢复信息,也不保证 (卷积矩阵几乎总是奇异的)。分割的边界精度靠跳连 / 高分辨率特征(定义 3.2.6、3.7.4)。
2. 错。 参数量 ,与 完全无关——图像放大一倍,参数不变而计算量涨 倍,这正是卷积「省参数不省算力」的根源(命题 3.2.3)。
3. 错。 常规分辨率下注意力矩阵只占单层 MACs 的约 ,MLP 占约 ;二次项要到 才与线性项持平。扩大 patch 确实减少 token 数、削减二次项,但它省下的主要不是「注意力矩阵那份算力」,而且代价是每个 token 内部的空间结构被抹平(例 3.5.1、例 3.5.2)。
4. 不准确(条件性结论)。 在同感受野下它确实省参数( 对 ,约 )并多出非线性;但代价是中间激活更多、并行度更低、延迟更高。在延迟敏感场景,「大核 深度可分离」(如 ConvNeXt 的 深度卷积)反而更划算(命题 3.4.1、3.4.6 的误解框)。
5. 错。 CLIP 是双塔结构,图像与文本各自独立编码、没有交互层,只能表达「图像整体与句子整体的相似度」,无法表达需要 token 级对齐的组合关系(定义 3.8.1、例 3.8.2)。
6. 错。 与 ReLU 可交换的是最大池化(对逐元素单调递增函数成立);平均池化与 ReLU 不可交换——窗口内有正有负时,先 ReLU 再平均会把负值截零,两者结果不同。这也是经典 AlexNet「卷积 → ReLU → 平均池化」次序不能随便改的原因(命题 3.3.1)。
7. 错(反了)。 GAP 把每个通道的整张图聚成一个数,彻底丢掉空间信息,因此只适合分类;要定位必须保留空间维度(检测头 / 分割解码器)。GAP 的三重收益是参数量下降、可按通道可视化类激活、可接受任意输入尺寸(3.3.1)。
8. 错。 差距很大程度来自训练配方而非算力:DeiT 仅用 ImageNet-1k 就把 ViT 做到 (蒸馏到 ,是增益不是前提)。ViT-Large 在只有 ImageNet-1k 时甚至比 ViT-Base 更差,说明问题是「弱先验需要更多数据」,而配方是公开可复现的(3.5.3)。
9. 错。 偏见会通过反馈回路被放大(被错误排除的群体在下一轮数据中更少),且部署阶段会结构性隐藏未评估子群的误差;阈值调整只能改变两类错误的交换比例,不能消除「该子群的误差从未被测到」这一事实。必须做分群评估(定义 3.9.1、例 3.9.1)。
10. 错(前提混淆)。 迁移性说明的是「弱点与具体模型无关」,它是威胁而非防御:换结构不解决「存在人不可察觉、模型却判错的输入」这一根本问题。准确表述是——鲁棒性永远是相对某个攻击模型与预算的陈述;在开放对抗环境下「再加一个模型」只会把问题往后推一层(3.9.3、3.9.5 的 think 框)。
第二部分 · 填空与简答(5 题 × 4 分 = 20 分)
11. 输入 ,一层 卷积、 个输出通道、、。求输出形状、本层参数量与 MACs(含偏置)。
12. 写出残差块的 与 ,并用一句话说明 为什么不可能被训练改掉。
13. 一个视觉模型的场景是「小批量训练()的实例分割」。写出你选择的归一化层、它的统计范围,并说明为什么不选 BatchNorm。
14. 「某检测器在 COCO 上 AP 为 0.42,另一个在 VOC 上 mAP 为 0.78。」指出这句话里无法比较的原因,并给出两条使数字可比的改写。
15. 写出 AlexNet 的参数量分布(卷积层与全连接层各占多少),并说明这个事实直接催生了哪一项后续设计。
第二部分答案(每题 4 分)
11. 输出 ;参数量 ;MACs 。 ;参数 ; MACs 按公式 (3.5) 逐项相乘:,,,。注意这里乘的是 而不是 ——空洞才会改变有效核,常规卷积的乘加次数用原始核大小。 给分:形状 1 分;参数 2 分(含 );MACs 1 分。
12. ,。 是恒等矩阵,不来源于任何权重,因此它不能被梯度下降改变或「学掉」——它提供了从深层原样带回的一份梯度。 (补充要点:它是矩阵意义下的直通,具体参数收到的梯度大小仍取决于后续层的组合与总深度;残差缓解梯度消失 ≠ 梯度不会消失。) 给分: 1 分; 1.5 分; 的来源与不被学掉 1.5 分。
13. 选 GroupNorm。统计范围:样本内、把 分成 组、跨组内通道与 (与 batch size 无关)。 常取 或 ( 需可整除); 退化为 InstanceNorm、 接近 LayerNorm。 不选 BN 的三条理由:① 时每个通道的统计量只由极少的样本 空间元素估计,噪声大、训练不稳;② 检测 / 分割的图像尺寸与目标分布差异大,批统计不具代表性;③ BN 需要训练 / 推理两套统计量,领域偏移时运行统计量成为误差源。 给分:选对 1 分;统计范围 1.5 分;三条理由各 0.5 分。
14. 无法比较的三个原因:① 口径不同——COCO 的 AP 已是 十个 IoU 阈值上的平均(且跨类别),VOC 的 mAP 通常是单阈值()下 点插值的跨类别平均;② 插值方式不同( 点 vs 点 recall 单调包络),同一组预测就能差出约 个百分点;③ 没写清是哪几件事的平均(跨类别?跨 IoU 阈值?单类别单阈值?)。 两条改写:① 「在 COCO 官方口径下 AP(IoU , 点插值,跨 类平均)为 」;② 「在 VOC 口径下 AP@0.5( 点插值,跨 类平均)为 」——并把两者的同一 IoU 阈值子集抽出来单独比较。 给分:三个原因 2.5 分;两条可比的改写 1.5 分。
15. 卷积层合计约 (占 ),全连接层合计约 —— 的参数在全连接层;总参数量 。 直接催生的设计:把 维特征展平接 维全连接(一层 参数)这件事必须换掉,于是出现了 全局平均池化 小分类头(3.3.1)与全卷积网络(把全连接换成卷积,3.7.4)两条路线。 给分:两个占比各 1 分;总参数量 1 分;后续设计 1 分。
第三部分 · 推导与计算(3 题 × 10 分 = 30 分)
16.(10 分) 某 VGG 风格网络的第一段为:输入 → 卷积( 通道,)→ 卷积( 通道,)→ 最大池化()。 (a) 求各步输出尺寸与两次卷积的参数量;(b) 求池化后特征图的感受野 与跳距 ;(c) 若把这两层 换成一层 ( 通道、),感受野相同吗?参数量差多少?(d) 用 (c) 的结论说明「小核堆叠」的收益与代价。
17.(10 分) BatchNorm 的数值行为: (a) 训练模式下,某层激活为 ,样本 1 为 、样本 2 为 ,、忽略 。求 BN 输出并说明「通道内模式信息」发生了什么。 (b) 同一输入改用 GroupNorm()输出是什么?两个样本的结果有什么关系? (c) 从 (a)(b) 的差别说出 BN 与 GN 的核心区别,并指出 ViT 用哪个归一化、为什么。
18.(10 分) 某类别共有 个真实目标,模型输出 12 个预测,按置信度降序的判定为 (a) 写出每个 rank 的累计 TP / FP 与 precision / recall(列出这张表);(b) 用 点插值求 AP(写出 上取的 precision 与最后的平均数);(c) 说明 COCO 风格的 AP 与它差多少、为什么;(d) 用一句话说明为什么这类任务不能只看准确率。
说明:本题与习题集 C5 使用同一组数字(该组数字来自正文 例 3.7.1),但问法不同:那里要求写代码复现两种口径,这里要求手算并说明口径差异。
第三部分答案
16.(10 分)
(a) 逐层套公式 (3.2):
- 输入 。
- conv1(): → ;参数 。
- conv2():尺寸不变 → ;参数 。
- pool(): → 。
- 两次卷积参数量合计 。
(b) 用 命题 3.2.4 递推:
- conv1:;
- conv2:;
- pool():。 池化后 、(特征图分辨率减半,一个位置对应原图约 见方)。
(c) 换成一层 时:感受野 (不等于 ,也不等于 层的等效值——严格说 单层与 2 层 感受野相同,这里的差异来自池化那一步)。 两次 的参数 ;单层 的参数 。后者是前者的约 倍。
(d) 在相同感受野下(去掉池化那一步的比较,即 2 层 对 1 层 ):参数由 降到 的关系要按 命题 3.4.1 的正确方向理解——小核堆叠更省参数()且非线性层数翻倍( 个 ReLU 夹在中间,整体是分段线性函数,能拟合的映射集合严格更大)。 代价:层数更多、并行度更低、显存里的中间激活更多;这条代价在现代硬件上反而更重要(VGG 的激活值占用大量显存,推理并不快)。另外「 是深度网络的默认核大小」的理由是:它既保证有中心像素、又能在 时保持尺寸,而 用不上空间结构、 以上参数效率下降。 给分:形状 3 分(每步 1 分);参数量 2 分; 2 分;对比结论 3 分(收益与代价各一半)。
17.(10 分)
(a) BN(每通道跨批统计,,每通道 2 个值):通道 1 的值是 ,均值 、方差 、标准差 。于是样本 1 / 样本 2 的四个通道输出分别为 关键观察:两个样本的通道内模式信息被完全抹掉——原始数据里「通道值递增」这一结构消失了,输出只剩「这个样本在该通道上高于还是低于批均值」。这直接来自「统计量跨样本」这一点。
(b) GroupNorm(,每样本分 2 组、每组 2 通道):样本 1 组 1 是 ,均值 、方差 、标准差 → ;组 2 是 → 。 两个样本得到完全相同的结果,且保留了组内的相对模式(递增结构变成 )。
(c) 核心区别:BN 的统计跨样本(输出依赖「同批里有哪些其他样本」),GN 的统计只在样本内(输出只取决于该样本自身,因此与 batch size 无关)。 ViT 用 LayerNorm:因为 Transformer 的 token 维语义与通道维不同,逐 token 归一化才是自然的;卷积网络很少用 LN 对空间做归一化(会抹掉空间结构带来的统计差异)。(另外这里用的是 的极端例子以便计算可见,真实情形下归一化在更大的统计集合上工作,结论不会那样激进——但「统计范围决定输出依赖谁」这一点是可迁移的。) 给分:(a) 数值 2 分 解释 1.5 分;(b) 数值 2 分 关系 1.5 分;(c) BN/GN 区别 2 分 ViT 1 分。
18.(10 分)
(a) 逐 rank 累计:
| rank | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 判定 | TP | TP | FP | TP | FP | TP | TP | FP | TP | FP | TP | FP |
| 累计 TP | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 5 | 6 | 6 | 7 | 7 |
| 累计 FP | 0 | 0 | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 4 | 4 | 5 |
| precision | 1.000 | 1.000 | 0.667 | 0.750 | 0.600 | 0.667 | 0.714 | 0.625 | 0.667 | 0.600 | 0.636 | 0.583 |
| recall | 0.1 | 0.2 | 0.2 | 0.3 | 0.3 | 0.4 | 0.5 | 0.5 | 0.6 | 0.6 | 0.7 | 0.7 |
(b) 点插值:在 处取「recall 的所有样本中最大的 precision」(右侧包络):
| 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 最大 precision | 1.000 | 1.000 | 1.000 | 0.750 | 0.714 | 0.714 | 0.667 | 0.636 | 0 | 0 | 0 |
(c) COCO 风格(先做 precision 单调包络,再对 recall 积分)得到约 ——同一组预测、两种口径差出约 个百分点( 对 )。原因是: 点插值在稀疏的 recall 点上取右侧最大值(相当于「取上包络再平均」),与「先包络后积分」的构造不同;且真实 COCO 还会对 个 IoU 阈值与各类别再求平均。所以报告 AP 必须说清口径,否则数字不可比较。
(d) 因为背景位置占绝大多数:「全部判背景」在 个位置上对 个目标能拿到 的准确率,却 recall 。这类指标被大量负例稀释,是类不平衡的典型后果;检测应看 precision / recall / AP,并分别报告漏检与误检。 给分:(a) 表 3 分(累计 TP/FP 与两列指标);(b) 数值 3 分(表 计算式);(c) 口径差 2 分;(d) 2 分。
第四部分 · 开放题(2 题 × 10 分 = 20 分)
19.(10 分) 某团队要上线一个公共场所人流统计系统(检测 + 跟踪人头/人体,输出计数与热力图)。已知:训练数据来自 3 个城市的白天街景,部署地点包括地铁站与商场;厂商希望「越快上线越好」。请给出: (a) 你在上线前必须补齐的评估项(至少 4 项,含分群维度);(b) 你会追问的三个问题与追问的理由;(c) 两条可测量的失败判据(触发回滚或停止上线);(d) 一项你判断不应当在此场景做的设计,并说明理由。
20.(10 分) 你要为一个边缘设备(延迟 ms、显存 MB)设计一个小目标检测器(目标面积占比常常 ),标注数据约 张。 (a) 给出骨干与检测头的选型及理由;(b) 说明你会怎么处理「小目标」这一核心难点(至少两条具体手段);(c) 给出训练策略(含迁移学习方案);(d) 写出验证计划与失败判据(含一个防泄漏设计)。
第四部分参考答案
19.
(a) 上线前必须补齐的评估项(每项都要写清口径):
- 分群评估:按光照 / 时段(白天 vs 夜间)、人群密度(稀疏 / 拥挤)、遮挡比例、采集设备分组,分别给出 precision / recall / F1 或 AP,并标注每组样本量——样本不足的组要写「结论不可靠」,不能并入总体。
- 口径明确的 AP:说明 IoU 阈值集合、是否跨类别、插值方式(COCO 与 VOC 不可混用)。
- 漏检与误检分开报告,并给出计数误差的分组分布(人流统计的最终指标是计数,不是检测框质量)。
- 阈值与代价曲线:说明工作点是如何按业务代价选的(人流统计与安防告警的代价结构不同)。
- 隐私与合规检查:EXIF 是否剥离、是否只存不可逆特征、原始图像是否必须保留、留存期限与用途限制(3.9.4)。
(b) 追问的三个问题:
- 「97.9% 是哪个口径?」——总体准确率在极端类不平衡下几乎无信息量(例 3.9.1 的算术),必须拿到分组混淆矩阵。
- 「部署地点的光照、密度、摄像头安装高度与训练数据一致吗?」——这是领域偏移,浅层特征统计会漂移,BN 的运行统计量会成为误差源;最便宜的缓解手段是用目标域无标签数据重估归一化统计量。
- 「误判发生时谁来复核、用户如何申诉?数据留多久?」——高风险或涉及人群的系统必须有人在回路 + 可追溯 + 申诉通道,否则没有纠错机会。
(c) 失败判据(可测量):① 任一分组(如夜间 / 拥挤场景)的计数相对误差超过总体误差的 倍 → 停止在对应场景上线;② 分组样本量 时该场景标注为「无法评估」,不得作为上线依据;③ 端到端延迟或拒答率超出业务预算(例如单路视频 P99 延迟超阈值)→ 回滚上一版本。
(d) 不应做的设计:用视觉模型推断人群的主观属性或情绪(「看起来是否可疑」之类)。理由:这类任务本质上是主观判断、没有客观真值;用视觉模型给它打分会把偏见制度化并赋予「技术权威」的外观——这正是 3.9.5 出口判据中的第 ③ 条(另有第 ⑥ 条「存在更便宜、更少侵入的替代方案」也适用于此场景:红外计数、闸机计数可能就够用)。
评分要点:(a) 四项以上且含分群维度与口径声明 4 分;(b) 三个问题各 1 分共 3 分;(c) 判据可测量 2 分;(d) 一项正确判断 理由 1 分。
20.
(a) 选型与理由:骨干选小体积、以卷积为主的结构(如 MobileNet 系深度可分离骨干,或轻量的 ConvNeXt 变体)——理由是边缘设备上卷积算子库与量化支持更成熟、延迟可控;ViT 系在这里不合适,因为其算力随分辨率上升快( 的显存与算力增长,例 3.5.1),高分辨率输入正是小目标场景的前提。检测头用多尺度特征金字塔式的单阶段头(3.7.3),因为单阶段一次前向在密集位置直接预测,适合延迟约束。
(b) 小目标的两条具体手段:
- 保住高分辨率特征:用 FPN 类的自顶向下 横向连接把深层语义与浅层高分辨率融合(3.7.3)——小目标需要的正是小跳距的特征图。
- 提高输入分辨率或多尺度推理,并在多尺度推理时把坐标映射回原图(这是最隐蔽的一类 bug);也可用空洞卷积在不降分辨率的情况下扩大感受野(3.2.2)。
- (加分)按目标尺寸分组统计召回率来定位问题,而不是只看总体 mAP——小目标( 面积)通常是误差贡献最大的一组(3.7.4 的分组失败表)。
(c) 训练策略(含迁移):按 3.6.5 的顺序——先做基线(预训练骨干 冻结 简单头)并记录数字;两阶段训练:先冻结骨干只训头(头学习率 量级,– 个 epoch),再解冻后段用骨干学习率约为头的 联合微调,配余弦退火 warmup 早停;预处理必须与骨干匹配(分辨率、归一化统计量、通道顺序);小批量下把归一化换成 GroupNorm( 小,定义 3.3.4);类别极不平衡用加权采样或 focal loss。
(d) 验证计划与失败判据:
- 验证计划:① 先过拟合 个样本(能到接近 才说明实现无误,3.10.3);② 按目标尺寸分组统计召回;③ 固定随机种子、报告多轮均值与方差;④ 在边缘设备上实测延迟与显存(不是只在服务器上估)。
- 防泄漏设计:若数据来自若干设备 / 场景 / 批次,必须按设备或场景划分训练 / 验证(同一场景的相似帧跨划分是最典型的泄漏);断言
set(train_ids) & set(val_ids) == set()。 - 失败判据(可测量):① 小目标分组召回 不达标 → 回退到更高分辨率特征或多尺度推理;② 边缘设备实测 P99 延迟 ms 或显存 MB → 换更小骨干或量化,不接受把超时转嫁给业务;③ 干净数据上的指标与服务器不一致(差 )→ 先查预处理与
model.eval()(BN 统计量问题,3.10.5)。
评分要点:(a) 选型 理由(含「为什么不用 ViT」)2.5 分;(b) 两条手段 2.5 分;(c) 两阶段 学习率比例 预处理一致性 3 分;(d) 验证计划与可测量判据(含防泄漏)2 分。
评分标准
| 部分 | 题量 | 分值 | 给分要点 |
|---|---|---|---|
| 一 · 概念判断 | 10 | 30 | 判断 1 分 理由/反例 2 分;只写「对 / 错」给 1 分;理由缺条件最多给 1.5 分 |
| 二 · 填空简答 | 5 | 20 | 结果正确 2 分 关键说明 2 分;数值题漏掉偏置项或写错口径各扣 1 分 |
| 三 · 推导计算 | 3 | 30 | 首行(形状 / 公式)3 分 链条完整 4 分 前提与讨论 3 分;写结论不写过程最多 3 分 |
| 四 · 开放题 | 2 | 20 | 方案具体 4 分 判据可测量 4 分 风险与「不做什么」的自觉 2 分 |
段位换算: 优秀(能给别人讲这一讲);– 良好(能独立做视觉项目);– 及格(推导与口径需补); 回到 习题集 对应组重做,并按下面的表回正文。
漏点定位表
| 错题 | 回去读 | 立刻补做 |
|---|---|---|
| 1、2、16 | 3.2 卷积运算、命题 3.2.2、命题 3.2.3、定义 3.2.6 | 习题 B1、B2、C1、C3 |
| 3、8 | 3.5 现代视觉架构、例 3.5.1、例 3.5.2 | 习题 A2、回忆卡 J5、J6 |
| 4、15 | 3.4 经典骨干演进、命题 3.4.1、例 3.4.1、例 3.4.2 | 习题 A7、B2、回忆卡 T3 |
| 5、9、19 | 3.8.1 CLIP、3.9.1 数据集偏见、例 3.9.1 | 习题 B6、D1 |
| 6、7、13、17 | 3.3 池化与归一化、命题 3.3.1、定义 3.3.3、定义 3.3.4、例 3.3.1、例 3.3.4 | 习题 A4、A5、B4、C4 |
| 10、20 | 3.9.3 对抗样本、例 3.9.2、3.9.5 出口判据 | 习题 A8、C6、D4 |
| 11(形状类) | 3.2.2 输出尺寸、3.2.4 速查表 | 习题 B1、C1 |
| 12(残差) | 3.4.4 残差连接、定理 3.4.1 | 习题 A3、B3 |
| 14、18 | 3.7.2 IoU / NMS / AP、方法 3.7.1、例 3.7.1 | 习题 A6、C5 |
| 19、20(工程侧) | 3.6.5 小数据清单、3.10.5 排查表、Lab 2 | 习题 D2、D3、D4 |
做完这一卷之后:把错题按上表回正文重读,再做一次回忆卡里标 △ 与 × 的卡;如果第 13、17 题失分,务必先补 3.3 再进入 第 4 讲——后面讲生成与多模态时,归一化层的统计范围会反复用到。