M06:可选探索——改变一个变量观察梯度
今天只选择一个小变量,观察它怎样改变前向值、梯度或更新;也可以不实验,只补清链式法则。
内容类型:预习教材(不代表已完成)
日期:2026-08-29
阶段:P1 · AI Model Engineering 90
周次:W1 · 张量、梯度、autograd
节奏:周六可选探索 / 补课
状态:教材已备;学习未完成
标签:可选探索、激活函数、随机种子、梯度、补课
一句话定义
今天只选择一个小变量,观察它怎样改变前向值、梯度或更新;也可以不实验,只补清链式法则。
学习目标
- 练习单变量对照,而不是同时改网络、数据和超参数。
- 理解 seed、激活函数与网络深度各自影响的层面。
- 形成“预测—观察—解释—保留不确定性”的轻量记录方式。
- 在需要时用周六补齐 W1,而不是制造额外任务压力。
核心知识
随机种子控制伪随机序列,常影响参数初始化、数据打乱和随机采样。固定 seed 能提高同一环境下的可复现性,但不保证跨设备、跨版本完全逐位一致,也不能把一次随机结果变成普遍结论。更可靠的说法是:seed 帮助隔离变量,多次 seed 才能观察结论是否稳健。
激活函数决定局部导数怎样通过网络。sigmoid 输出有界但容易在大绝对输入上饱和;tanh 以零为中心但仍会饱和;ReLU 正区间梯度恒定、计算简单,却可能在负区间长期为零;GELU 等平滑门控在现代 Transformer 中常见。更换激活时,要比较输入分布、激活分布和梯度,而不仅是最终 loss。
增加网络深度会增加链式乘积长度。若各层局部导数持续小于 1,梯度可能随深度衰减;持续大于 1 则可能放大。残差连接为梯度提供接近恒等映射的路径,但并不保证训练必然稳定,归一化、初始化和学习率仍会共同作用。
机制与可选路线
只选一条:
- 路线 A:保持数据与权重相同,仅比较 ReLU 与 tanh 的激活和梯度。
- 路线 B:保持模型相同,仅换两个 seed,区分确定性流程与随机初始状态。
- 路线 C:比较一层和三层的梯度范数,关注链式乘积而非性能。
- 路线 D:不写代码,重新手推 M02,并解释每次乘法和累加。
实验前先写一个方向性预测。例如“tanh 输入尺度较大时,前层梯度可能更小”。实验后若观察不一致,先检查输入是否真的进入饱和区,而不是立刻否定机制。
最小练习或观察步骤
- 从四条路线中最多选一条。
- 明确唯一自变量、保持不变的条件和两个观察量。
- 写下运行前预测;没运行就停在这里也算合理安排。
- 若运行,只保存一条新观察,不扩展为调参任务。
- 若已感疲劳,改做 15 分钟概念回看后停止。
常见误区
- 同时换激活、seed 和学习率,最后无法解释差异来源。
- 把单次随机结果写成某激活“更好”的普遍结论。
- 只记录 loss,不记录与假设直接相关的激活或梯度。
- 周六可选任务不断扩张,挤占恢复时间。
- 未运行却提前填写结果或心得。
场景连接
在小样本风险模型中,不同 seed 可能造成指标波动。如果一个结论只在某次初始化成立,就不应直接转化为业务决策。单变量与多 seed 思维是后续模型比较的基础。
自检问题
- 固定 seed 能保证什么,不能保证什么?
- 激活饱和为什么会影响更早的层?
- 单变量实验中哪些条件必须保持一致?
- 今天跳过可选探索是否影响课程连续性?
专业课程对齐
- Stanford CS231n:选取优化与训练技巧相关讲义,对照不同激活、初始化和学习率怎样改变梯度传播。
- PyTorch Tutorials:选取 autograd、优化器或 profiler 示例,作为一次小范围代码探索的官方基线。
- MIT 6.S191:选读神经网络基础,帮助把实验变量放回整体训练机制。
深入学习提示
这是可选探索日,顺序应为“先提出一个可证伪问题 → 精读一个对应片段 → 只改一个变量”。例如固定数据与初值,仅比较学习率、激活函数或是否清梯度;记录梯度范数、loss 和参数更新量,而非只截最终曲线。公式上可观察链式乘积为何让深层梯度衰减或放大,代码上用 hook 或逐层 .grad 检查传播。反例是同时更换网络、优化器和数据后宣称某因素有效,或只挑一次随机种子。若时间不足,只阅读 CS231n 并写下假设即可;PyTorch 示例和 6.S191 均为选读,不要求为了“完成实验”扩大范围。
学后填写区
- 选择的路线(或“休息”):____
- 运行前预测:____
- 一条实际观察(未运行留空):____
- 仍需补课的概念:____
- 实际学习日期与用时:____