Vince Jiang

CSCI3230 / 课程伴读 · 本站更新

CSCI3230 L07 · Part 3/4 Tricks for CNN training

课程:CSCI3230 (ESTR3108) Fundamentals of Artificial Intelligence · 2025T1 本讲:L07,第 3 部分 / 共 4 部分 · 原件 L07-Convolutional-Neural-Networks-2025T1.pdf(本地课件) p.64–69 定位:扩大训练变化并抑制对固定特征组合的依赖。 前后:上一份 CNN for classification · 下一份 Summary

本文依据 2025T1 旧版材料重写,供基础学习与预习;不是 2026T1 新增要求或考试范围。补充数值例均另行标注。

增强与Dropout

数据增强在哪里发生(p.64–66)【延伸 L01 p.58–64】

假设你只见过桌子中央、正面拍摄的猫,模型可能把“中央出现某纹理”当成猫的捷径。现实中的猫会偏左、光暗不同、被挡一部分。数据增强是在训练输入上制造合理变化,让模型练习这些情况,而不是另建一层网络。

p.64 是分隔页。p.65 图有两条线:图片先变换再进 CNN,标签直接送往 loss。对于仍为猫的变换,标签继续写“猫”。p.66 给原图、裁剪缩放、裁剪缩放翻转、去色、颜色扰动、旋转、cutout、噪声、模糊、Sobel filtering。这些是候选变化,不是每种任务都应全部使用。

补充自取坐标例:宽 10 的图用列号 0–9,水平翻转把列 2 移到列 9−2=79-2=7。若任务只是猫分类,标签可不变;若任务是定位,标注框也得随图变,否则训练输入与监督信号互相矛盾。

p.65–66图片示范的变换包括翻转、旋转、缩放/裁剪、平移、亮度或颜色变化、加入Gaussian噪声、模糊,以及Sobel边缘/梯度变换;旋转图明确展示90°、180°、270°。这些处理并非总是标签不变:把数字6转成9、裁掉唯一目标或破坏颜色类别时,训练标签就可能失效。要先判断任务,再选择增强。

为什么有帮助及其条件(p.67)

模型通过训练样本寻找规律。如果每张猫照片都来自同一背景,它也许记住背景。增强让同一对象在若干条件下仍对应同一标签,有机会抑制这种偶然关联。这叫改善泛化:希望对没有见过的样本也有效。

但是条件必须说清。旋转猫图通常还像猫,数字 6 旋转后却可能像 9;裁掉整只猫以后仍标猫也会造错监督。增强不能补回从没见过的关键种类,也不等于增加同样数量的独立真实观察。

p.67 还说能帮助类别不平衡。单纯对每类同等增强不改变类比例:90 张 A、10 张 B 都各变两份,还是 180 比 20。若有针对少数类的采样策略,比例才可能改变(补充说明)。别把“有增强”当成“已经解决不平衡”。

学习时可先做确定性基线,再只改一种合理增强,固定数据分割观察验证集变化。测试集通常用确定性预处理;不能因某次随机测试变换碰巧高分就宣称模型改善。

补充 · 先分组再增强,才不会把同一对象两次当陌生样本(通识讲解;演示数据不属于原题)。

假设一张原图生成了裁剪、翻转和颜色扰动版本。如果先生成全部版本再随机分训练/验证,原图可能在训练集,它的近似副本却在验证集;验证便不再严格测试对未见对象的泛化。应先按原始对象划分,再在训练部分实施增强。若同一人或同一视频贡献许多图,还可能要按人或视频分组,而不只是按文件名随机分。

增强还依赖“目标语义保持不变”的假设:翻转衣服图通常仍是同类物品,但把某些方向敏感符号镜像后,标签可能需要改变。不是变换越多越好,而是让训练样本覆盖现实中合理的变化。检查增强时应同时查看图和标签,避免模型被迫学习互相矛盾的监督信号。

p.67的收益还包括减少重新收集和标注数据的成本。增加训练样本变化、提高泛化、减轻过拟合、增强鲁棒性和覆盖更多输入情形都依赖“变换仍保留任务语义”这一前提;增强不会凭空补出完全缺失的真实类别。

