bRavePy Cathy · 第 3 课
NEURAL NETWORKS & TRAINING

先做实验,
再写结论

课堂实践版 · 七项受控实验 · 一张研究迁移卡

离线可用 · 所有数值来自可复现计算 · 纯合成数据

01 先预测,再改变一个权重

任务:固定 y=1,把 w₁ 从 0.8 调到 1.8,比较概率与损失;再只把 y 改为 0。

先写假设w₁ 增大时,p 与 L 各向哪个方向变化?
保持不变x=(0.9,0.2)、w₂=−0.6、b=0.1。

研究目的:让前向概率、损失与梯度符号连成一条可核对的链。

  1. 点击“重置实验”,保持 y=1;记下 w₁=0.8 时的 p、L、∂L/∂w₁。
  2. 仅把“权重 w₁”改为 1.8,再记录三项值。
  3. 保持 w₁=1.8,只把“标签 y”改为 0;比较概率是否变化、损失与梯度如何变化。

观察与比较:每步只改一个量。权重改变预测;标签不进入前向计算,却改变损失与梯度。把三个设置写入下方记录框。

加做挑战 · 完成基本任务后再试

令 y=0,预测一次梯度下降会让 w₁ 增大还是减小。用 w₁←w₁−η∂L/∂w₁ 说明方向。

思考:改标签时,概率为什么不变?

同一权重与输入给出同一 p。改 y 会改变 p−y,从而改变损失和梯度;不能把“概率变大”直接写成“模型变好”。

记录只保留在当前页面,刷新会清空;请复制到自己的实验笔记。

02 用数值差分检查链式法则

任务:先比较解析梯度和中心差分,再点击一次更新;将 v 改成负值,重复。

先写假设输出权重改变符号,会怎样改变第一层的误差信号?
保持不变x、y、w₂、b、c、步长 η=0.2;每轮只更新 w₁。

研究目的:用独立数值检查核对反向传播,而不只背公式。

  1. 点击“重置实验”,使用 tanh、w₁=0.8、v=1.3,记录四个相乘因子和两种梯度。
  2. 点击一次“按当前梯度更新 w₁”;记录状态栏中的损失前后值,注意图中梯度已在新位置计算。
  3. 重置后仅把 v 改为 −1.3,重复记录和一次更新;不要接着上一轮的位置比较。

观察与比较:比较同一参数位置的解析梯度与中心差分;正负 v 的两轮都从相同 w₁ 开始。更新只改变 w₁,步长固定为 0.2。

加做挑战 · 完成基本任务后再试

重置后选 ReLU,把 w₁ 设为 −1,使隐藏输入为负。检查第一层梯度为什么为 0;这不代表整个模型已最优。

思考:梯度吻合与损失下降分别检验什么?

解析梯度与中心差分核对局部导数;一次更新后的损失核对实际移动效果。四个因子为 p−y、v、g′(z)、x₁。ReLU 折点不可微,程序约定导数不必等于中心差分。

记录只保留在当前页面,刷新会清空;请复制到自己的实验笔记。

03 让梯度下降慢走、振荡、发散

任务:分别设置 η=0.05、0.8、1.2,每次从初值开始走 10 步。

先写假设哪个设置稳定?“跨过谷底”是否一定意味着发散?
保持不变同一个 L(w)=(w−1)²,同一个初值 w=−2。

研究目的:区分移动慢、跨过谷底但收敛,以及真正发散。

  1. 点击“重置实验”,把“学习率 η”设为 0.05,点击一次“走 10 步”。
  2. 重置后设 η=0.80,再走 10 步;重置后设 η=1.20,再走 10 步。
  3. 记录三组第 10 步的 w 与损失,并用图上相邻位置判断振荡和距离变化。

观察与比较:损失函数、初值 w=−2 和步数均相同,只变 η。比较到最小值 w=1 的距离;修改学习率会清零步数。

加做挑战 · 完成基本任务后再试

设 η=1,连续点“走一步”四次。距离是否缩小?用 |1−2η| 给出这一函数的收敛条件。

思考:跨过谷底就发散吗?

不一定。本例误差每步乘以 1−2η。η=0.8 时符号交替但绝对值缩小;η=1.2 时绝对值放大。该条件仅针对这个二次损失。

记录只保留在当前页面,刷新会清空;请复制到自己的实验笔记。

04 改变容量,不先宣称性能

任务:计算 2–8–8–1、2–16–16–1 与逻辑回归的参数数量;用激活实验构造一个非线性风险项。

先写假设更多隐藏单元是否能保证更低的样本外损失?
保持不变输入与输出维度;先只改变结构,不改变数据。

研究目的:先说明模型能表达什么,再讨论它是否值得训练。

  1. 在上方结构控件选“隐藏层数 2”,将“每层隐藏单元”设为 8、16,分别记参数数。
  2. 将“隐藏层数”改为“0 · 逻辑回归”,核对参数是否与隐藏宽度无关。
  3. 在下方函数控件保持 v=1,将“折点距离 c”从 0.35 改为 0.70,观察黄线平坦区。

观察与比较:结构比较固定输入/输出维度;折点比较固定 v。两组控件是独立示范,改变宽度不会训练下方曲线或生成性能成绩。

加做挑战 · 完成基本任务后再试

保持 c=0.35,把 v 从 1 改为 2。斜率与折点分别怎样变化?解释为什么黄线不是概率。

思考:105、337、3 如何得到?

2–8–8–1:24+72+9=105;2–16–16–1:48+272+17=337;逻辑回归:2+1=3。每个输出单元含一个偏置。参数数不是样本外性能。

