阶段:S1-基础概念与第一个实验 | 预计耗时:30 分钟(含一道手算题)| 前置:S0-02 张量速成 本篇是概念篇,不跑代码——但有一道必做的手算题。
学习目标
- 能用自己的话讲清 5 个词:模型、参数、损失、梯度下降、泛化
- 手算 3 步梯度下降,体会"训练 = 重复的乘法和减法",破除"AI 是魔法"的感觉
核心知识
1. 传统编程 vs 机器学习(方向反过来了)
| 输入 | 输出 | |
|---|---|---|
| 传统编程 | 数据 + 人写的规则 | 答案 |
| 机器学习 | 数据 + 人给的答案 | 规则(模型) |
机器学习就是你写不出规则时用的办法:你能攒 6 万张"图片+它是几"的数据,却写不出"怎样识别手写数字"的 if-else。
2. 五个核心词(用"学生刷题"类比)
| 词 | 是什么 | 类比 |
|---|---|---|
| 模型 | 一个带很多可调旋钮的函数:预测 = f(输入; 旋钮) |
学生的解题方法 |
| 参数 | 旋钮的当前值。MNIST 那个小模型有 206,922 个旋钮 | 解题习惯里的每个细节 |
| 损失 loss | 一个数,衡量"当前旋钮下错得有多离谱" | 卷面扣分 |
| 梯度下降 | 按梯度的反方向微调每个旋钮,loss 就会降 | 考完批改,针对薄弱点微调方法 |
| 泛化 | 在没见过的新题上也对 | 平时会的题,考试换数字还会 |
3. 训练的完整循环(提前看全景)
取一批数据 → 前向算预测 → 对照答案算 loss → 反向算梯度 → 更新参数 → 重复几万次
这就是 01_mnist_cnn.py 里那五行代码;后面 S4 篇会逐行解剖。
4. 为什么"梯度"指方向?
loss 是关于所有参数的函数。梯度告诉你:每个参数往哪边拧一点,loss 降得最快。所以更新永远是"参数 -= 学习率 × 梯度"。学习率(步子多大)是第一超参数——S5 会系统实验它。
实验任务
手算 3 步梯度下降(必做,用纸笔)
最小模型:只有一个参数 w,模型预测 y = w × x。数据只有一条:x=1,真实答案 y=2。损失 (预测-真实)²。
推导好的公式:loss = (w−2)²,梯度 = 2(w−2),学习率 0.1,从 w=0 出发。
| 步 | 当前 w | loss=(w−2)² | 梯度=2(w−2) | 更新后 w = w − 0.1×梯度 |
|---|---|---|---|---|
| 1 | 0 | 4 | −4 | 0.4 |
| 2 | 0.4 | 2.56 | −3.2 | 你算 |
| 3 | ? | ? | ? | 你算 |
做完后核对:w 是否在朝 2 逼近?这就是训练的全部本质——后面 206,922 个参数只是在同时做这件事。
用代码验证你的手算(5 分钟)
下一篇 S1-03 梯度与 autograd 的脚本会算同样的问题——如果代码和你纸上的结果一致,你就真正看见了"反向传播"。
验收标准
衔接下一阶段
概念就位 → S1-01 第一个训练实验:把这 5 个词在真实代码里对号入座(你已跑通基线,改动实验进行中)。