从这里开始
大学里的符号忘得差不多了也没关系。按这条线走:认识符号,理解向量,掌握概率,学会求导。
从符号速查认字,到A1 向量建立坐标直觉,再看P1 概率——模型说的每一句话都是分布——最后用C1 梯度理解「猜错了就改一点」。
每个大类只留一个可动手的演示,其余是静图。先感受,再看公式。公式下面都标了对应模型页的哪一章。
数学符号速查表
数学符号就像外语,认识了就不吓人。这里列出大模型里最常用的符号,包括怎么读、什么意思、在哪儿用。
希腊字母(最常用)
| 符号 | 读音 | 用途 | 常见场景 |
|---|---|---|---|
| $\alpha$ | 阿尔法 | 学习率、权重系数 | Adam 优化器里的学习率 |
| $\beta$ | 贝塔 | 动量系数、超参数 | Adam 的 $\beta_1, \beta_2$ |
| $\gamma$ | 伽马 | 折扣因子 | 强化学习的奖励折扣 |
| $\delta$ | 德尔塔 | 误差、变化量 | 反向传播的误差项 $\delta$ |
| $\epsilon$ | 艾普西隆 | 很小的数 | 防止除零:$x/(y+\epsilon)$ |
| $\theta$ | 西塔 | 参数向量 | 模型所有参数 $\theta = \{W, b\}$ |
| $\lambda$ | 兰姆达 | 特征值、正则化系数 | L2 正则:$\lambda\lVert W\rVert^2$ |
| $\mu$ | 缪 | 均值 | 高斯分布的均值 $\mu$ |
| $\sigma$ | 西格玛 | 标准差、激活函数 | 高斯分布的 $\sigma$,Sigmoid $\sigma(x)$ |
| $\Sigma$ | 大写西格玛 | 求和、协方差矩阵 | $\sum_{i=1}^{n} x_i$ |
| $\phi$ | 斐 | 特征函数 | 特征映射 $\phi(x)$ |
| $\omega$ | 欧米伽 | 频率、权重 | 傅里叶变换的角频率 |
运算符号
| 符号 | 读音 | 用途 | 常见场景 |
|---|---|---|---|
| $\nabla$ | 纳布拉(梯度) | 梯度算子 | $\nabla f$ 是 $f$ 的梯度向量 |
| $\partial$ | 偏导数 | 偏导数符号 | $\frac{\partial f}{\partial x}$ 对 $x$ 求偏导 |
| $\int$ | 积分 | 积分符号 | $\int_a^b f(x)dx$ 从 $a$ 到 $b$ 积分 |
| $\sum$ | 求和 | 累加 | $\sum_{i=1}^{n} x_i = x_1+x_2+\cdots+x_n$ |
| $\prod$ | 连乘 | 累乘 | $\prod_{i=1}^{n} x_i = x_1 \cdot x_2 \cdot \cdots \cdot x_n$ |
| $\propto$ | 正比于 | 正比关系 | $y \propto x$ 表示 $y = cx$ ($c$ 是常数) |
| $\approx$ | 约等于 | 近似相等 | $\pi \approx 3.14$ |
| $\equiv$ | 恒等于 | 定义相等 | $(a+b)^2 \equiv a^2+2ab+b^2$ |
集合与逻辑
| 符号 | 读音 | 用途 | 常见场景 |
|---|---|---|---|
| $\in$ | 属于 | 元素关系 | $x \in \mathbb{R}$ 表示 $x$ 是实数 |
| $\mathbb{R}$ | 实数集 | 所有实数 | $\mathbb{R}^n$ 是 $n$ 维实向量空间 |
| $\mathbb{R}^{m\times n}$ | 实矩阵 | $m$ 行 $n$ 列矩阵 | 权重矩阵 $W \in \mathbb{R}^{d\times k}$ |
| $\forall$ | 对所有 | 全称量词 | $\forall x, f(x) > 0$ 表示任意 $x$ 都满足 |
| $\exists$ | 存在 | 存在量词 | $\exists x, f(x)=0$ 表示至少有一个 $x$ 满足 |
| $\mid$ | 给定、条件 | 条件概率 | $P(A\mid B)$ 表示 $B$ 发生条件下 $A$ 的概率 |
| $\sim$ | 服从分布 | 概率分布 | $X \sim \mathcal{N}(0,1)$ 表示 $X$ 服从标准正态分布 |
矩阵运算
| 符号 | 读音 | 用途 | 常见场景 |
|---|---|---|---|
| $A^{\top}$ | A 转置 | 矩阵转置 | 行变列,$(A^{\top})_{ij} = A_{ji}$ |
| $A^{-1}$ | A 逆 | 矩阵的逆 | $AA^{-1} = I$ |
| $\lVert \mathbf{v} \rVert$ | v 的范数 | 向量长度 | $\lVert \mathbf{v} \rVert_2 = \sqrt{v_1^2+\cdots+v_n^2}$ |
| $\langle \mathbf{u}, \mathbf{v} \rangle$ | u v 内积 | 向量内积 | $\langle \mathbf{u}, \mathbf{v} \rangle = \sum_i u_i v_i$ |
| $\odot$ | 哈达玛积 | 逐元素乘法 | $(A \odot B)_{ij} = A_{ij} \cdot B_{ij}$ |
| $\otimes$ | 张量积/克罗内克积 | 张量积 | LoRA 分解用到 |
| $\text{tr}(A)$ | A 的迹 | 对角线元素和 | $\text{tr}(A) = \sum_i A_{ii}$ |
| $\det(A)$ 或 $|A|$ | A 的行列式 | 行列式 | 可逆当且仅当 $\det(A) \ne 0$ |
💡 记忆技巧:不用死记所有符号。看到陌生符号时,回来查这张表。多看几次自然就记住了。重点是理解它们代表什么操作,而不是死背名字。
1. 向量和内积可视化
3. Softmax 函数
• 所有输出概率和为 1
• T 越小分布越尖锐(确定性强)
• T 越大分布越平坦(随机性强)
4. 梯度下降优化
• 学习率太大会振荡甚至发散
• 学习率太小收敛很慢
• 梯度下降沿着最陡的下坡方向走
💡 使用提示: 拖动滑块观察变化 → 在调整前先预测会怎样 → 验证你的直觉 → 尝试极端值看看边界情况。
5. 矩阵乘法:手动走一遍
提示:矩阵乘法 Cij = Σk AikBkj。拖动行列滑块,看亮起的格子——A 的「第 i 行」和 B 的「第 j 列」逐元素相乘再求和,就得到 C 的 (i,j) 元素。这就是神经网络前向传播的核心运算。
6. 激活函数对比
• ReLU 梯度不消失,但负数输出全为 0
• Sigmoid 把输出压到 (0,1),容易梯度消失
• Tanh 输出 (-1,1),比 Sigmoid 更居中
• GELU 是 GPT 系列首选,平滑版 ReLU
7. 矩阵变换:单位方格去哪了
• 变换前的方格是单位网格
• 变换后格子形状改变,但原点不变(线性变换)
• 行列式 |det A| = 面积缩放比
• 旋转/剪切保持面积,缩放改变面积
8. 特征值:变换后方向不变的向量
• 单位向量绕一圈,被矩阵拉伸的方向就是特征向量方向
• 拉伸倍数 = 特征值 λ
• 特征向量仍在该方向,只是被缩放
9. SVD:旋转 → 拉伸 → 再旋转
• 单位圆先旋转,再沿主轴拉伸,再旋转
• σ₁ ≥ σ₂ 是奇异值,越大的方向信息越多
• 只留大奇异值 = 低秩近似
10. 条件概率:B 发生下 A 的概率
• 深色块 = P(A) ∩ B;浅色块 = P(¬A) ∩ B
• 后验 P(A|B) = 深色 / 全部蓝色
11. 分布:期望与方差的直觉
• μ 是分布「重心」,曲线中心
• σ² 越大,分布越散、越扁平
• 68% 数据落在 μ±σ 内
12. 最大似然:哪个参数最像生了这些数据
一堆金色的点是从某个未知分布采样来的。拖动把高斯曲线对准它们,越匹配,似然值越大。
思考:数据点越多、曲线越贴高概率区,ℓ 越大。找到最大 ℓ 的 μ、σ 就是 MLE。
13. 熵:分布有多「难预测」
观察:p 越均分(√ 接近 1/3),熵越大;越极端(某一项接近 1),熵越小。模型「越不确定」熵越高。
14. 链式法则:复合函数怎么求导
推导:令 u = x²,则
df/dx = cos(u) · 2x
= 0.88 · 0.25
外层导数 × 内层导数
15. 海森矩阵:曲率告诉你几点
正定 → 局部极小
判定:a > |b| 正定(谷底),a < -|b| 负定(峰顶),否则鞍点(马鞍形)。
向量与矩阵:神经网络的砖瓦
神经网络里的一切都是向量和矩阵。一句话是向量,一层参数是矩阵,一批数据是三维张量。先把符号和基本运算理清楚。
A1.1 向量
向量是一列数。写成列向量 $\mathbf{v} = \begin{bmatrix}v_1\\v_2\\\vdots\\v_n\end{bmatrix}$,也可以写成行向量 $\mathbf{v}^{\top} = [v_1, v_2, \dots, v_n]$。转置 $(\cdot)^{\top}$ 把行变列、列变行。
| 符号 | 名称 | 定义 |
|---|---|---|
| $\mathbf{v}\in\mathbb{R}^n$ | n 维向量 | 实数向量空间 |
| $\lVert\mathbf{v}\rVert_2$ | L2 范数 | $\sqrt{v_1^2+v_2^2+\cdots+v_n^2}$ |
| $\lVert\mathbf{v}\rVert_1$ | L1 范数 | $|v_1|+|v_2|+\cdots+|v_n|$ |
| $\langle\mathbf{u},\mathbf{v}\rangle$ | 内积 | $\mathbf{u}^{\top}\mathbf{v}=\sum_i u_i v_i$ |
| $\lVert\mathbf{v}\rVert_p$ | Lp 范数 | $\big(\sum_i |v_i|^p\big)^{1/p}$ |
| $\lVert\mathbf{v}\rVert_\infty$ | 无穷范数 | $\max_i |v_i|$ |
等号成立当且仅当两个向量共线。这个不等式在推导注意力的 scaled dot-product 时会用到。
对应模型页:第 04 章 注意力 · 第 03 章 词向量
A1.2 矩阵
矩阵是一张二维数表。$A\in\mathbb{R}^{m\times n}$ 表示 $m$ 行 $n$ 列的实矩阵。神经网络的权重 $W$ 就是矩阵。
| 符号 | 名称 | 说明 |
|---|---|---|
| $A_{ij}$ | 元素 | 第 $i$ 行第 $j$ 列的元素 |
| $A^{\top}$ | 转置 | $(A^{\top})_{ij}=A_{ji}$ |
| $\text{tr}(A)$ | 迹 | $\sum_i A_{ii}$,对角线元素之和 |
| $\det(A)$ | 行列式 | 方阵的行列式,记作 $|A|$ |
| $A^{-1}$ | 逆矩阵 | 满足 $AA^{-1}=A^{-1}A=I$ |
| $\text{rank}(A)$ | 秩 | 线性无关的行(列)数 |
迹的循环性质在推导梯度时经常用到。$(A^{\top})^{\top}=A$,$(A^{-1})^{-1}=A$。
矩阵运算:神经网络的流水线
前向传播就是一连串矩阵乘法。反向传播就是把这些乘法倒过来求导。
A2.1 矩阵乘法
$C = AB$,要求 $A$ 的列数等于 $B$ 的行数。$A\in\mathbb{R}^{m\times p}$,$B\in\mathbb{R}^{p\times n}$,则 $C\in\mathbb{R}^{m\times n}$。
第 $i$ 行第 $j$ 列的元素,是 $A$ 的第 $i$ 行和 $B$ 的第 $j$ 列做内积。复杂度 $O(mnp)$。
对应模型页:第 02 章 神经网络 · 第 04 章 注意力
结合律
$(AB)C = A(BC)$。矩阵乘法满足结合律但不满足交换律:$AB \ne BA$。
分配律
$A(B+C)=AB+AC$,$(A+B)C=AC+BC$。
单位矩阵
$I$ 是对角线全 1 其余全 0 的方阵,$AI=IA=A$。
A2.2 Hadamard 积(逐元素乘法)
记作 $A \odot B$,要求两个矩阵形状完全相同,对应位置相乘。激活函数就是逐元素操作。
例如 ReLU 就是 $\text{ReLU}(x)=\max(0,x)$,逐元素作用。不要和矩阵乘法混淆。
A2.3 Kronecker 积(张量积)
$A\otimes B$ 把 $A$ 的每个元素都替换成 $B$ 的一个拷贝再乘上那个元素。LoRA 用到。
如果 $A$ 是 $m\times n$,$B$ 是 $p\times q$,则 $A\otimes B$ 是 $mp\times nq$。
对应模型页:第 08 章 LoRA
特征值分解:理解方阵的本质
方阵 $A$ 可以理解成一个线性变换。有些方向被 $A$ 拉伸或压缩,但方向不变,那就是特征向量。
$\mathbf{v}$ 是特征向量,$\lambda$ 是对应的特征值。$\mathbf{v}\ne\mathbf{0}$。
求解:$A\mathbf{v}=\lambda\mathbf{v}$ 等价于 $(A-\lambda I)\mathbf{v}=\mathbf{0}$,要有非零解就要求 $\det(A-\lambda I)=0$。这是特征多项式,解出所有 $\lambda$,再反代求 $\mathbf{v}$。
$Q$ 的列是特征向量,$\Lambda$ 是对角矩阵装着特征值。前提:$A$ 有 $n$ 个线性无关的特征向量。
低秩方向的直觉,见模型页 第 08 章 LoRA
SVD 奇异值分解:任意矩阵的万能分解
特征值分解只能用于方阵。SVD 能分解任意矩阵,而且比特征值分解稳定。LoRA、PCA、推荐系统都用它。
$A\in\mathbb{R}^{m\times n}$,$U\in\mathbb{R}^{m\times m}$ 和 $V\in\mathbb{R}^{n\times n}$ 都是正交矩阵,$\Sigma\in\mathbb{R}^{m\times n}$ 是对角矩阵(非方阵时对角线之外全 0)。
奇异值 $\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r > 0$ 放在 $\Sigma$ 的对角线上,$r=\text{rank}(A)$。
SVD 怎么算出来
关键:$A^{\top}A$ 和 $AA^{\top}$ 都是对称半正定矩阵,可以正交对角化。
$$A^{\top}A = V\Sigma^{\top}\Sigma V^{\top}=V\text{diag}(\sigma_1^2,\dots,\sigma_n^2)V^{\top}$$$V$ 就是 $A^{\top}A$ 的特征向量
对 $A^{\top}A$ 做特征值分解,得到特征向量矩阵 $V$ 和特征值 $\sigma_i^2$。
$U$ 通过 $AV=U\Sigma$ 反推
已知 $V$ 和 $\Sigma$,令 $U$ 的第 $i$ 列 $\mathbf{u}_i = \frac{1}{\sigma_i}A\mathbf{v}_i$,这样构造出来的 $U$ 是正交的。
A4.1 截断 SVD 与低秩近似
只保留前 $k$ 个最大的奇异值,丢掉后面的小奇异值,得到低秩近似 $A_k = U_k \Sigma_k V_k^{\top}$。这是所有秩为 $k$ 的矩阵里最接近 $A$ 的那个(Frobenius 范数意义下)。
原权重 $W\in\mathbb{R}^{d\times d}$ 冻结,只训练两个瘦矩阵 $B$ 和 $A$。秩 $r$ 越小,参数越少,表达能力越弱。SVD 告诉我们低秩近似是最优的,但 LoRA 不显式做 SVD,而是直接随机初始化 $A$ 和 $B$ 让梯度下降去学。
对应模型页:第 08 章 微调与 LoRA
模型说的每一句话,都是一个分布。
概率基础:模型的不确定性
语言模型不是输出一个确定的词,而是输出一个概率分布。理解概率是理解生成的前提。
P1.1 基本定义
| 符号 | 名称 | 定义 |
|---|---|---|
| $P(A)$ | 概率 | 事件 $A$ 发生的可能性,$0\le P(A)\le 1$ |
| $P(A\mid B)$ | 条件概率 | $B$ 发生的条件下 $A$ 发生的概率 |
| $P(A,B)$ | 联合概率 | $A$ 和 $B$ 同时发生的概率 |
| $P(A)+P(B)$ | 概率和 | 互斥事件:$P(A\cup B)=P(A)+P(B)$ |
$P(A,B)$ 是 $A$ 和 $B$ 同时发生的概率。可以改写成 $P(A,B)=P(A\mid B)P(B)=P(B\mid A)P(A)$。
从结果反推原因。$P(A)$ 叫先验,$P(A\mid B)$ 叫后验,$P(B\mid A)$ 叫似然。语言模型本质上就是在建模 $P(\text{下一个词}\mid\text{前文})$。
对应模型页:第 06 章 生成下一个字 · 第 07 章 预训练
P1.2 全概率公式
如果事件 $B_1, B_2, \dots, B_n$ 互不相交且覆盖整个样本空间,那么:
把 $A$ 按不同情况拆开算,再加起来。在推导边缘概率时用到。
P1.3 独立性
如果 $A$ 和 $B$ 独立,那么 $P(A,B)=P(A)P(B)$,且 $P(A\mid B)=P(A)$。知道 $B$ 发生与否不影响 $A$ 的概率。
期望与方差:分布的中心和离散程度
期望是分布的「重心」,方差是「散开的程度」。训练神经网络时要控制激活值的期望和方差,否则梯度爆炸或消失。
期望是加权平均,权重是概率。记作 $\mu$ 或 $\mathbb{E}[X]$。
方差衡量 $X$ 偏离期望的平方距离的平均。标准差 $\sigma=\sqrt{\text{Var}(X)}$。
对应模型页:第 09 章 强化学习(期望回报)
P2.1 期望的性质
线性性
$\mathbb{E}[aX+bY]=a\mathbb{E}[X]+b\mathbb{E}[Y]$,无论 $X$ 和 $Y$ 是否独立。
乘积期望
如果 $X$ 和 $Y$ 独立,$\mathbb{E}[XY]=\mathbb{E}[X]\mathbb{E}[Y]$。
方差的性质
$\text{Var}(aX)=a^2\text{Var}(X)$。如果 $X$ 和 $Y$ 独立,$\text{Var}(X+Y)=\text{Var}(X)+\text{Var}(Y)$。
P2.2 协方差与相关系数
协方差衡量两个变量线性相关的程度。正值表示同增同减,负值表示反向,零表示线性无关(但未必独立)。
标准化后的协方差,$|\rho|=1$ 表示完全线性相关,$\rho=0$ 表示线性无关。
常见分布:大模型用到的几个关键分布
伯努利、高斯、Softmax、Categorical,这几个分布串起来就是一个分类模型。
P3.1 伯努利分布(Bernoulli)
抛硬币。$X\in\{0,1\}$,$P(X=1)=p$。
P3.2 类别分布(Categorical)
多分类。$X\in\{1,2,\dots,K\}$,每个类的概率是 $p_k$,$\sum_k p_k=1$。语言模型输出的就是类别分布。
P3.3 高斯分布(正态分布)
最重要的连续分布。中心极限定理说大量独立随机变量的和趋向高斯分布。
记作 $X\sim\mathcal{N}(\mu,\sigma^2)$。标准正态分布是 $\mu=0, \sigma=1$ 的特例。
$\boldsymbol{\mu}\in\mathbb{R}^d$ 是均值向量,$\Sigma\in\mathbb{R}^{d\times d}$ 是协方差矩阵(对称半正定)。VAE 的编码器输出的就是高斯分布的参数 $(\boldsymbol{\mu}, \Sigma)$。
P3.4 Softmax 与交叉熵
把任意实数向量 $\mathbf{z}\in\mathbb{R}^K$ 变成概率分布(和为 1,每项非负)。
分类网络最后一层输出 logits $\mathbf{z}$,过 softmax 得到概率 $\mathbf{p}$。温度参数 $T$ 可以调控分布尖锐程度:$\text{softmax}(\mathbf{z}/T)$。
对应模型页:第 04 章 注意力 · 第 06 章 采样
真实标签是 one-hot 向量 $\mathbf{y}$,只有正确类那一项是 1。交叉熵退化成负对数似然。让正确类的概率尽可能高。
对应模型页:第 07 章 预训练
最大似然估计:从数据反推参数
有一堆数据,假设它们服从某个分布,怎么估计分布的参数?最大似然估计说:让这些数据在你的分布下出现的概率最大。
$\mathcal{D}=\{x_1,\dots,x_n\}$ 是观测数据,$\theta$ 是模型参数。假设样本独立同分布,联合概率是连乘。
乘法变加法,数值更稳定,优化更方便。最大化似然等价于最大化对数似然。
对应模型页:第 07 章 预训练 · 第 01 章 机器学习
最大似然估计(MLE)就是求 $\hat{\theta}=\arg\max_{\theta}\ell(\theta)$。对 $\theta$ 求导,令导数为零,解方程。
例子:估计高斯分布的均值和方差
数据 $\{x_1,\dots,x_n\}$ 来自 $\mathcal{N}(\mu,\sigma^2)$,对数似然是:
$$\ell(\mu,\sigma^2)=-\frac{n}{2}\log(2\pi\sigma^2)-\frac{1}{2\sigma^2}\sum_{i=1}^{n}(x_i-\mu)^2$$对 μ 求导并令其为零
$$\frac{\partial\ell}{\partial\mu}=\frac{1}{\sigma^2}\sum_{i}(x_i-\mu)=0\quad\Rightarrow\quad \hat{\mu}=\frac{1}{n}\sum_{i}x_i$$就是样本均值。
对 σ² 求导并令其为零
$$\frac{\partial\ell}{\partial\sigma^2}=-\frac{n}{2\sigma^2}+\frac{1}{2\sigma^4}\sum_{i}(x_i-\mu)^2=0 \quad\Rightarrow\quad \hat{\sigma}^2=\frac{1}{n}\sum_{i}(x_i-\hat{\mu})^2$$样本方差(无偏估计是除以 $n-1$,这里是 MLE 所以除以 $n$)。
信息论:熵、KL 散度、互信息
信息论给了「不确定性」一个数学定义。熵越高,分布越平坦,越难预测。KL 散度衡量两个分布有多不一样。
熵是「平均惊讶度」。均匀分布熵最大,确定性分布(某一项概率为 1)熵为 0。log 通常取底数 2(比特)或 $e$(奈特)。
用分布 $Q$ 去编码真实分布 $P$ 产生的数据,需要的平均编码长度。交叉熵 $\ge$ 熵,等号成立当且仅当 $P=Q$。
衡量 $P$ 和 $Q$ 的差异。非负,$D_{\text{KL}}(P\parallel Q)\ge 0$,等号成立当且仅当 $P=Q$。不对称:$D_{\text{KL}}(P\parallel Q)\ne D_{\text{KL}}(Q\parallel P)$。
对应模型页:第 07 章 预训练 · 第 09 章 PPO / DPO
PPO 和 DPO 都用 KL 散度约束:优化后的策略 $\pi_\theta$ 不能离参考策略 $\pi_{\text{ref}}$ 太远,否则模型会忘记原本学到的语言能力。
$X$ 和 $Y$ 共享多少信息。如果独立,$I(X;Y)=0$。互信息对称:$I(X;Y)=I(Y;X)$。
猜错了,就朝下坡走一步。
导数与梯度:神经网络的方向盘
神经网络训练就是求导。误差对每个参数求偏导,得到梯度,然后朝梯度反方向更新参数。
C1.1 导数
函数 $f(x)$ 在 $x_0$ 处的导数定义为:
导数是切线斜率,是瞬时变化率。记作 $f'(x)$、$\frac{df}{dx}$ 或 $\frac{d}{dx}f(x)$。
C1.2 偏导数
多元函数 $f(x_1,x_2,\dots,x_n)$ 对某一个变量求导,其他变量当常数。
记作 $\frac{\partial f}{\partial x_i}$ 或 $f_{x_i}$。
C1.3 梯度
标量函数 $f:\mathbb{R}^n\to\mathbb{R}$ 的梯度是所有偏导数组成的向量。
梯度指向函数增长最快的方向。梯度下降就是朝 $-\nabla f$ 方向走:$\mathbf{x}\leftarrow \mathbf{x}-\eta\nabla f(\mathbf{x})$。
对应模型页:第 01 章 机器学习
链式法则:反向传播的核心
神经网络是一层套一层的复合函数。链式法则说:复合函数的导数是每一层导数的连乘。反向传播就是链式法则的递归应用。
令 $u=g(x)$,则 $\frac{df}{dx}=\frac{df}{du}\cdot\frac{du}{dx}$。
对应模型页:第 02 章 神经网络
$f$ 依赖中间变量 $u_1,\dots,u_m$,每个 $u_j$ 又依赖 $x_i$。所有路径的贡献加起来。
C2.1 反向传播
神经网络:$\mathbf{x}\xrightarrow{W_1}\mathbf{h}_1\xrightarrow{\sigma}\mathbf{a}_1\xrightarrow{W_2}\mathbf{h}_2\xrightarrow{\sigma}\cdots\xrightarrow{}\mathcal{L}$。
前向:从输入算到损失。反向:从损失往回传梯度。
符号约定
$\mathbf{h}^{(l)}=W^{(l)}\mathbf{a}^{(l-1)}+\mathbf{b}^{(l)}$,$\mathbf{a}^{(l)}=\sigma(\mathbf{h}^{(l)})$,损失是 $\mathcal{L}(\mathbf{a}^{(L)}, \mathbf{y})$。
输出层梯度
先算最后一层对激活的梯度:
$$\boldsymbol{\delta}^{(L)}=\frac{\partial\mathcal{L}}{\partial\mathbf{h}^{(L)}} =\frac{\partial\mathcal{L}}{\partial\mathbf{a}^{(L)}}\odot\sigma'(\mathbf{h}^{(L)})$$$\odot$ 是逐元素乘法。
往前传递
第 $l$ 层的梯度通过下一层传回来:
$$\boldsymbol{\delta}^{(l)}=\big((W^{(l+1)})^{\top}\boldsymbol{\delta}^{(l+1)}\big)\odot\sigma'(\mathbf{h}^{(l)})$$对参数的梯度
有了 $\boldsymbol{\delta}^{(l)}$,权重和偏置的梯度是:
$$\frac{\partial\mathcal{L}}{\partial W^{(l)}}=\boldsymbol{\delta}^{(l)}(\mathbf{a}^{(l-1)})^{\top}, \qquad \frac{\partial\mathcal{L}}{\partial\mathbf{b}^{(l)}}=\boldsymbol{\delta}^{(l)}$$计算复杂度:前向一次 $O(n)$,反向一次 $O(n)$,总共 $O(n)$。如果朴素地对每个参数单独求导,是 $O(n^2)$。反向传播快在复用中间结果。
常用求导公式:背下来就快了
这些公式在推导注意力、LayerNorm、损失函数时反复出现。
C3.1 标量函数
| 函数 | 导数 | 备注 |
|---|---|---|
| $x^n$ | $nx^{n-1}$ | 幂函数 |
| $e^x$ | $e^x$ | 指数函数自己是自己的导数 |
| $\log x$ | $\frac{1}{x}$ | 自然对数 |
| $\sin x$ | $\cos x$ | |
| $\cos x$ | $-\sin x$ | |
| $\frac{1}{x}$ | $-\frac{1}{x^2}$ | |
| $\sqrt{x}$ | $\frac{1}{2\sqrt{x}}$ |
C3.2 向量函数
$\mathbf{x}\in\mathbb{R}^n$,$A\in\mathbb{R}^{m\times n}$,$\mathbf{b}\in\mathbb{R}^m$。
| 函数 $f(\mathbf{x})$ | 梯度 $\nabla f$ | 说明 |
|---|---|---|
| $\mathbf{a}^{\top}\mathbf{x}$ | $\mathbf{a}$ | 线性函数 |
| $\mathbf{x}^{\top}A\mathbf{x}$ | $(A+A^{\top})\mathbf{x}$ | 二次型;若 $A$ 对称则是 $2A\mathbf{x}$ |
| $\lVert\mathbf{x}\rVert_2^2$ | $2\mathbf{x}$ | $\mathbf{x}^{\top}\mathbf{x}$ 的导数 |
| $\lVert A\mathbf{x}-\mathbf{b}\rVert_2^2$ | $2A^{\top}(A\mathbf{x}-\mathbf{b})$ | 最小二乘损失 |
C3.3 矩阵对矩阵求导
$X\in\mathbb{R}^{m\times n}$,$f(X)$ 是标量。梯度 $\nabla_X f$ 是一个和 $X$ 同形状的矩阵,每个位置是 $\frac{\partial f}{\partial X_{ij}}$。
| $f(X)$ | $\nabla_X f$ | 说明 |
|---|---|---|
| $\text{tr}(AX)$ | $A^{\top}$ | |
| $\text{tr}(AXB)$ | $A^{\top}B^{\top}$ | |
| $\text{tr}(X^{\top}AX)$ | $(A+A^{\top})X$ | 若 $A$ 对称则 $2AX$ |
| $\lVert X\rVert_F^2$ | $2X$ | Frobenius 范数平方 |
C3.4 激活函数导数
| 激活函数 $\sigma(x)$ | 导数 $\sigma'(x)$ | 备注 |
|---|---|---|
| $\text{ReLU}(x)=\max(0,x)$ | $\begin{cases}1 & x>0\\0 & x\le 0\end{cases}$ | $x=0$ 处次梯度取 0 或 1 |
| $\sigma(x)=\frac{1}{1+e^{-x}}$ | $\sigma(x)(1-\sigma(x))$ | Sigmoid |
| $\tanh(x)$ | $1-\tanh^2(x)$ | |
| $\text{GELU}(x)$ | $\Phi(x)+x\phi(x)$ | $\Phi$ 是标准正态 CDF,$\phi$ 是 PDF |
| $\text{Softmax}(\mathbf{z})_i$ | $p_i(\delta_{ij}-p_j)$ | 雅可比矩阵;$\delta_{ij}$ 是 Kronecker delta |
交叉熵 + Softmax 组合后梯度特别简洁:$\frac{\partial\mathcal{L}}{\partial z_i}=p_i-y_i$。
对应模型页:第 02 章 神经网络 · 第 06 章 采样
雅可比矩阵与海森矩阵:二阶信息
雅可比是向量对向量求导,海森是标量对向量求二阶导。二阶优化器(牛顿法、L-BFGS)会用到海森矩阵,但深度学习里通常用不起(太大了)。
C4.1 雅可比矩阵
$\mathbf{f}:\mathbb{R}^n\to\mathbb{R}^m$ 是向量函数,$\mathbf{f}(\mathbf{x})=[f_1(\mathbf{x}),\dots,f_m(\mathbf{x})]^{\top}$。雅可比矩阵是所有偏导数组成的 $m\times n$ 矩阵。
第 $i$ 行是 $f_i$ 的梯度。如果 $m=1$,雅可比退化成梯度(行向量)。
链式法则的矩阵形式:$\mathbf{z}=\mathbf{g}(\mathbf{f}(\mathbf{x}))$,则 $\frac{\partial\mathbf{z}}{\partial\mathbf{x}}=\frac{\partial\mathbf{z}}{\partial\mathbf{f}}\cdot\frac{\partial\mathbf{f}}{\partial\mathbf{x}}$。两个雅可比矩阵相乘。
C4.2 海森矩阵
$f:\mathbb{R}^n\to\mathbb{R}$ 是标量函数。海森矩阵是二阶偏导数组成的 $n\times n$ 对称矩阵。
$H_{ij}=\frac{\partial^2 f}{\partial x_i\partial x_j}$。若 $f$ 二阶连续可导,$H$ 是对称的(Schwarz 定理)。
海森矩阵刻画曲率。正定 → 局部极小点,负定 → 局部极大点,不定 → 鞍点。
牛顿法用这个二次近似直接跳到极值点:$\Delta\mathbf{x}=-H^{-1}\nabla f$。但深度学习里 $H$ 太大(参数几十亿),算不起也存不下。实践中用一阶方法(SGD、Adam)或拟牛顿法(L-BFGS)。
对应模型页:第 01 章 机器学习(为什么只用一阶)