记录只保留在当前页面,刷新会清空;请复制到自己的实验笔记。

05 找到训练和验证分道扬镳的时刻

任务:λ=0 时先查看第 100 轮,再查看第 1000 轮;接着用“恢复早停权重”。

先写假设训练越久,验证损失是否必然下降?
保持不变同一生成样本、切分、seed=7、网络、优化器与学习率。

研究目的:从训练与验证的分歧识别过拟合和早停用途。

  1. 点击“重置实验”,确认“L2 λ”为 0。拖动“训练轮次”至输出 100,记两项交叉熵。
  2. 拖至输出 1000,重复记录并比较颜色图;轮次按 20 递增。
  3. 点击“恢复早停权重”,记录当前轮次与状态栏的首次停止轮次。

观察与比较:固定数据、初始化、结构与 λ,只比较训练阶段。早停恢复的是停止前最佳验证权重,恢复轮次不等于首次停止轮次。

加做挑战 · 完成基本任务后再试

如果每次看到测试损失才决定是否早停,测试承担了什么职责?写出应使用哪一份数据。

思考:第 1000 轮与早停权重能混称吗?

不能。1000 轮轨迹是继续训练的对照;早停每轮检查验证损失,耐心为 60 轮。显示检查点每隔 20 轮,但早停恢复轮次不受此刻度限制。

记录只保留在当前页面,刷新会清空;请复制到自己的实验笔记。

06 把正则化作为受控比较

任务:将 λ=0 与 λ=0.003 分别走到第 1000 轮;再比较各自早停模型。

先写假设正则化是否以更高的训练损失,换取更好的验证表现?
保持不变数据、初始化、训练预算完全相同;仅改变 λ。

研究目的:把 L2 的比较做成同预算、同初始化的受控实验。

  1. 选择“L2 λ=0”,把“训练轮次”设为 1000,记录训练和验证交叉熵。
  2. 只改选 λ=0.003,保持轮次 1000,再记录两项值。
  3. 分别在两个 λ 下点击“恢复早停权重”,记录各自恢复轮次和交叉熵。

观察与比较:先比较固定 1000 轮,再比较各自早停方案;这两种比较要分开报告。显示的交叉熵均不含 L2 惩罚项。

加做挑战 · 完成基本任务后再试

若 λ=0.003 在本次更好,为什么不能写“正则化一定改善泛化”?列出一个还需重复检验的条件。

思考:比较的损失是否都含惩罚项?

图中都是不含惩罚项的交叉熵,便于同尺度比较。训练目标加入 L2;这里是 Adam + L2,不是 AdamW。固定轮次与各自早停回答两个不同问题。

记录只保留在当前页面,刷新会清空;请复制到自己的实验笔记。

07 先锁定,再解释差异的不确定性

任务:先写下评价标准和模型方案,然后打开一次教学测试结果,比较 NN 与平方项模型。

先写假设差异的方向、大小与区间分别说明什么?
保持不变同一测试样本;预设网络 λ=0.003、seed=7、验证早停;四类模型已列定。

研究目的:在方案冻结后,解释独立评估的差异和不确定性。

  1. 先在下方记录框写明:以交叉熵比较 NN 与平方项模型,并注明预设网络方案。
  2. 点击一次“锁定方案并打开一次测试”,记录两者测试损失和差值 NN−平方项。
  3. 记录配对 bootstrap 区间及三个初始化的波动,写出结论;不要依据测试结果再选种子。

观察与比较:固定测试样本和预先列定的模型方案。区间描述配对样本差异;三个种子的标准差描述初始化波动,两者不能互换。

加做挑战 · 完成基本任务后再试

区间包含 0 是否等于两模型等效?若要研究等效,应事先约定什么实质差异界限?

思考:区间包含 0 能证明等效吗?

不能。它表示此配对区间未排除零差异;证明等效需事先规定等效界限并采用相应设计。三个种子的标准差不是总体置信区间。重置按钮也不能撤销已看过测试的知识。

记录只保留在当前页面,刷新会清空;请复制到自己的实验笔记。

提交一张研究迁移卡

选择自己的管理研究问题,用六项回答说明是否值得引入神经网络。

研究目的:把网页中的训练经验迁移为可执行的研究选择。

  1. 用虚构或去标识问题,在下方“研究迁移卡”按六项写出方案。
  2. 固定推广目标与评价数据,比较简单基线和神经网络;只在开发集选择结构与训练设置。
  3. 写一个放弃复杂模型的条件,阅读参考解释后修订;关闭页面前复制记录。

观察与比较:比较的是同一目标下的模型方案,不是两个不同数据集上的分数。写清结果能支持的预测主张和不能支持的因果主张。

加做挑战 · 完成基本任务后再试

如果神经网络只让验证损失略降,却显著增加维护成本,你会如何预先规定选择标准?

1 · 推广目标预测哪些未见单位、哪个未来时期?
2 · 简单基线只报比例、线性项、理论指定平方 / 交互项?
3 · 特征边界哪些信息在预测时点真实可得?
4 · 开发边界在哪里选结构、学习率、L2 与早停?
5 · 不确定性初始化变化与独立单位抽样如何区分?
6 · 理论边界预测发现能支持什么,还需要什么设计?
思考:六项是否足以让别人复做?

每项都应写出具体单位、数据边界或选择规则。只写“避免过拟合”不够;应写明验证方法、早停标准和最终测试何时打开。

合成图形不是现实证据;隐藏单元不是理论构念;预测收益不是因果效应。