用法:遮住答案,在空白纸上写;写完再展开对照。写不出来就标 △,完全想不起标 ×。
评估标记:✓ 能完整写出 / △ 有关键词但缺条件 / × 完全想不起。标 △ 的卡要补全「条件」,标 × 的卡隔天必须重做。
每组末尾给出该组的评估标记栏,考完自己打钩即可。
D1. 写出「卷积的三种归纳偏置」,并说明哪一条带来平移等变、哪一条省参数。
解答
局部连接(每个输出只与 k×k 邻域相连)+ 权值共享(同一个核在全图滑动,所有位置共用 k2 个权重)+ 平移等变(f(shiftΔx)=shiftΔf(x),在边界处理允许的范围内)。
局变由两条共同推出:核在所有位置用同一套权重,所以图案出现在哪里都激活同一个检测器,输出只是把激活搬到对应位置(命题 3.1.1 给出必要性的要点:线性 + 平移可交换 ⇒ 必为某核的卷积)。省参数来自权值共享 + 局部连接:参数量只剩 k2CinCout,与图像尺寸完全无关(定义 3.1.2、例 3.1.1)。
解决的问题:全连接处理图像的两宗罪——参数爆炸(2242×3→1000 约 1.5×108)与无视空间结构(展平后「谁挨着谁」只剩下标差,网络要为每个位置各学一遍同一图案)。
D2. 写出归纳偏置的定义,并说明它的收益与代价分别落在误差分解的哪一项上。
解答
定义:一个学习算法(或模型族)在假设空间之外额外携带的、用于在等价假设之间做选择的先验约束。
误差分解:
R(f)−R(f⋆)≤近似误差f∈Fmin(R(f)−R(f⋆))+样本不足导致的选错估计误差.
收益:把与先验相符的解提前排除 ⇒ 降低估计误差(用先验换样本,样本需求可以降几个数量级)。
代价:若真实规律不满足这个先验 ⇒ 抬高近似误差(此时卷积会输给 MLP,例如像素被随机置换的数据、或位置本身带语义的任务)。所以归纳偏置是双向工具(定义 3.1.3)。
D3. 写出「感受野」与「跳距」的定义,并说明跳距在工程上回答什么问题。
解答
感受野 rl:第 l 层某个输出神经元能追溯到原始输入的区域大小(答「看多大」)。
跳距 jl:第 l 层相邻两个神经元在原始输入上的中心间距(也叫等效步幅,答「隔多远一个采样点」)。
工程含义:两者共同决定「第 l 层的一张特征图相当于原图的什么分辨率」;jL=4 意味着特征图上一个像素对应原图 4×4 块,这就是像素级分割定位精度的上限(所以分割网络要保住高分辨率特征)。把原图上的某个核换算到第 l 层时要乘 jl,即用 k⋅jl 而不是 k(定义 3.2.4)。
D4. 写出 BatchNorm 的定义(含统计范围与动量更新),并说清「批」到底跨哪些维度。
解答
设激活 x∈RB×C×H×W,对每个通道 c 独立,在该批全部样本的 B⋅H⋅W 个元素上算
μc=BHW1∑xb,c,h,w,σc2=BHW1∑(xb,c,h,w−μc)2,
再标准化并做可学习的仿射:x^=σc2+ϵx−μc,y=γcx^+βc。
训练用当前批统计;推理用训练期累积的运行统计量,按动量更新 μcrun←(1−m)μcrun+mμc。
「批」跨谁不跨谁:跨样本(B)与空间(HW),但不跨通道。「跨样本」这一点解释了为什么它依赖 batch size、为什么必须用两套统计量、以及为什么小批量任务改用 GroupNorm(定义 3.3.3、定义 3.3.4)。
D5. 写出四种归一化层的统计范围差异,并各配一个典型场景。
解答
| 名称 |
统计范围(每样本) |
与 batch size 的关系 |
典型场景 |
| BatchNorm |
跨 B,H,W,每通道 |
强依赖 |
大 batch 的图像分类骨干 |
| LayerNorm |
跨该样本的全部通道与空间 |
无关 |
Transformer(ViT)的默认 |
| InstanceNorm |
跨 H,W,每样本每通道 |
无关 |
风格迁移 / 图像生成 |
| GroupNorm |
把 C 分成 g 组,跨组内通道与 H,W |
无关 |
检测 / 分割 / 视频(batch 小) |
退化关系:GroupNorm 在 g=C 时退化为 InstanceNorm,在 g=1 时接近 LayerNorm(定义 3.3.4)。g 的常见选择是 32 或 16(要求 C 可整除)。
D6. 写出 InfoNCE 损失,并说明它在形式上等价于什么任务。
解答
给定一批 N 个样本、每个样本生成两个视图,得到 2N 个表示;对锚点 i 记正样本为 j(i),相似度 sik=cos(zi,zk)/τ(τ 为温度):
L=−2N1i=1∑2Nlog∑k=iexp(sik)exp(si,j(i)).
等价任务:把每个视图的表示当作一个「类别」,则「找出 i 的正样本」就是一个 2N−1 类分类问题(2N−2 个负样本 + 1 个正样本),与 softmax 交叉熵完全同形。
两个旋钮:负样本规模决定任务难度与表示质量(SimCLR 需大 batch、MoCo 用队列);温度 τ 控制 softmax 分布锐度,进而控制梯度强度与判别性(定义 3.6.3、例 3.6.2)。
D7. 写出 IoU、NMS 的定义,并说明二者各自解决什么问题。
解答
IoU =∣A∪B∣∣A∩B∣=面积(A)+面积(B)−交面积交面积∈[0,1]。它同时是匹配判据(是否算命中)、评估阈值(AP@0.5)与损失基础(GIoU / DIoU / CIoU 是它的可微化改造)。用「交并比」而不用「交面积占比」,是因为后者可以靠把框做得极大来作弊;IoU 则同时惩罚「漏」与「多」,是同时约束位置与尺度的度量。著名缺陷:两框不重叠时恒为 0、梯度消失。
NMS:候选框按置信度从高到低排序 → 取最高分的框保留 → 删除与它 IoU 大于阈值的剩余框 → 重复。它解决的是「训练目标没做去重时,同一目标附近出现多个高分框」的问题;代价是阈值敏感(过小 → 漏检,过大 → 重复框)、对遮挡不友好、且不可微 + 串行(DETR 用一对一匹配从训练层面消除对它的需要)。
D8. 写出「领域偏移」与「任务偏移」的定义,并给出各自的诊断信号。
解答
领域偏移:输入分布 P(X) 变化而 P(Y∣X) 大致不变(例:白天街景 → 夜间街景;自然图像 → 内窥镜图像)。
任务偏移 / 标签偏移:输出分布或语义定义变化(例:源任务是「1000 类物体」,目标任务是「病灶良恶性」)。
诊断信号:领域偏移 → 模型的浅层特征统计明显漂移;在无标签目标域上,BN 的运行统计量与源域不匹配。任务偏移 → 只有最后几层的输出分布与源域差异大,浅层仍相似。
缓解手段(按代价从低到高):① 重估归一化统计量(冻结全部参数,用目标域无标签数据重跑前向、重新累积 running stats,几十到几百个 batch 即可);② 测试时自适应;③ 目标域自监督预训练(定义 3.6.2、3.6.2)。
A 组评估标记:D1 ☐ / D2 ☐ / D3 ☐ / D4 ☐ / D5 ☐ / D6 ☐ / D7 ☐ / D8 ☐(✓ / △ / ×)
J1. 「卷积具有平移不变性。」——这句话对吗?正确的说法是什么?
解答
不对,应为平移等变。 ① 卷积给的是等变:输入平移 Δ,输出特征图跟着平移 Δ(命题 3.1.1)。② 分类需要的不变是由池化 / 全局平均池化 / 大感受野逐步换来的;而且局部 2×2 池化提供的不变性很弱且不连续,实际网络的不变性只是局部的、有限的(例 3.3.1)。
J2. 「更深一定更好;如果变差了就是过拟合,加正则就行。」——错在哪?
解答
错在把退化当过拟合。 过拟合是训练误差低、测试误差高;退化(定义 3.4.2)是训练误差本身就更高——说明问题在优化而不是容量。加正则、加数据都无效;要靠结构改动(残差)与优化手段(归一化、预激活、合理初始化)。
另一处要纠正:残差的价值有两件——让恒等映射变便宜(优化视角)与提供梯度直通项 I;不能简单归因为「梯度变大了」(定理 3.4.1 后的两个补充观察)。
J3. 「池化提供平移不变性,所以分类精度靠池化。」——更准确的说法是什么?
解答
更准确:池化提供的不变性很弱且不连续(只有当窗口内没有第二个同样强的激活时,「取最大」才等价于位置无关的检测;两个激活强度接近时输出会随平移跳变,不可导)。分类不变性主要来自大感受野 + 全局聚合(GAP)+ 数据增强。
池化长期存在的真实理由是 降分辨率、扩感受野(下采样让 r 近似几何增长)、省算力;而决定分辨率与感受野的是步幅的累乘,不是「池化」这个名字(例 3.3.2)。另外最大池化与单调激活可交换(命题 3.3.1),但平均池化不能随便与 ReLU 换位。
J4. 「推理时 BatchNorm 也按当前批算统计量。」——为什么这是最危险的实现错误?
解答
因为推理必须确定:同一输入必须给同一输出,且与他人的输入无关。若按当前批算:① 单样本部署时批大小 1,方差为 0,归一化退化为「减自身均值再除以 ϵ」,输出几乎恒定,模型完全失效;② 离线评测与线上服务的批组成不同会带来不可复现的精度漂移。
正确做法是用训练期累积的 running statistics(model.train() / model.eval() 的切换就是为它服务的)。附带事实:紧跟 BN 的卷积偏置是冗余的(可设 bias=False),但 BN 自己的 β 是必需的(例 3.3.3)。
J5. 「ViT 参数量与 ResNet-50 相近,所以算力也相近。」——给出正确的量级对比。
解答
错。参数与 FLOPs 必须同时看。
ViT-B/16(2242):总参数 86,482,408≈86.5M,其中每层 MLP 占 66.6%(4.72M / 7.08M)、注意力相关(QKV + 输出投影)只有 28.3M;计算量约 17.6 GMACs(约 35.1 GFLOPs),其中 MLP 占每层 MACs 的 64%、注意力矩阵只占 4.1%。
ResNet-50(2242):2.55×107 参数、约 4.1 GMACs。ViT-B/16 的算力是它的约 4.3 倍,参数约 3.4 倍(例 3.5.2)。
J6. 「ViT 已经取代 CNN 了。」——用控制变量实验的结论纠正它。
解答
没有。 三条事实:① ViT-Large 只用 ImageNet-1k 时比 ViT-Base 更差(弱先验需要更多数据才填满假设空间);② DeiT 证明差距很大程度来自训练配方(不蒸馏已达 81.8%,蒸馏仅带来增益,不是前提);③ ConvNeXt 从 ResNet-50 出发一次只改一件事(配方、宏观设计、深度可分离、倒瓶颈、7×7 大核、GELU/BN→LN),得到纯卷积的 ConvNeXt-T 82.1%,与同规模 Swin-T 的 81.3% 持平甚至略优。
准确表述:在对齐训练配方与微观设计之后,纯卷积可与同规模 Transformer 持平——这是控制变量实验,不是架构优劣的终审判决。选型依据是数据量、延迟、部署工具链与是否需要多尺度输出(3.5.5)。
J7. 「对比学习必须用大 batch。」——分别说出 SimCLR / MoCo / BYOL 的答案。
解答
不成立(作为普适结论)。 三者对照:
| 方法 |
负样本来源 |
关键机制 |
需大 batch? |
| SimCLR |
当前 batch 内(2N−2 个) |
强增强 + 投影头(损失在投影空间算,下游用投影前的表示) |
是 |
| MoCo |
队列(跨 batch 累积) |
动量编码器保证队列内特征一致 |
否(与 batch 解耦) |
| BYOL / SimSiam |
无负样本 |
预测器 + stop-gradient + 动量目标网络 |
否 |
注意是 2N−2(不是 B−1):同图的另一视图既是别人的锚点也可能是自己的正样本,计数要去掉自身与正样本(例 3.6.2)。
J8. 「BYOL 能工作,是因为它用了 X 来防止崩塌。」——这句话的问题在哪?
解答
问题在于把机制假说写成了已确立的定理。可确定的是现象:只用「拉近」的损失存在平凡崩塌解(输出常数向量使损失为 0),而 BYOL / SimSiam / DINO 一类结构在实践中能稳定训练且下游性能良好。
机制层面存在多种候选解释且无共识:预测器带来的不对称、stop-gradient 切断作弊路径、动量目标网络的慢变稳定信号、BatchNorm 的批统计约束。文献对哪一项起决定作用存在分歧。引用时必须区分「观测到的现象」与「机制解释」(定义 3.6.4、例 3.6.3)。
J9. 「NMS 是检测的必要步骤;检测看准确率就够了。」——逐句纠正。
解答
① NMS 不是必需:它是「训练目标没做去重」时的推理端补救。DETR 用一对一匈牙利匹配强制每个真值只被一个预测负责,重复预测被指派为「无目标」并受损失惩罚,于是 NMS 的作用被训练目标本身吸收(定义 3.7.7)。
② 准确率在极端类不平衡下几乎没有信息量:106 个候选位置、10 个真实目标时「全判背景」的准确率是 99.999%,但 recall =0(例 3.7.1)。检测必须看 precision / recall / AP,并且分别报告漏检与误检。
③ 附带的第三个纠正:AP 必须说清口径——VOC 11 点插值与 COCO(101 点 recall + 十个 IoU 阈值)在同一组预测上会差约 4 个百分点(0.589 对 0.548)。
J10. 「SAM 是一个能分割一切类别的模型。」——正确的表述与两条主要局限是什么?
解答
正确表述:SAM 把分割从「针对某一类目标训练一个模型」改成「给定一个提示,返回对应的掩码」——提示可以是点、框、粗略掩码。它输出的是掩码(哪块像素属于同一个物体),不是语义标签——它不回答「这是什么」(定义 3.7.8)。
两条主要局限:① 掩码质量依赖提示质量(一个落在物体边缘的点可能给出完全不同的结果);② 不输出语义标签,实际系统通常把它当作「分割后端」,前面接检测器或分类器。另两条值得记住的代价:模型规模大(ViT-H 图像编码器约 6 亿参数量级)推理成本不低;训练数据的标注偏差会被继承。此外它的能力建立在 11M 图像上的 1B 个掩码这海量标注之上,而不是「不需要标注」。
J11. 「CLIP 是生成模型,能描述图像;而且它能理解『红色立方体在蓝球左边』。」——两处错误各是什么?
解答
错误一:CLIP 是双塔检索 / 对齐模型——它只能给「图像与文本的匹配程度」,不能生成描述(那是 captioning / VLM 的事),也不输出坐标或掩码。
错误二:双塔结构中图像与文本各自独立编码、没有交互层,因此只能表达「图像整体与句子整体的相似度」,难以表达组合关系(「红色立方体在蓝色球左边」这类需要 token 级对齐的结构)——组合性是 CLIP 一类模型的已知短板。
顺带记两条:零样本分类靠文本编码器把新类名即时编码(这是「用语言作为类别的接口」),因此对类别名的表述高度敏感(模板工程存在的原因)、对细粒度分类弱;双塔的工程价值在于把编码次数从 N×M 降到 N+M(例 3.8.2)。
J12. 「只保存特征模板就不存在隐私风险。」——两个漏洞分别是什么?
解答
漏洞一:模板可以被反演。 人脸识别模型的嵌入是连续的、可优化的——固定特征提取器,把「与目标模板距离最小」当成损失去优化一张合成图像,就能得到在该模型看来「是这个人」的近似人脸(公开研究方向;具体方法与成功率需核实具体论文)。含义:共享嵌入向量不等于共享安全数据。
漏洞二:模板不可撤销。 密码泄露可以改密码;特征模板一旦泄露,你不能更换自己的脸。所以对模板的保护级别应至少等同于原始生物特征:加密存储、访问审计、用途绑定。
工程结论:把「只存模板」当隐私方案,是把存储位置的问题误当成信息含量的问题。正确的问法是:这份数据能重建出什么?(3.9.4)
J13. 「对抗样本是过拟合造成的,加个检测器就能解决。」——两处都要纠正。
解答
① 不是过拟合:对抗样本在训练集上也存在,而且能跨模型迁移。把它归因为过拟合会导向「多训一会儿就好」的错误结论。
② 加检测器不带来安全性:在开放对抗环境下攻击是自适应的——攻击者知道你在用检测器,就会把「骗过检测器」纳入优化目标。此时防御与攻击变成迭代博弈,而攻击只需要找到一个漏洞,防御要堵住所有漏洞,成本对攻击方更有利。这就是鲁棒性研究普遍只接受「相对某个攻击预算」表述的原因。
更稳的方向:把防线建在不容易被单点绕过的地方——来源签名与溯源基础设施、多源交叉核实、允许「不确定 / 拒答」的系统设计;在对抗训练上则如实承认两条代价:训练成本上升与干净精度下降(3.9.3、3.9.5 的 think 框)。
B 组评估标记:J1 ☐ / J2 ☐ / J3 ☐ / J4 ☐ / J5 ☐ / J6 ☐ / J7 ☐ / J8 ☐ / J9 ☐ / J10 ☐ / J11 ☐ / J12 ☐ / J13 ☐(✓ / △ / ×)
F1. 输出尺寸公式(含空洞)。
解答
Wout=⌊sWin+2p−keff⌋+1,keff=k+(k−1)(d−1).
条件 / 注意:二维逐轴独立应用;窗口必须完整落在填充后的范围内,框架不补齐不完整位置(Win+2p−k<0 直接报错)。两个特例随手可得:k=3,s=1,p=1 → 尺寸不变;k=4,s=2,p=1 → 精确减半(命题 3.2.2)。
F2. 参数量与计算量公式。
解答
Params=CoutCink2+Cout,MACs=HoutWoutCoutCink2,FLOPs≈2×MACs.
三个直接推论:① 参数与 H×W 无关(图像放大一倍:参数不变、计算量涨 4 倍);② 参数按 k2 涨(k 从 3 到 7 涨 5.4 倍);③ 计算量按 CinCout 涨(64→64 换成 256→256 涨 16 倍)。偏置 Cout 在大通道时可忽略(64 对 36,864 约 0.17%),但核对模型总参数时必须加回来(命题 3.2.3)。
F3. 感受野与跳距递推。
解答
rl+1=rl+(k−1)jl,jl+1=jl⋅s,
初始条件:第一层直接作用于输入时 r1=k、j1=s。自检:k=1 时 r 不变。
三条工程结论:① 想要大感受野,下采样比堆层划算得多(纯堆 3×3 到 101×101 需 50 层,每两层后接一次 2×2 池化的方式 10 层就到 158);② 感受野不是越大越好(分类偏好大感受野,分割检测的定位分支需要小跳距);③ 理论感受野 ≠ 有效感受野,后者通常只是前者的一小部分、且呈中心加权分布(命题 3.2.4、例 3.2.3)。
F4. 深度可分离卷积的省算比。
解答
设 Cin=Cout=C、忽略偏置:
ρ=C2k2Ck2+C2=C1+k21(k=3, C=64⇒ρ≈0.127).
条件:参数量与 MACs 的比值完全相同——因为输出面积在分子分母中约掉了。C≫k2 时第一项可忽略,比值趋近 1/k2(因为大头是逐点卷积的 C2)。含偏置时实测比值略大于该式(命题 3.2.6、例 3.2.4)。
F5. 转置卷积的输出尺寸。
解答
Wout=(Win−1)s−2p+k.
条件与注意:s=1 时退化为对称式;s>1 时具体输出尺寸还依赖 output_padding,可落在长度为 s 的一个区间内。它是「与卷积梯度同形」的线性映射 AT,不是逆运算(卷积矩阵几乎总是奇异的);零插值 + 大步幅会带来棋盘格伪影(定义 3.2.6)。
F6. 残差网络的梯度结构。
解答
y=F(x)+x,∂x∂y=I+∂x∂F,
∂xl∂L=∂xL∂Li=l∏L−1(I+∂xi∂Fi)=∂xL∂L[I+i∑Ji+i<j∑JiJj+⋯],Ji:=∂xi∂Fi.
读法:展开式里唯一不含 J 的项是 I,它就是不依赖任何权重的直通项,因此不可能被梯度下降「学掉」。但它是矩阵意义下的直通,一个具体参数收到的梯度大小仍取决于后续层的组合与总深度——「残差缓解梯度消失」不等于「梯度不会消失」(定理 3.4.1)。
F7. 自注意力的计算量与内存复杂度。
解答
一层多头自注意力(忽略头数,按总量计):
QKV 投影3Nd2+QKT 与加权2N2d+输出投影Nd2=4Nd2+2N2d.
临界点:令含 MLP 的线性项 12Nd2 与二次项 2N2d 相等,得 N⋆=6d(d=768 时 4608)。
两条读法:① 常规分辨率下注意力矩阵不是计算瓶颈(N=197 时二次项只占 4.1%,MLP 占 64%);② 但二次项的显存是 N2,它在内存上比在算力上更早成为限制(命题 3.5.1、例 3.5.1)。
F8. 窗口注意力为什么是线性的。
解答
Ω(W-MSA)=4hwC2+2M2hwC(关于 hw 线性),
对全局注意力 4hwC2+2(hw)2C(关于 hw 二次)。推导要点:每窗口 =4M2C2+2M4C,共 hw/M2 个窗口,相乘后 (hw)2 被常数 M2 替换。代价:信息只能在窗口内流通——用移位窗口(下一层把窗口网格平移 ⌊M/2⌋ 个 token)在两层内完成跨窗口传递,且不增加参数与算子(命题 3.5.2、定义 3.5.3)。
F9. 分层学习率与 InfoNCE 的梯度。
解答
分层学习率:ηl=ηhead⋅αK−l,α∈[0.5,0.9],l 越小越浅。以 ηhead=10−3、四阶段、α=0.5 为例:10−3,5×10−4,2.5×10−4,1.25×10−4。
InfoNCE 的梯度(pik 为负样本上的 softmax 分布):
∂sik∂Li={−(1−pi,j(i)),+pik,k=j(i)k=i, j(i)⟹−∂zi∂Li 把 zi 往正样本拉、从负样本推开,
权重分别是 (1−ppos) 与 pik:难负样本主导学习;正样本已分对时吸引项权重 →0;τ 在分母上,τ 越小梯度整体越大(方法 3.6.1、推导 3.6.1)。
F10. IoU、AP 与 mIoU。
解答
IoU=∣A∪B∣∣A∩B∣,mIoU=C1c∑∣Pc∪Gc∣∣Pc∩Gc∣,
AP:把某类别的预测按置信度降序排列 → 逐 rank 判定 TP / FP → 维护累计值得到 precision =TP/(TP+FP) 与 recall =TP/∣GT∣ → 用插值法求 PR 曲线下面积。
两种口径:VOC 风格在 r=0,0.1,…,1.0 上取「右侧最大 precision」再平均;COCO 风格用 101 点 recall + precision 单调包络,并对 IoU=0.50:0.05:0.95 共 10 个阈值求平均。mAP = 各类别 AP 的平均(方法 3.7.1)。
F11. FGSM 的一步更新与 ℓ∞/ℓ2 的差别。
解答
x′=x+ϵsign(∇xL(f(x),y))(并在生成后 clamp(x′,0,1)).
ℓ∞:最优解在每个坐标上独立取边界(符号向量)——把扰动平摊到每个像素(更隐蔽)、实现只需梯度的符号;ℓ2:最优方向沿梯度方向,max∥δ∥2≤ϵwTδ=ϵ∥w∥,取 δ=ϵw/∥w∥。常用 ϵ=8/255≈0.031(像素范围 [0,1])(例 3.9.2、3.9.3)。
F12. CLIP 的对称对比损失与双塔的算力。
解答
L=21[−N1i∑log∑jesijesii−N1j∑log∑iesijesjj],sij=∥fI(xi)∥∥fT(tj)∥fI(xi)TfT(tj)/τ.
负样本来源:同一 batch 内的其他 N−1 个文本 / 图像(不需要额外增强)。
算力:双塔可离线预计算图像向量,N 张图 +M 条查询的编码次数是 N+M;交叉编码器要 N×M。代价是没有交互层 ⇒ 无法表达组合关系(定义 3.8.1、例 3.8.2)。
C 组评估标记:F1 ☐ / F2 ☐ / F3 ☐ / F4 ☐ / F5 ☐ / F6 ☐ / F7 ☐ / F8 ☐ / F9 ☐ / F10 ☐ / F11 ☐ / F12 ☐(✓ / △ / ×)
T1. 「核的形状是 (Cin,Cout,k,k)。」
解答
反了。 核的形状是 (Cout,Cin,k,k);nn.Conv2d(64, 32, 3) 表示输入 64 通道、输出 32 通道,不是反过来——这是形状报错十有八九的来源。另外两条常错:输出通道数由核的个数决定(完全自由的超参数),唯一硬约束是核的深度 =Cin;1×1 卷积也有偏置(瓶颈块核对时的 +64 / +256 就是它,漏掉会以为公式算错)(3.2、3.2 的误解框)。
T2. 「参数共享意味着所有位置的输出一样。」
解答
错。共享的是权重,不是输出。 不同位置的输入不同,输出自然不同;共享带来的是「检测器一致」,不是「响应一致」(3.1 的误解框)。附带纠正另一条常见的:全连接层能表示卷积(把大部分权重置零并令其余位置相等),但那是「表示能力」层面——卷积的价值在统计效率与优化难度层面,那个等效解在全连接参数化下极难被梯度法找到。
T3. 「理论上算的参数量就是真机上的推理速度。」
解答
错。MACs 只统计主要乘加项,忽略了激活函数、归一化、偏置加法与显存搬运;真实耗时还取决于算子效率与访存。两条具体例子:① BN 的额外计算量在 FLOPs 上相对卷积约 0.3%(可忽略),但它需要两次全张量归约与读写,内存带宽上的代价比 FLOPs 大得多——这是「BN 拖慢小模型推理」的实际原因(例 3.3.3(c));② 小核堆叠省参数、增非线性,但中间激活更多、并行度更低、延迟更高,所以在延迟敏感场景「大核 + 深度可分离」反而更划算(3.4 的误解框)。
T4. 「转置卷积是把下采样丢掉的信息恢复回来。」
解答
不能。 正向卷积把多个不同输入映射到同一输出(多对一),信息此时不可逆地丢失;转置卷积只把维度放大回来,既不能恢复被平均掉的信息,也无法保证 ATAx=x(卷积矩阵几乎总是奇异的)。分割的边界精度靠跳连 / 高分辨率特征保住,而不是靠上采样算子(定义 3.2.6、3.7.4)。
T5. 「Dropout 概率越大正则越强,卷积特征图上逐元素丢弃也一样有效。」
解答
两处错:① 过强的 Dropout 会欠拟合(不是越强越好);② 卷积特征图上必须按通道丢。逐元素 Dropout 的前提是「相邻单元独立携带信息」,这在全连接层大致成立,但在卷积特征图上明显不成立——相邻像素来自高度重叠的感受野,是同一模式的冗余副本,逐元素丢弃几乎总能被邻居「补上」,正则化被稀释。正确做法是 SpatialDropout(nn.Dropout2d):对每个 (B,C) 采样一个掩码并广播到整张 H×W。更一般的原则是掩码要作用在语义上有意义的单位上(卷积里是通道,Transformer 里是 token)(定义 3.3.5)。
T6. 「BN 的偏置参数无关紧要,所以可以去掉。」
解答
注意方向。 是卷积层的偏置在接 BN 时冗余(BN 的归一化把它完全减掉,可设 bias=False);而 BN 自己的 β 是必需的——它恢复了被减去均值的能力。两句都对的前提是别把两者搞混(例 3.3.3(b)、3.3 的误解框)。
T7. 「不做输入归一化也没关系,反正网络会学。」
解答
错,而且是小数据训练失败的高频原因。 输入尺度直接影响首批激活的方差与 BN 统计:把 0–255 的原始值直接送进网络会让首批激活量级放大 255 倍,BN 的方差估计与初始学习率都会失衡。正确做法:① 缩放(÷255);② 按训练集统计量做 z-score(ImageNet 的 mean =[0.485,0.456,0.406]、std =[0.229,0.224,0.225],顺序 RGB);③ 统计量必须冻结(用测试集统计量 = 数据泄漏);④ 与预训练权重保持一致;⑤ 每步打印第一批数据的 min / max / mean / std 核对。三个常见错误:验证集忘了缩放、用 ImageNet 统计量但把图转成 BGR、增强放在归一化之后导致像素越界(3.3.5)。
T8. 「迁移学习一定能提升,先上全网络微调再说。」
解答
两处错:① 迁移是条件性结论——源域与目标域差异很大时(如把自然图像骨干直接用到点云 / 频谱图),浅层特征也不再通用,收益可能为负甚至不如从零训练;② 小数据下相反:随机初始化的头会产生大而嘈杂的梯度,直接全网络微调会破坏骨干已学好的通用特征。正确顺序是「冻结 → 观察 → 逐步解冻」,骨干学习率比头小约一个量级。另外两个高频坑:预处理与骨干不匹配(会导致初始 loss 异常高);冻结骨干时若它带 BN,train() 模式下运行统计量仍会被更新——正确做法通常是把 BN 也切到 eval() 或改用 GroupNorm 骨干(定义 3.6.1、例 3.6.1)。
T9. 「IoU 既能当损失也能当指标,所以可以直接拿来做梯度。」
解答
不行。 IoU 在框不重叠时恒为 0、梯度消失,无法指导「该往哪个方向靠近」。必须用有非零梯度的替代量:GIoU(引入最小闭包框,不重叠时仍有非零梯度)、DIoU(加入中心点距离)、CIoU(再加长宽比一致性)。另一处相关纠错:IoU 计算边界不应算入面积(用 x2−x1 而不是 x2−x1+1),否则会有几个百分点的偏差,在阈值附近改变正负样本划分(定义 3.7.2、3.10.5)。
T10. 「视觉幻觉是因为模型没看清图像。」
解答
更准确的说法是语言先验压过了视觉证据。 这类模型逐 token 生成输出,每一步都在最大化下一个词的概率;当视觉证据弱(小物体、遮挡、模糊)而某个物体在语言上非常常见(「桌子旁边通常有椅子」)时,模型就写出那个不存在的东西。这说明模型并不总是以图像为条件做判断——也在部分情况下以「这段话该怎么写下去」为条件。
评测后果:直接用「看图说话」打分难以区分「描述准确」与「语言流畅」,所以主流做法是把问题设计成可核对的封闭形式(如 POPE 的「图中是否有 X?」二分类),并报告 accuracy / precision / recall / F1(定义 3.8.4)。
T11. 「多尺度推理时,把每个尺度的框直接汇总起来就行。」
解答
忘了坐标还原。 每个尺度上模型看到的是缩放后的图像,得到的框坐标也是缩放图坐标,必须除以缩放因子才能回到原图,否则多尺度结果会完全错位——而且不报错,属于最隐蔽的一类 bug。同类不报错的 bug 还有三条:框坐标顺序错(把 (x1,y1,x2,y2) 当 (x,y,w,h),训练 loss 能降但框乱飞)、增强只改图不改框(检测特有)、NMS 条件方向写反(表现为「检测器只输出一个框」)。对策是把它们写成显式断言与可视化检查(3.10.2、3.10.5)。
T12. 「样本量不足的子群,先并进总体指标里报个平均值就可以了。」
解答
不可以——「样本不足」本身就是一个不能部署的结论。 两个理由:① 小样本子群上的指标方差很大,「看起来有差异」也可能只是噪声,所以要么给区间估计,要么明确说无法评估;② 总体平均会把占比小的子群的高错误率稀释掉——占比 90% 的子群错误率 1%、占比 10% 的子群错误率 12%,总体仍给出 97.9%(例 3.9.1)。
对应到出口判据:「无法获得代表性的评估数据(目标人群样本量不足以做出可靠估计)」是应当停下重新设计系统的条件之一,而不是用总体指标掩盖它的理由(3.9.5)。
D 组评估标记:T1 ☐ / T2 ☐ / T3 ☐ / T4 ☐ / T5 ☐ / T6 ☐ / T7 ☐ / T8 ☐ / T9 ☐ / T10 ☐ / T11 ☐ / T12 ☐(✓ / △ / ×)
- 打开 Anki → 新建卡组「DL-第 3 讲」(建议再按 A/B/C/D 建四个子卡组,方便按组复习)。
- 用「问题 → 答案」逐条录入:最简单的方式是在纯文本里按
问题<Tab>答案 组织(答案里的公式保留 $...$ 原文,Anki 会原样显示;若装了 LaTeX 插件可正常渲染),然后用 Anki 的「文件 → 导入」选择 Tab 分隔,把第一列映射为「正面」、第二列映射为「背面」。
- 复习节点:当天 / 隔天 / 第 3 天 / 第 7 天(对应本教程的间隔复习安排)。当天只做 A 组与 C 组公式卡;隔天做 B 组;第 3 天做 D 组陷阱卡;第 7 天做全卡组混排(同时用 综合自测卷 做一次闭卷计时)。
- 每轮只重做标 △ 与 × 的卡;出现「能背出但说不出适用条件」的情况,一律按 △ 处理——本讲绝大多数错误都发生在条件上(卷积优于 MLP 的条件、ViT 需要数据的条件、迁移有效的条件、鲁棒性相对攻击预算的条件)。