# 第 6 课教师讲稿｜两层小网络：先看误差怎样传回去

本课在 AIPath 的第 2 阶段，沿用原课主题“层层抽象：多层网络与反向传播”。建议 60 分钟，一人一台电脑。先预测、再手算一个中间结果，最后操作页面。网站中的宏大问题在本课缩小为一个可重复的小过程；课堂程序只承担下文写明的计算，不代表真实产品的完整行为。

## 学完能做什么

- 能从输入到损失完成两层小网络的前向计算。
- 能沿依赖路径算两个梯度，用有限差分核对，并从同一旧点同时更新。
- 能区分前向、反向与优化器职责，说明负区间截断与固定推理的条件。

贯穿问题：**不用别人直接给答案，怎样算出两个参数该改多少？**

## 课前准备与完整实验材料

教师先在本课页面找到“两参数网络前向、反向与同时更新”，核对输入框初始值。核心按钮名为“计算并查看过程”。请先自行完成默认、改变条件、独立题三次运行，确认本机能看到过程表；本地运算不需要账号或联网。初次投影时不要留着上一轮结果，让学生先在工作纸写预测。课堂使用学生工作纸，讲評再打开参考答案，避免学生边看答案边回填。

本页确实执行两参数小网络的一次前向、解析梯度、有限差分核对及同时更新。h=max(0,a×x)，预测=c×h，无偏置；所有参数由人给定初值。

- 输入 x（输入框 `x`）初始为：

```text
2
```

- 目标 y（输入框 `target`）初始为：

```text
4
```

- 第一层参数 a（输入框 `a`）初始为：

```text
1
```

- 第二层参数 c（输入框 `c`）初始为：

```text
1
```

- 学习率（输入框 `rate`）初始为：

```text
0.05
```

先手算 gc，再按路径推 ga。不要第一屏就宣读梯度答案。有限差分误差容许小数近似；z=0 是折点，程序清楚标注导数约定与中央差分可能不同。

## 0—60 分钟：可以顺着使用的讲稿

### 0—4 分钟｜把大词缩成两只盒子

教师可以这样说：“上一课检查训练以外的数据；今天回到训练内部。第一只盒子算 a 乘输入，负数截零，第二只盒子再乘 c。我们要让最后输出接近目标，两个旋钮都能影响结果，先把路径看清。”

**学生具体动作。** Q1 画 x→a×x→ReLU→c×h→输出，先猜该动哪个旋钮。

**教师在桌边怎样追问。** 两个旋钮的影响是否都直接碰到目标？

**本段要收集的证据。** 一条包含中间量 h 的路径。

### 4—8 分钟｜先前向，别急着改

教师可以这样说：“默认输入二，a 与 c 都是一。先从左往右算，得到每个中间数。前向的含义就是沿计算路径求值，不是往右画箭头就叫学习；此时没有改任何参数。”

**学生具体动作。** Q2 手算 z、h、预测与平方损失。

**教师在桌边怎样追问。** 算完损失时 a 与 c 是否已经变化？

**本段要收集的证据。** 旧参数和前向各数值留存。

### 8—12 分钟｜从输出差距开始

教师可以这样说：“预测差目标多少，平方损失在输出处的斜率就是两倍差距。先用上一课的规则解释这个局部量，再看它怎样经过第二盒传回第一盒。不要先给学生一串没有来路的梯度数。”

**学生具体动作。** 写输出差距和输出处斜率，标在路径最右侧。

**教师在桌边怎样追问。** 这里的两倍差距相对于哪个数变化？

**本段要收集的证据。** 输出处斜率与参数梯度未混同。

### 12—16 分钟｜先看后面那个旋钮

教师可以这样说：“c 每变一点，输出随 h 倍变化。因此损失对 c 的斜率，是输出处斜率乘当前 h。这里用的是旧点 h；参数还没有更新，所有计算都属于同一张旧状态照片。”

**学生具体动作。** Q2 手算 gc=2(预测−目标)×h。

**教师在桌边怎样追问。** 为什么这一条路径上乘的是 h，而不是 x？

**本段要收集的证据。** gc 的两个因子各有来源。

### 16—20 分钟｜再把影响传给前面旋钮