Dropout的随机掩码(p.68–69)【新】

增强改输入图像,dropout 改网络内部的激活。想象每次练习随机让某些同伴暂时缺席,其他单元不能始终依赖固定搭档。这个比喻只解释动机;实际操作是激活乘 0/1 掩码,不是神经元“有意识合作”。

p.68 的 pp 表示保留概率。设一个激活为 aa,随机变量 mm 以概率 pp 取 1、否则取 0。常见 inverted dropout 用

a~=map,0<p≤1. \tilde a=\frac{ma}{p},\qquad 0<p\le1.

aa 是原激活标量,mm 是这次前向抽到的开关,a~\tilde a 是传给下一层的数。除以 pp 的理由是补偿随机丢失造成的平均幅度下降。补充自取 a=2,p=0.5a=2,p=0.5:一半情况输出 4,一半输出 0,平均 0.5⋅4+0.5⋅0=20.5\cdot4+0.5\cdot0=2。

向量例:激活 (2,4,6)(2,4,6)、保留概率 0.5,这次抽到 (1,0,1)(1,0,1),训练时输出 (4,0,12)(4,0,12)。这一次和原向量很不同;“期望不变”说的是很多次随机抽样的平均,绝不是每次和都相同。测试时关闭掩码,直接用原激活,不再除一次 0.5。

p.69 用减少 co-adaptation 解释正则化。它可能减轻过拟合,但丢太多也可能使模型学不动。库接口的 p 有时是丢弃概率,与课件的保留概率互补;先看定义再代数。关闭路径的当前反向贡献为零,也不等于含动量或权重衰减的优化器永不改变相关参数。

小检查:保留概率 0.8 时,要把保留下来的值乘 0.8 还是除 0.8?

参考答案

inverted dropout 要除以 0.8,才能让平均值保持原幅度。推理时关闭随机开关。若使用不同缩放约定,训练和推理必须成套匹配。

p.68–69引用Srivastava等(2014);典型示例是保留概率0.5。每次训练采样的是临时掩码,下一次可恢复同一个单元,故dropout不等于永久删掉神经元或把其可训练权重永久置零。

补充:期望保持了,为什么预测仍然不等价

沿用保留概率 pp 与 inverted dropout,a~=ma/p\tilde a=ma/p,mm以概率 pp 为1。固定激活 aa 时,E[a~]=aE[\tilde a]=a;但二阶矩为 E[a~2]=a2/pE[\tilde a^2]=a^2/p,所以方差为 a2(1−p)/pa^2(1-p)/p。自取 a=2,p=1/2a=2,p=1/2,输出0或4,均值2,方差4。减少保留概率会增加这一个激活的随机波动。

“均值不变”不能穿过任意非线性。例如后续仅取平方,自编函数 f(t)=t2f(t)=t^2:随机前向输出平方的平均为 (0+16)/2=8(0+16)/2=8,关闭dropout时平方为 22=42^2=4,二者不同。因此推理时关闭随机掩码并不意味着精确计算了所有随机子网络最终预测的平均;这种说法需要更多条件,不能由激活期望一步推出。

反向则仍使用本次实际抽到的掩码。保留位置局部导数为 1/p1/p,丢弃位置为0;不是全部用期望导数1去反传。前向和反向要对应同一次随机计算,才能得到该次损失的梯度。

本讲核心考点

  • 增强改变数据分布变化,不直接增加参数量(p.65–67,A 级:Example Question Part I)。
  • Dropout训练随机、测试按一致缩放约定(p.68–69,C 级)。

附录

本部分没有需要另展的推导或题目演练。

来源与证据

  • 原件:L07-Convolutional-Neural-Networks-2025T1.pdf(本地课件),p.64–69;均为当前 PDF 页号。
  • 本次重写核对本篇所列讲义页码;旧版作业/试题题面如保留,属于历史练习,不代表 2026T1 考核要求。未以未公开试题推断考试内容。
  • 往年卷仅证明相应年份考过;2024 卷及 2025 节选未公开的选择题不作推断。