LLM 底层原理 · Day 2 番外|给完全小白的「旋钮、折线与下山」版
系列总目录:《LLM 底层原理 · 系列学习计划》 · 对应主线:Day 2|从函数到神经网络 · 上一篇地图:Day 1
主线 Day 2 里出现了向量、矩阵、偏导、链式法则 —— 若你一看就晕,非常正常。这篇 不追求严谨,只用生活比喻和 一位数级别的算术,把 Day 2 想讲的五件事再说一遍:
- 参数到底是什么。
- **一层「线性」**在算什么(先不用矩阵语言)。
- 为什么要 ReLU 这类东西(没有它会怎样)。
- 损失在度量什么。
- 梯度下降在干什么(和 Day 3 反向传播怎么接上)。
读完若觉得「好像能跟上了」,再回去扫 Day 2 的公式,会轻松很多。
1. 把神经网络想成「带很多旋钮的机器」
- 输入:一串数字(Day 1 里以后会是 token 变来的向量,你现在就当「几个数」)。
- 输出:也是一个数或一串数(例如「下一个词的概率」前要算出的 中间结果)。
- 参数:机器内部有一大堆 可调的数字,训练时 只改这些数字,不改「机器有几层、每层怎么接线」这种 结构。
把每个参数想象成一个 旋钮:旋钮转一转,同样的输入,输出会变。训练就是:给机器看很多「输入 + 正确答案」的例子,自动算「每个旋钮该往哪边拧一点」,让输出越来越接近答案。
Day 2 里写的 、、,本质上都是 这些旋钮的集合;矩阵只是「把成千上万个旋钮整齐地写在表格里」的记法。
2. 「线性一层」= 加权求和 + 偏置(超小号例子)
先忘掉矩阵。假设输入只有 一个数 。
一层可以写成:
- :权重(这个输入有多重要)。
- :偏置(整体平移一下)。
例子:,, → 。
输入有多个数时,就是「每个输入各乘一个权重,全部加起来,再加一个偏置」—— 和「线性回归」是同一类式子,只是项数变多。Day 2 的 就是把很多个这样的式子 打包 成一行行计算。
3. 为什么要 ReLU?没有它,叠很多层也像「一条直线」
若只有上面的线性式子,你把很多层串起来:
数学上可以证明:最后仍等价于一次大的「乘加」 —— 就像把很多步「先乘再加」合并成一步,折不出弯来。
而现实里的规律常常是 弯的(例如:小到某个阈值是一种行为,大了又变)。所以需要中间插一层 非线性:对每个数做一个 固定规则 的变形。ReLU 的规则超级简单:
若为负,变 ;若为正,保持不变。这样整条函数图像会出现 折角,多层叠起来才能拼出 分段、弯曲 的形状,近似复杂关系。
Day 2 一句话版:没有非线性,深网络不会比浅网络更「能弯」;LLM 里常用的是 GELU 这类更平滑的变体,角色和 ReLU 类似 —— 都是「制造弯折」。
4. 损失 = 「错得有多离谱」的一个数
训练时要有一个 标量(就一个数)告诉机器:当前这一题错得有多离谱。Day 2 用 均方误差 练手:
- :模型输出。
- :标准答案。
- 差得越大,平方后 越大。
直觉例子:若 ,,误差 ,平方后是 ,再乘 得 。你 把 往 5 拉近, 就会变小 —— 训练就是在干这件事。
语言模型里更常用 交叉熵(对一整排概率),那是 Day 5 以后的事;先习惯「有一个 要变小」 就够接上主线。
5. 梯度下降 = 在「山坡」上往下走一小步
把 所有旋钮 排成一长串,想象成一个 很多维的山坡,高度就是 。
- 梯度:告诉你「朝哪个方向走, 涨得最快」。
- 我们想 减小 ,所以往 相反方向 走一小步:
- :学习率,步长。太大可能 跨过谷底乱抖,太小 练得慢。
不必会算梯度:Day 3 的 反向传播 就是「系统化算每个旋钮上的梯度」。你只要先记住:训练每一步 = 看一批数据 → 算 → 算各参数的梯度 → 按上式拧旋钮。
6. 链式法则(用「接力」理解,不算式子也行)
Day 2 里的 要经过中间变量,像 接力:
- 先依赖 , 再依赖 , 再依赖 , 再依赖 。
- 「 对 有多敏感」= 每一棒 敏感程度 乘起来(这就是链式法则的直觉)。
你暂时 不会乘也没关系;读到 Day 3 会画成 计算图,把「接力」变成固定算法。本篇目标 只是:别被符号吓到 —— 它描述的就是 误差怎么一层层传回每个旋钮。
7. 和主线 Day 2 怎么对照读?
| 你心里先有的画面(本篇) | 回到 Day 2 看哪一节 |
|---|---|
| 旋钮 = 参数 | §1、§2 的 |
| 加权求和 | §2 线性层 |
| 折线、弯 | §3 激活函数 |
| 错得多远 | §5 损失 |
| 下山拧旋钮 | §6 梯度下降 |
| 接力传敏感度 | §7 手推 + Day 3 预告 |
自测(不用微积分)
Q1. 只有线性层、没有 ReLU,把三层叠在一起,表达能力一定比一层更强吗?
要点
不一定更强:可能和一层大的线性等价,因为多层线性仍可合并成一次线性变换。
Q2. ReLU 对 输出多少?对 输出多少?
要点
→ ; → (负数变 0,正数不变)。
Q3. 梯度下降里为什么要 减 梯度,而不是加?
要点
梯度指向 上升最快的方向;要 减小 损失,应沿 反方向 走。
下一读什么?
- 若 Day 2 正文 仍吃力:只再读 Day 2 的 §1~§3(到两层 MLP 数据流为止),§7 手推可跳过。
- 若已 不怵「接力」:Day 3|反向传播与计算图 会把求梯度变成可跟着画的流程。
延伸阅读(可选)
- 用纸画三个框:输入 → 线性 → ReLU → 线性 → 输出,箭头标上「数从哪流到哪」。
- 想一句话讲给家人听:神经网络就是很多旋钮;训练就是自动拧旋钮,让输出别离标准答案太远。