教师可以这样说：“a 的影响还要经过输入倍率、ReLU 开关与 c。正区间开关传递倍率一，负区间截零后本例局部倍率零。把沿路倍率相乘，就是这个小例子中链式关系的直观用法。”

**学生具体动作。** 手算 ga=2(预测−目标)×c×开关×x，再运行。

**教师在桌边怎样追问。** a 到输出比 c 到输出多经过哪几段？

**本段要收集的证据。** ga 的路径因子与图对应。

### 20—24 分钟｜给斜率作一个独立核对

教师可以这样说：“程序还把某个参数左右各挪十万分之一，比较损失差再除以两倍微小位移。这个有限差分只作核对，让学生看到斜率确实与局部变化有关，不能把数值近似当作所有网络的训练办法。”

**学生具体动作。** Q3 比较梯度与有限差分结果，指出哪个参数被单独扰动。

**教师在桌边怎样追问。** 核对 a 时为什么要保持 c 不变？

**本段要收集的证据。** 两种算法的同一旧点对照。

### 24—28 分钟｜同时更新不是轮流用新值

教师可以这样说：“现在才改旋钮。a 和 c 都从旧状态用刚算出的各自梯度更新。若先改 a 再拿新 a 重算 c 的梯度，那是另一套顺序，不能拿来复现本页这一步。”

**学生具体动作。** 把旧 a/c、各自梯度、学习率、新 a/c 写两行。

**教师在桌边怎样追问。** 计算第二个新参数时使用的是哪张状态照片？

**本段要收集的证据。** 两行更新共享同一旧点。

### 28—32 分钟｜更新以后重新跑一遍

教师可以这样说：“新的参数要从头前向，才能知道损失有没有下降。不能把旧 h 直接乘新 c 当成整个新网络结果。每当一个上游值变化，所有依赖它的后续量都要重算。”

**学生具体动作。** Q3 对新参数从 x 开始重算，核对新损失。

**教师在桌边怎样追问。** 旧 h 还能用于新参数的最终评价吗？

**本段要收集的证据。** 新前向不混入旧中间值。

### 32—36 分钟｜负数截断时会怎样

教师可以这样说：“只把默认 a 改成负一，其余恢复默认。先猜 h 与两条梯度。这个点上输出被截零，局部参数变化未必能通过；这是本例门控的结果，不能说所有神经网络都因此不会学。”

**学生具体动作。** Q3 在负区间运行并记录 h、梯度、更新后参数。

**教师在桌边怎样追问。** 在不跨过零的微小变化内，输出发生变化了吗？

**本段要收集的证据。** 零梯度与截断条件对应。

### 36—40 分钟｜独立从新旧状态分界开始

教师可以这样说：“Q4 使用输入一、目标三、a 一、c 二、学习率 0.1。先写旧状态，从中推每条梯度，再一起更新。教师只检查路径与材料，不报梯度值。”

**学生具体动作。** Q4 完整手算新题并注明每个量是旧点还是新点。

**教师在桌边怎样追问。** 你是否把教师默认输入二带入了这道题？

**本段要收集的证据。** 旧前向、梯度、更新、新前向四段齐全。

### 40—44 分钟｜独立核对微小扰动

教师可以这样说：“计算完再运行，找程序与纸面第一次不同的地方。若梯度相同而结果不同，优先检查同时更新及重新前向。不要只把最后损失改成屏幕值而不修正过程。”

**学生具体动作。** 继续 Q4，写一个差异定位或全程一致记录。

**教师在桌边怎样追问。** 第一处差异在前向、求梯度还是更新？

**本段要收集的证据。** 差异定位清楚且能复现。

### 44—48 分钟｜把职责交给三个角色

教师可以这样说：“让同伴分别扮演计算员、影响检查员、调参员。第一位只前向，第二位只求旧点影响，第三位才更新。借此区分反向传播与优化器，避免以为求梯度本身就已改参数。”

**学生具体动作。** Q5 给前向、反向、更新分别写职责。

**教师在桌边怎样追问。** 反向结束、更新没开始时，参数是多少？

**本段要收集的证据。** 三个职责及参数变化时刻清楚。

### 48—52 分钟｜此时才讲评独立答案

教师可以这样说：“独立题旧预测二、损失一，ga 为负四、gc 为负二。一起更新后 a=1.4、c=2.2，新预测 3.08、损失 0.0064。这个改进属于给定小例子，不能替代独立测试。”

**学生具体动作。** 修订 Q4，并解释两个梯度为什么不同。

**教师在桌边怎样追问。** 两个参数都影响同一个输出，为什么斜率不必相同？

**本段要收集的证据。** 答案解释不同路径倍率。

### 52—56 分钟｜把跳过连接放进一张小卡

教师可以这样说：“额外看残差卡：输入五，变换给负一，把原输入与变换相加得新输出。保留路径不等于保证学习成功，只是另一种信息通过结构。主实验仍以两盒同时更新为验收核心。”

**学生具体动作。** Q6 手算 h=5、F(h)=−1 的相加；再设 F(h)=0。

**教师在桌边怎样追问。** 变换为零时为什么原输入还能保留下来？

**本段要收集的证据。** 残差算式与普通串联区别。

### 56—60 分钟｜离堂不再背黑箱词

教师可以这样说：“最后用一句话说“先算结果，按依赖路径求影响，再按学习率改参数”。再说明今天实际执行的是两参数一步更新，不是训练一个大语言模型。能把术语对应到数值，才算完成。”

**学生具体动作。** Q6 提交路径图与旧新两张状态表。

**教师在桌边怎样追问。** 固定参数只作预测时，哪些步骤可以不做？

**本段要收集的证据。** 说明固定推理无需本次反向更新。

## 教师的概念备查：先用上面的观察，再补准确说法

这部分供备课和讲评时查阅，不要求在第一分钟连续宣读。学生已经看到一个过程后，再用相应名称为过程命名。需要回答更深问题时，先说明小实验所固定的条件，避免从一个算例直接跳到所有大模型。

### 多层表示与计算图

多层网络把上一层的输出作为下一层输入，使计算能够逐步组合与变换信息。隐藏层不是藏着人工写好的答案，而是输入输出之间的中间表示。图中的连线决定哪些数影响后续结果，前向计算必须沿依赖顺序完成。图像模型某些层可观察到边缘或部件相关特征，但不能据此把所有网络固定分成“语法层、语义层、推理层”，具体表示要通过模型分析验证。

可以补充的例子：本课h=ReLU(a×x)，ŷ=c×h；先算a×x和h，才能计算ŷ，不能跳过h直接套错误输入。

应当停住的推论：深度与宽度是结构选择；增加层数并不自动增加准确率。

### 前向结果与损失

前向传播指从输入经过各个算子得到输出；训练时再把输出与目标比较计算损失。前向中产生的中间结果在求梯度时会有用，因为早期参数通过这些中间值影响最后损失。推理也需要前向计算，却通常不需要目标、损失或反向过程。因此“网络跑了一遍”还不足以说明发生训练；必须看有没有求梯度和更新参数的实际步骤。

可以补充的例子：x=2、a=1、c=1得到h=2、ŷ=2，目标4对应L=(2-4)²=4。

应当停住的推论：本课模型没有偏置，输出层不使用ReLU，这两点都是题目明确规定的结构。

### 反向传播与优化器分工

反向传播依据计算图应用链式法则，计算损失对各参数的局部变化率，即梯度。它沿依赖关系复用中间计算，回答每个参数微小变化会如何影响损失，并不把错误平均分给各层，也不是人在反省。求出梯度后，优化器才依据学习率和更新规则改参数。今天不要求自己推导导数，只用题目提供且在该点成立的梯度数，重点把求梯度和更新拆成两步。

可以补充的例子：本课起点给定ga=-8、gc=-8；这两个数算出时a、c仍为1，执行η=0.05更新后才变成1.4。

应当停住的推论：梯度数相同是本例条件造成的，不是所有参数均分责任；不能把反向传播本身写成更新。

### 深度训练的困难与残差

增加计算链长度可以重组特征，但梯度经过许多局部变化率时可能变小或变大，优化也随之变难。残差连接让某些块输出写成输入加变换后的结果，提供一条额外路径，帮助信息与梯度传播。它不是跳过全部计算，也不是把损失直接搬回最初一层。真实网络还需要合适初始化、归一化、优化等设计；本课先看清路径，不声称一个连接就能保证任意深网络训练成功。

可以补充的例子：若某块输入h=2、变换F(h)=0.3，残差输出为2.3；F(h)=0时仍保留输入2。

应当停住的推论：“每层固定衰减一半”可作玩具例子，不能当真实网络的恒定规律。

## 后置讲评：独立尝试结束后才展开

Q2 默认 z=h=2，预测 2，L=4，输出处斜率 −4；gc=−4×2=−8；ga=−4×1×1×2=−8。Q3 a新=c新=1.4，新 h=2.8，预测 3.92，新损失 0.0064。有限差分在非折点近似上述梯度；不是新增训练目标。只改 a=−1 后 z=−2、h=0，两梯度 0，参数不动，损失 16。

Q4 旧 h=1，预测 2，L=1，输出处斜率 −2；ga=−2×2×1×1=−4，gc=−2×1=−2；同时更新 a=1.4、c=2.2，新预测 3.08、L=0.0064。先更新 a 再据新状态更新 c 不符合这道题。

Q5 前向算值、反向求梯度、优化器改参数；反向结束但尚未更新时参数仍为旧值。Q6 残差输出 4，F=0 时输出 5。固定推理需要前向，不要求提供本次目标、反向或更新。零点 ReLU 不可普通求导，程序采用 0 的约定；中央差分在折点不必吻合，不能判作通用错误。

## 板书、补救与课后加深

- 旧状态：x→z→h→预测→损失。
- 反向：每段局部倍率连乘，求旧点 ga、gc。
- 同一旧点同时更新 → 从头前向 → 新损失。

使用本页相同的输入、步骤与判定规则在纸上完成，必要时用普通计算器。保留预测、中间量和最后核对，注明实际完成的是纸面复算。没有外部 AI 调用，不把这项工作说成已经得到某个产品的真实效果。

推导本课两条梯度公式，做微小扰动的数值验证；再用自动微分工具运行一次真实前向、backward和优化器step，逐项检查梯度与参数文件变化。 深化内容另计时间；先保证本课独立练习完成。

## 来源和实际完成范围

- [AIPath 对应课](https://aipath.buynao.com/#/lesson/06-deep-networks-backprop)：用作课序与主题对应。
- [Google：Nodes and hidden layers](https://developers.google.com/machine-learning/crash-course/neural-networks/nodes-hidden-layers)：核对加权求和、隐藏层和线性层复合；人工小算例独立编写。
- [PyTorch：Automatic Differentiation with torch.autograd](https://docs.pytorch.org/tutorials/beginner/basics/autogradqs_tutorial.html)：核对计算图、反向求梯度和梯度计算不等于参数更新。
- [Vaswani et al.：Attention Is All You Need（2017）](https://arxiv.org/abs/1706.03762)：核对查询、键、值、注意力加权及 Transformer 构件；不把原论文架构当所有产品的内部图。
- [He et al.：Deep Residual Learning for Image Recognition（2015）](https://arxiv.org/abs/1512.03385)：核对残差函数与输入路径的原始研究依据；不将“残差有益”扩大成任意深度必然更好。

新增实验在浏览器本地计算，已用随课测试核对指定条件。纸面样本是为解释机制编写的，不是实际业务数据；未在此训练大模型，未做真人试教。


## 逐分钟安排

| 时间 | 教师讲解与操作 | 学生活动 | 检查结果 |
|---|---|---|---|
| 00:00—01:00 | 上一课检查训练以外的数据；今天回到训练内部。第一只盒子算 a 乘输入，负数截零，第二只盒子再乘 c。我们要让最后输出接近目标，两个旋钮都能影响结果，先把路径看清。 | 在工作纸记录本段问题：把大词缩成两只盒子 | 保留一句关于“把大词缩成两只盒子”的原始解释 |
| 01:00—02:00 | 把本段材料留在屏幕，说明操作：Q1 画 x→a×x→ReLU→c×h→输出，先猜该动哪个旋钮 | Q1 画 x→a×x→ReLU→c×h→输出，先猜该动哪个旋钮 | 一条包含中间量 h 的路径 |
| 02:00—03:00 | 逐人检查记录；只追问：两个旋钮的影响是否都直接碰到目标？ | 对照刚才的输入和输出，回答：两个旋钮的影响是否都直接碰到目标？ | 回答中标出本段的输入条件和一个中间量 |
| 03:00—04:00 | 请一位学生读记录，检查是否完成：一条包含中间量 h 的路径。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在把大词缩成两只盒子旁保留修订痕迹 | 一条包含中间量 h 的路径 |
| 04:00—05:00 | 默认输入二，a 与 c 都是一。先从左往右算，得到每个中间数。前向的含义就是沿计算路径求值，不是往右画箭头就叫学习；此时没有改任何参数。 | 在工作纸记录本段问题：先前向，别急着改 | 保留一句关于“先前向，别急着改”的原始解释 |
| 05:00—06:00 | 把本段材料留在屏幕，说明操作：Q2 手算 z、h、预测与平方损失 | Q2 手算 z、h、预测与平方损失 | 旧参数和前向各数值留存 |
| 06:00—07:00 | 逐人检查记录；只追问：算完损失时 a 与 c 是否已经变化？ | 对照刚才的输入和输出，回答：算完损失时 a 与 c 是否已经变化？ | 回答中标出本段的输入条件和一个中间量 |
| 07:00—08:00 | 请一位学生读记录，检查是否完成：旧参数和前向各数值留存。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在先前向，别急着改旁保留修订痕迹 | 旧参数和前向各数值留存 |
| 08:00—09:00 | 预测差目标多少，平方损失在输出处的斜率就是两倍差距。先用上一课的规则解释这个局部量，再看它怎样经过第二盒传回第一盒。不要先给学生一串没有来路的梯度数。 | 在工作纸记录本段问题：从输出差距开始 | 保留一句关于“从输出差距开始”的原始解释 |
| 09:00—10:00 | 把本段材料留在屏幕，说明操作：写输出差距和输出处斜率，标在路径最右侧 | 写输出差距和输出处斜率，标在路径最右侧 | 输出处斜率与参数梯度未混同 |
| 10:00—11:00 | 逐人检查记录；只追问：这里的两倍差距相对于哪个数变化？ | 对照刚才的输入和输出，回答：这里的两倍差距相对于哪个数变化？ | 回答中标出本段的输入条件和一个中间量 |
| 11:00—12:00 | 请一位学生读记录，检查是否完成：输出处斜率与参数梯度未混同。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在从输出差距开始旁保留修订痕迹 | 输出处斜率与参数梯度未混同 |
| 12:00—13:00 | c 每变一点，输出随 h 倍变化。因此损失对 c 的斜率，是输出处斜率乘当前 h。这里用的是旧点 h；参数还没有更新，所有计算都属于同一张旧状态照片。 | 在工作纸记录本段问题：先看后面那个旋钮 | 保留一句关于“先看后面那个旋钮”的原始解释 |
| 13:00—14:00 | 把本段材料留在屏幕，说明操作：Q2 手算 gc=2(预测−目标)×h | Q2 手算 gc=2(预测−目标)×h | gc 的两个因子各有来源 |
| 14:00—15:00 | 逐人检查记录；只追问：为什么这一条路径上乘的是 h，而不是 x？ | 对照刚才的输入和输出，回答：为什么这一条路径上乘的是 h，而不是 x？ | 回答中标出本段的输入条件和一个中间量 |
| 15:00—16:00 | 请一位学生读记录，检查是否完成：gc 的两个因子各有来源。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在先看后面那个旋钮旁保留修订痕迹 | gc 的两个因子各有来源 |
| 16:00—17:00 | a 的影响还要经过输入倍率、ReLU 开关与 c。正区间开关传递倍率一，负区间截零后本例局部倍率零。把沿路倍率相乘，就是这个小例子中链式关系的直观用法。 | 在工作纸记录本段问题：再把影响传给前面旋钮 | 保留一句关于“再把影响传给前面旋钮”的原始解释 |
| 17:00—18:00 | 把本段材料留在屏幕，说明操作：手算 ga=2(预测−目标)×c×开关×x，再运行 | 手算 ga=2(预测−目标)×c×开关×x，再运行 | ga 的路径因子与图对应 |
| 18:00—19:00 | 逐人检查记录；只追问：a 到输出比 c 到输出多经过哪几段？ | 对照刚才的输入和输出，回答：a 到输出比 c 到输出多经过哪几段？ | 回答中标出本段的输入条件和一个中间量 |
| 19:00—20:00 | 请一位学生读记录，检查是否完成：ga 的路径因子与图对应。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在再把影响传给前面旋钮旁保留修订痕迹 | ga 的路径因子与图对应 |
| 20:00—21:00 | 程序还把某个参数左右各挪十万分之一，比较损失差再除以两倍微小位移。这个有限差分只作核对，让学生看到斜率确实与局部变化有关，不能把数值近似当作所有网络的训练办法。 | 在工作纸记录本段问题：给斜率作一个独立核对 | 保留一句关于“给斜率作一个独立核对”的原始解释 |
| 21:00—22:00 | 把本段材料留在屏幕，说明操作：Q3 比较梯度与有限差分结果，指出哪个参数被单独扰动 | Q3 比较梯度与有限差分结果，指出哪个参数被单独扰动 | 两种算法的同一旧点对照 |
| 22:00—23:00 | 逐人检查记录；只追问：核对 a 时为什么要保持 c 不变？ | 对照刚才的输入和输出，回答：核对 a 时为什么要保持 c 不变？ | 回答中标出本段的输入条件和一个中间量 |
| 23:00—24:00 | 请一位学生读记录，检查是否完成：两种算法的同一旧点对照。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在给斜率作一个独立核对旁保留修订痕迹 | 两种算法的同一旧点对照 |
| 24:00—25:00 | 现在才改旋钮。a 和 c 都从旧状态用刚算出的各自梯度更新。若先改 a 再拿新 a 重算 c 的梯度，那是另一套顺序，不能拿来复现本页这一步。 | 在工作纸记录本段问题：同时更新不是轮流用新值 | 保留一句关于“同时更新不是轮流用新值”的原始解释 |
| 25:00—26:00 | 把本段材料留在屏幕，说明操作：把旧 a/c、各自梯度、学习率、新 a/c 写两行 | 把旧 a/c、各自梯度、学习率、新 a/c 写两行 | 两行更新共享同一旧点 |
| 26:00—27:00 | 逐人检查记录；只追问：计算第二个新参数时使用的是哪张状态照片？ | 对照刚才的输入和输出，回答：计算第二个新参数时使用的是哪张状态照片？ | 回答中标出本段的输入条件和一个中间量 |
| 27:00—28:00 | 请一位学生读记录，检查是否完成：两行更新共享同一旧点。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在同时更新不是轮流用新值旁保留修订痕迹 | 两行更新共享同一旧点 |
| 28:00—29:00 | 新的参数要从头前向，才能知道损失有没有下降。不能把旧 h 直接乘新 c 当成整个新网络结果。每当一个上游值变化，所有依赖它的后续量都要重算。 | 在工作纸记录本段问题：更新以后重新跑一遍 | 保留一句关于“更新以后重新跑一遍”的原始解释 |
| 29:00—30:00 | 把本段材料留在屏幕，说明操作：Q3 对新参数从 x 开始重算，核对新损失 | Q3 对新参数从 x 开始重算，核对新损失 | 新前向不混入旧中间值 |
| 30:00—31:00 | 逐人检查记录；只追问：旧 h 还能用于新参数的最终评价吗？ | 对照刚才的输入和输出，回答：旧 h 还能用于新参数的最终评价吗？ | 回答中标出本段的输入条件和一个中间量 |
| 31:00—32:00 | 请一位学生读记录，检查是否完成：新前向不混入旧中间值。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在更新以后重新跑一遍旁保留修订痕迹 | 新前向不混入旧中间值 |
| 32:00—33:00 | 只把默认 a 改成负一，其余恢复默认。先猜 h 与两条梯度。这个点上输出被截零，局部参数变化未必能通过；这是本例门控的结果，不能说所有神经网络都因此不会学。 | 在工作纸记录本段问题：负数截断时会怎样 | 保留一句关于“负数截断时会怎样”的原始解释 |
| 33:00—34:00 | 把本段材料留在屏幕，说明操作：Q3 在负区间运行并记录 h、梯度、更新后参数 | Q3 在负区间运行并记录 h、梯度、更新后参数 | 零梯度与截断条件对应 |
| 34:00—35:00 | 逐人检查记录；只追问：在不跨过零的微小变化内，输出发生变化了吗？ | 对照刚才的输入和输出，回答：在不跨过零的微小变化内，输出发生变化了吗？ | 回答中标出本段的输入条件和一个中间量 |
| 35:00—36:00 | 请一位学生读记录，检查是否完成：零梯度与截断条件对应。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在负数截断时会怎样旁保留修订痕迹 | 零梯度与截断条件对应 |
| 36:00—37:00 | Q4 使用输入一、目标三、a 一、c 二、学习率 0.1。先写旧状态，从中推每条梯度，再一起更新。教师只检查路径与材料，不报梯度值。 | 在工作纸记录本段问题：独立从新旧状态分界开始 | 保留一句关于“独立从新旧状态分界开始”的原始解释 |
| 37:00—38:00 | 把本段材料留在屏幕，说明操作：Q4 完整手算新题并注明每个量是旧点还是新点 | Q4 完整手算新题并注明每个量是旧点还是新点 | 旧前向、梯度、更新、新前向四段齐全 |
| 38:00—39:00 | 逐人检查记录；只追问：你是否把教师默认输入二带入了这道题？ | 对照刚才的输入和输出，回答：你是否把教师默认输入二带入了这道题？ | 回答中标出本段的输入条件和一个中间量 |
| 39:00—40:00 | 请一位学生读记录，检查是否完成：旧前向、梯度、更新、新前向四段齐全。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在独立从新旧状态分界开始旁保留修订痕迹 | 旧前向、梯度、更新、新前向四段齐全 |
| 40:00—41:00 | 计算完再运行，找程序与纸面第一次不同的地方。若梯度相同而结果不同，优先检查同时更新及重新前向。不要只把最后损失改成屏幕值而不修正过程。 | 在工作纸记录本段问题：独立核对微小扰动 | 保留一句关于“独立核对微小扰动”的原始解释 |
| 41:00—42:00 | 把本段材料留在屏幕，说明操作：继续 Q4，写一个差异定位或全程一致记录 | 继续 Q4，写一个差异定位或全程一致记录 | 差异定位清楚且能复现 |
| 42:00—43:00 | 逐人检查记录；只追问：第一处差异在前向、求梯度还是更新？ | 对照刚才的输入和输出，回答：第一处差异在前向、求梯度还是更新？ | 回答中标出本段的输入条件和一个中间量 |
| 43:00—44:00 | 请一位学生读记录，检查是否完成：差异定位清楚且能复现。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在独立核对微小扰动旁保留修订痕迹 | 差异定位清楚且能复现 |
| 44:00—45:00 | 让同伴分别扮演计算员、影响检查员、调参员。第一位只前向，第二位只求旧点影响，第三位才更新。借此区分反向传播与优化器，避免以为求梯度本身就已改参数。 | 在工作纸记录本段问题：把职责交给三个角色 | 保留一句关于“把职责交给三个角色”的原始解释 |
| 45:00—46:00 | 把本段材料留在屏幕，说明操作：Q5 给前向、反向、更新分别写职责 | Q5 给前向、反向、更新分别写职责 | 三个职责及参数变化时刻清楚 |
| 46:00—47:00 | 逐人检查记录；只追问：反向结束、更新没开始时，参数是多少？ | 对照刚才的输入和输出，回答：反向结束、更新没开始时，参数是多少？ | 回答中标出本段的输入条件和一个中间量 |
| 47:00—48:00 | 请一位学生读记录，检查是否完成：三个职责及参数变化时刻清楚。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在把职责交给三个角色旁保留修订痕迹 | 三个职责及参数变化时刻清楚 |
| 48:00—49:00 | 独立题旧预测二、损失一，ga 为负四、gc 为负二。一起更新后 a=1.4、c=2.2，新预测 3.08、损失 0.0064。这个改进属于给定小例子，不能替代独立测试。 | 在工作纸记录本段问题：此时才讲评独立答案 | 保留一句关于“此时才讲评独立答案”的原始解释 |
| 49:00—50:00 | 把本段材料留在屏幕，说明操作：修订 Q4，并解释两个梯度为什么不同 | 修订 Q4，并解释两个梯度为什么不同 | 答案解释不同路径倍率 |
| 50:00—51:00 | 逐人检查记录；只追问：两个参数都影响同一个输出，为什么斜率不必相同？ | 对照刚才的输入和输出，回答：两个参数都影响同一个输出，为什么斜率不必相同？ | 回答中标出本段的输入条件和一个中间量 |
| 51:00—52:00 | 请一位学生读记录，检查是否完成：答案解释不同路径倍率。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在此时才讲评独立答案旁保留修订痕迹 | 答案解释不同路径倍率 |
| 52:00—53:00 | 额外看残差卡：输入五，变换给负一，把原输入与变换相加得新输出。保留路径不等于保证学习成功，只是另一种信息通过结构。主实验仍以两盒同时更新为验收核心。 | 在工作纸记录本段问题：把跳过连接放进一张小卡 | 保留一句关于“把跳过连接放进一张小卡”的原始解释 |
| 53:00—54:00 | 把本段材料留在屏幕，说明操作：Q6 手算 h=5、F(h)=−1 的相加；再设 F(h)=0 | Q6 手算 h=5、F(h)=−1 的相加；再设 F(h)=0 | 残差算式与普通串联区别 |
| 54:00—55:00 | 逐人检查记录；只追问：变换为零时为什么原输入还能保留下来？ | 对照刚才的输入和输出，回答：变换为零时为什么原输入还能保留下来？ | 回答中标出本段的输入条件和一个中间量 |
| 55:00—56:00 | 请一位学生读记录，检查是否完成：残差算式与普通串联区别。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在把跳过连接放进一张小卡旁保留修订痕迹 | 残差算式与普通串联区别 |
| 56:00—57:00 | 最后用一句话说“先算结果，按依赖路径求影响，再按学习率改参数”。再说明今天实际执行的是两参数一步更新，不是训练一个大语言模型。能把术语对应到数值，才算完成。 | 在工作纸记录本段问题：离堂不再背黑箱词 | 保留一句关于“离堂不再背黑箱词”的原始解释 |
| 57:00—58:00 | 把本段材料留在屏幕，说明操作：Q6 提交路径图与旧新两张状态表 | Q6 提交路径图与旧新两张状态表 | 说明固定推理无需本次反向更新 |
| 58:00—59:00 | 逐人检查记录；只追问：固定参数只作预测时，哪些步骤可以不做？ | 对照刚才的输入和输出，回答：固定参数只作预测时，哪些步骤可以不做？ | 回答中标出本段的输入条件和一个中间量 |
| 59:00—60:00 | 请一位学生读记录，检查是否完成：说明固定推理无需本次反向更新。未完成者先补材料，不用口号替代依据。 | 将本段观察写为“条件—过程—结果”，在离堂不再背黑箱词旁保留修订痕迹 | 说明固定推理无需本次反向更新 |

---

# 第 6 课参考答案与评分｜两层小网络：先看误差怎样传回去

仅在独立题结束后展开。首次预测不按对错扣分；下列固定算例的答案来自明确的输入与算法。

Q2 默认 z=h=2，预测 2，L=4，输出处斜率 −4；gc=−4×2=−8；ga=−4×1×1×2=−8。Q3 a新=c新=1.4，新 h=2.8，预测 3.92，新损失 0.0064。有限差分在非折点近似上述梯度；不是新增训练目标。只改 a=−1 后 z=−2、h=0，两梯度 0，参数不动，损失 16。

Q4 旧 h=1，预测 2，L=1，输出处斜率 −2；ga=−2×2×1×1=−4，gc=−2×1=−2；同时更新 a=1.4、c=2.2，新预测 3.08、L=0.0064。先更新 a 再据新状态更新 c 不符合这道题。

Q5 前向算值、反向求梯度、优化器改参数；反向结束但尚未更新时参数仍为旧值。Q6 残差输出 4，F=0 时输出 5。固定推理需要前向，不要求提供本次目标、反向或更新。零点 ReLU 不可普通求导，程序采用 0 的约定；中央差分在折点不必吻合，不能判作通用错误。

## 10 分评分

- Q1—Q2：保留预测并正确展示默认条件的一个手算中间量，2 分；不因预测猜错扣分。
- Q3：按题目只改一个条件，记录原值、新值和实际变化，2 分。
- Q4：独立材料中的计算或检查过程可复算，2 分。
- Q5：解释本课机制并指出证据对应哪一步，2 分。
- Q6：迁移题与离堂题明确实验边界，2 分。

评分时应接受含义相同的学生表述。若输入条件与题目不同，先标记为另一轮实验，再要求补做指定条件；不要将不同条件的输出直接判成同一题的答案。
