- Authors

- Name
- Youngju Kim
- @fjvbn20031
- 引言
- 1. 论文数学路线图
- 2. 论文中常见的公式模式
- 3. LaTeX 阅读与书写核心
- 4. KaTeX 实战
- 5. 实战学习法
- 6. 附录
- 结语
引言
初次翻开 AI/ML 论文时,最先像一堵墙一样挡在面前的往往是公式。会读写代码的开发者,论文算法本身大多能理解,但只要不熟悉公式记号,从第一页就会卡住。
这篇文章把"读懂论文所需的最低限度数学"和"表达这些数学所需的 LaTeX/KaTeX 语法"一次整理清楚。目标不是从头到尾啃完一本教科书,而是快速掌握论文中反复出现的那些模式。
1. 论文数学路线图
1.1 线性代数(Linear Algebra)
向量与矩阵
论文中的数据几乎总是以向量或矩阵的形式表示。
- 标量: — 单个实数值
- 向量: — 维列向量
- 矩阵: — 行 列
% 向量(粗体)
\mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}
% 矩阵
\mathbf{W} = \begin{bmatrix}
w_{11} & w_{12} & \cdots & w_{1n} \\
w_{21} & w_{22} & \cdots & w_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
w_{m1} & w_{m2} & \cdots & w_{mn}
\end{bmatrix}
核心运算:
这一行公式就是神经网络的一层。 是权重, 是偏置。
内积(Dot Product)
衡量两个向量相似度的最基本运算。
\mathbf{a}^\top \mathbf{b} = \sum_{i=1}^{n} a_i b_i
特征值分解(Eigendecomposition)
对矩阵 ,寻找满足 的 (特征值)与 (特征向量)。在 PCA、谱聚类等方法中是核心概念。
奇异值分解(SVD)
把任意矩阵 分解为三个矩阵的乘积。
- : 左奇异向量(正交矩阵)
- : 奇异值对角矩阵
- : 右奇异向量(正交矩阵)
在降维、推荐系统、LoRA 等场景中频繁出现。
\mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top
范数(Norm)
衡量向量的"大小"。
| 范数 | 公式 | 含义 | 论文中的用途 |
|---|---|---|---|
| 绝对值之和 | Lasso 正则化、稀疏性 | ||
| 欧几里得距离 | Ridge 正则化、weight decay | ||
| 最大绝对值 | adversarial attack bound | ||
| Frobenius | 矩阵元素平方和的平方根 | 矩阵近似误差 |
1.2 微积分(Calculus)
偏导数(Partial Derivative)
对多元函数只针对其中一个变量求导。
它揭示了神经网络每个参数对损失的影响。
Gradient(梯度向量)
把所有偏导数汇总成一个向量。
\nabla_{\boldsymbol{\theta}} \mathcal{L} = \begin{bmatrix}
\frac{\partial \mathcal{L}}{\partial \theta_1} \\
\frac{\partial \mathcal{L}}{\partial \theta_2} \\
\vdots \\
\frac{\partial \mathcal{L}}{\partial \theta_n}
\end{bmatrix}
链式法则(Chain Rule)
复合函数的求导法,是反向传播(backpropagation)的数学基础。
三层网络示例:
Jacobian 与 Hessian
- Jacobian : 向量函数的一阶导数矩阵。
- Hessian : 标量函数的二阶导数矩阵。
Hessian 携带曲率信息,用于二阶最优化(Newton's method)。
\mathbf{J} = \begin{bmatrix}
\frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\
\vdots & \ddots & \vdots \\
\frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n}
\end{bmatrix}
1.3 概率与统计(Probability & Statistics)
概率分布
| 分布 | 公式 | 论文中的用途 |
|---|---|---|
| 伯努利 | 二分类 | |
| 类别分布 | 多分类 | |
| 高斯分布 | VAE 潜空间、噪声建模 | |
| 多元高斯分布 | 连续潜变量 |
期望值与方差
\mathbb{E}[X] = \sum_x x \, P(x)
\text{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2
条件概率与贝叶斯定理
- : 先验概率(prior)
- : 似然(likelihood)
- : 后验概率(posterior)
- : 证据(evidence/marginal likelihood)
MLE 与 MAP
Maximum Likelihood Estimation (MLE):
Maximum A Posteriori (MAP):
MAP 是在 MLE 的基础上加入先验分布(prior)。L2 正则化等价于假设高斯先验分布的 MAP。
1.4 最优化(Optimization)
梯度下降法(Gradient Descent)
是学习率(learning rate)。使用小批量(mini-batch)时就成为 SGD。
Adam Optimizer
使用最广泛的优化器。用一阶矩(均值)与二阶矩(方差)的滑动平均。
\begin{aligned}
m_t &= \beta_1 m_{t-1} + (1-\beta_1) g_t \\
v_t &= \beta_2 v_{t-1} + (1-\beta_2) g_t^2 \\
\hat{m}_t &= \frac{m_t}{1-\beta_1^t}, \quad
\hat{v}_t &= \frac{v_t}{1-\beta_2^t} \\
\theta_{t+1} &= \theta_t
- \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t
\end{aligned}
正则化(Regularization)
为防止过拟合,在损失函数中加入惩罚项。
- : 正则化强度(超参数)
- L1 正则化(): 诱导稀疏性 → feature selection
- L2 正则化(): weight decay → 限制参数大小
Convex vs Non-Convex
- 凸(convex): 全局最小值 = 局部最小值。逻辑回归、SVM 等。
- 非凸(non-convex): 存在多个局部最小值。深度学习的损失函数大多属于这一类。
论文中提到 "non-convex optimization" 时,意味着无法保证达到全局最优点。
2. 论文中常见的公式模式
2.1 Softmax 与 Cross-Entropy
Softmax: 把 logits 向量转换为概率分布。
Cross-Entropy Loss: 分类问题的标准损失函数。
这里 是 one-hot 标签, 是 softmax 的输出。
\text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}
\mathcal{L}_{\text{CE}} = -\sum_{i=1}^{K} y_i \log(\hat{y}_i)
2.2 Attention Score 与 Scaled Dot-Product
Transformer 的核心——Scaled Dot-Product Attention:
- : Query 矩阵
- : Key 矩阵
- : Value 矩阵
- : 缩放因子(防止内积值变得过大)
Multi-Head Attention:
\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V})
= \text{softmax}\!\left(
\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}
\right)\mathbf{V}
2.3 KL Divergence 与 ELBO
KL Divergence: 衡量两个概率分布之间"距离"(非对称)的指标。
性质:
- (恒大于等于 0)
- (非对称)
ELBO (Evidence Lower Bound): VAE 的核心目标函数。
- 第一项: reconstruction loss——解码器复原输入的程度
- 第二项: KL 项——编码器的后验分布与先验分布之间的接近程度
\log p(\mathbf{x}) \geq
\underbrace{\mathbb{E}_{q(\mathbf{z}|\mathbf{x})}
[\log p(\mathbf{x}|\mathbf{z})]}_{\text{reconstruction}}
- \underbrace{D_{\text{KL}}(q(\mathbf{z}|\mathbf{x})
\,\|\, p(\mathbf{z}))}_{\text{regularization}}
2.4 Normalization 与 Loss 记号
Layer Normalization:
其中 ,, 与 是可学习参数, 表示逐元素乘法(element-wise multiplication)。
Batch Normalization:
与 是按小批量(mini-batch)计算的。
RMSNorm(LLaMA 等模型使用):
Loss 记号惯例:
- 或 : 整体损失函数
- ,: 特定损失的下标记号
- : 单样本损失(小写)
- : 目标函数(= 损失 + 正则化)
3. LaTeX 阅读与书写核心
3.1 基本公式语法
分数、求和、积分
% 分数
\frac{a}{b} % → a/b
\dfrac{a}{b} % → 大分数(display style)
% 求和
\sum_{i=1}^{N} x_i % → Σ from i=1 to N
\prod_{j=1}^{M} p_j % → Π from j=1 to M
% 积分
\int_{a}^{b} f(x)\,dx % → 定积分
\iint_D f(x,y)\,dx\,dy % → 二重积分
\oint_C \mathbf{F}\cdot d\mathbf{r} % → 路径积分
渲染结果:
下标与上标
x_i % 下标
x^2 % 上标(平方)
x_i^{(j)} % 复合: 第 i 个元素的第 j 次迭代
\hat{y} % y-hat(预测值)
\bar{x} % x-bar(均值)
\tilde{x} % x-tilde(变换值)
\dot{x} % 对时间求导
\mathbf{W} % 粗体(矩阵/向量)
\mathcal{L} % 花体(损失函数)
\mathbb{R} % 黑板粗体(数集)
论文中非常常见的记号组合:
矩阵
% 圆括号矩阵
\begin{pmatrix} a & b \\ c & d \end{pmatrix}
% 方括号矩阵
\begin{bmatrix} a & b \\ c & d \end{bmatrix}
% 行列式
\begin{vmatrix} a & b \\ c & d \end{vmatrix}
3.2 对齐环境
aligned(多行公式对齐)
$$
\begin{aligned}
f(x) &= ax^2 + bx + c \\
&= a(x - h)^2 + k \\
&= a(x - r_1)(x - r_2)
\end{aligned}
$$
用 & 对齐基准点,用 \\ 换行。
cases(条件分支)
$$
f(x) = \begin{cases}
1 & \text{if } x > 0 \\
0 & \text{if } x = 0 \\
-1 & \text{if } x < 0
\end{cases}
$$
在 ReLU 等激活函数的定义中经常出现:
3.3 论文中常见宏的读法
在论文 PDF 中直接看到 LaTeX 源码的情况并不多,但下载 arXiv 源码或撰写博客时,会经常遇到下面这些宏。
% 常见的自定义宏
\newcommand{\E}{\mathbb{E}} % 期望值
\newcommand{\R}{\mathbb{R}} % 实数集
\newcommand{\KL}{D_{\text{KL}}} % KL Divergence
\newcommand{\norm}[1]{\lVert #1 \rVert} % 范数
\newcommand{\inner}[2]{\langle #1, #2 \rangle} % 内积
% 使用示例
\E_{x \sim p}[f(x)] % → 𝔼_{x~p}[f(x)]
\norm{\mathbf{x}}_2 % → ‖x‖₂
\inner{\mathbf{a}}{\mathbf{b}} % → ⟨a, b⟩
提示: 想查看 arXiv 论文的源码,可以把 URL 中的
abs换成e-prints,或点击 "Download source" 获取.tex文件。先确认\newcommand的定义,能让正文公式的解读容易得多。
4. KaTeX 实战
4.1 在 MDX 博客中渲染 KaTeX
要在像这个博客一样的 Next.js + Contentlayer + MDX 技术栈中使用 KaTeX,需要两个插件。
npm install remark-math rehype-katex
Contentlayer 配置示例:
// contentlayer.config.ts
import remarkMath from 'remark-math'
import rehypeKatex from 'rehype-katex'
export default makeSource({
mdx: {
remarkPlugins: [remarkMath],
rehypePlugins: [rehypeKatex],
},
})
然后在布局中加入 KaTeX 的 CSS:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.css" />
4.2 Inline 与 Block 公式的使用标准
Inline 公式($...$): 想自然地融入句子时使用。
对损失函数 $\mathcal{L}$ 关于 $\boldsymbol{\theta}$ 求导时……
→ 对损失函数 关于 求导时……
Block 公式($$...$$): 想突出显示一个独立公式时使用。
$$
\nabla_{\boldsymbol{\theta}} \mathcal{L} = \frac{1}{N} \sum_{i=1}^{N} \nabla_{\boldsymbol{\theta}} \ell(f(\mathbf{x}_i; \boldsymbol{\theta}), y_i)
$$
判断标准:
- 符号 1~2 个 → inline
- 分数、求和、矩阵等高度较大的公式 → block
- 说明的核心公式 → block
- 仅作参考提及的变量 → inline
4.3 常见渲染错误与解决方法
1) \text{} 内特殊字符报错
% 错误
\text{cross-entropy} % 连字符可能被解释成负号
% 解决
\text{cross\text{-}entropy}
% 或者干脆不用连字符
\text{cross entropy}
2) \\ 换行不生效
在 KaTeX 中,\\ 只在 aligned、cases、bmatrix 等环境内部才有效。想在普通的 block 公式里换行,需要另起一个 $$ 块,或者用 aligned 包裹。
% 错误: 在 block 公式中直接换行
$$
a = b \\
c = d
$$
% 解决: 使用 aligned
$$
\begin{aligned}
a &= b \\
c &= d
\end{aligned}
$$
3) \boldsymbol vs \mathbf
\mathbf{x}: 罗马体粗体,只支持拉丁字母。\boldsymbol{\theta}: 斜体粗体,也可用于希腊字母。
\mathbf{W} % 矩阵 W(罗马体粗体) ✅
\mathbf{\theta} % ❌ 不推荐用于希腊字母
\boldsymbol{\theta} % ✅ 希腊字母粗体
4) $$ 块前后必须留空行
这是 MDX 中 $$ 块公式无法渲染的最常见原因。
<!-- 错误: 没有空行 -->
这是一个公式:
$$
x = y
$$
接下来的句子。
<!-- 解决: 前后加空行 -->
这是一个公式:
$$
x = y
$$
接下来的句子。
5) KaTeX 不支持的命令
KaTeX 只支持 LaTeX 的一个子集。经常遇到的不支持命令:
| LaTeX 命令 | KaTeX 状态 | 替代方案 |
|---|---|---|
\DeclareMathOperator | 不支持 | \operatorname{name} |
\newcommand | 不支持 | 直接写在公式里 |
\eqref | 不支持 | 手动编号 |
\substack | 支持 | - |
\xleftarrow | 支持 | - |
5. 实战学习法
5.1 阅读一篇论文时的检查清单
- Abstract → 把握目的: 用一句话概括这篇论文要解决的问题
- 先浏览图表: Figure 1 大多是整体架构的概括
- 寻找符号表(Notation): 通常整理在第 2~3 页
- 识别核心公式: 通常有 3~5 个,优先阅读带编号的公式
- 公式自然语言翻译: 把每个公式拆解成"输入 → 运算 → 输出"的流程来表述
- 确认实验结果: 在表格/图表中确认相对 baseline 的提升幅度
- 解读 Ablation study: 弄清哪个组件对性能有贡献
- 对照代码: 与公开的 GitHub 实现对照公式
5.2 公式卡壳时的反查方法
建立符号词典
阅读论文时遇到不认识的符号,立刻记在笔记里。
## 符号词典(Paper: Attention Is All You Need)
| 符号 | 含义 | 维度 | 备注 |
| ------------------------------------ | ----------------------- | ------------------------------------------ | ---------------------- |
| $d_{\text{model}}$ | 模型隐藏维度 | 标量 | 512 |
| $d_k$ | Key/Query 维度 | 标量 | $d_{\text{model}} / h$ |
| $d_v$ | Value 维度 | 标量 | $d_{\text{model}} / h$ |
| $h$ | 头数 | 标量 | 8 |
| $\mathbf{Q}, \mathbf{K}, \mathbf{V}$ | Query, Key, Value | 矩阵 | |
| $\mathbf{W}^Q_i$ | 第 i 个头的 Query 投影 | $\mathbb{R}^{d_{\text{model}} \times d_k}$ | |
反查三步骤:
- 找到符号定义的位置: 在公式上下文中搜索 "where" 或 "其中"
- 反查维度: 矩阵乘法要成立,内部维度必须一致,可据此推断未知符号的维度
- 对照代码: 用类似
attention_scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k)的代码确认公式的含义
5.3 示例: Scaled Dot-Product Attention 逐步推导
Step 1: 确认输入
- : 个 query,每个 维
- : 个 key,每个 维
- : 个 value,每个 维
Step 2: 计算
元素是第 个 query 与第 个 key 的内积 → 相似度分数
Step 3: 除以
内积值会随着 增大而绝对值变大。把它除以 ,可以防止 softmax 饱和。这正是 "scaled" 的含义。
Step 4: 应用 softmax
对每一行(query)应用 softmax,得到注意力权重(概率分布)。
Step 5: 对 Value 做加权求和
用注意力权重对 Value 向量做加权求和。
结果:
一句话总结: "每个 query 都求出与所有 key 的相似度,再用这个相似度作为权重,输出 value 的加权平均。"
对应的 PyTorch 代码:
import torch
import torch.nn.functional as F
import math
def scaled_dot_product_attention(Q, K, V):
d_k = Q.size(-1)
scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k)
attn_weights = F.softmax(scores, dim=-1)
output = torch.matmul(attn_weights, V)
return output, attn_weights
6. 附录
6.1 符号速查表
| 符号 | LaTeX | 读法 | 含义 |
|---|---|---|---|
\nabla | nabla / 梯度 | 向量微分算子 | |
\partial | 偏导 | 偏导数符号 | |
\sum | sigma / 求和 | 求和 | |
\prod | pi / 连乘 | 连乘 | |
\int | integral / 积分 | 积分 | |
\lVert \cdot \rVert | 范数 | 向量/矩阵的大小 | |
\lvert \cdot \rvert | 绝对值 | 标量绝对值或集合大小 | |
\mathbb{E} | 期望值 | 随机变量的均值 | |
\text{Var} | 方差 | 随机变量的方差 | |
\arg\max | argmax | 使函数取最大值的参数 | |
\arg\min | argmin | 使函数取最小值的参数 | |
\propto | 正比 | 与……成正比 | |
\sim | tilde / 服从于 | : 服从分布 | |
\in | 属于 | 元素关系 | |
\subset | 子集 | 子集关系 | |
\forall | 任意 | 全称符号 | |
\exists | 存在 | 存在符号 | |
\infty | 无穷 | 无穷大 | |
\approx | 约等于 | 近似相等 | |
\triangleq | 定义为 | 定义为(definition) | |
\odot | Hadamard 积 | 逐元素乘法 | |
\otimes | Kronecker 积 / 张量积 | 张量乘法 | |
\oplus | 直和 | 直接和 | |
\langle \cdot, \cdot \rangle | 内积 | 内积(inner product) | |
\mathcal{O} | Big-O | 时间/空间复杂度 | |
\theta, \boldsymbol{\theta} | theta | 模型参数 | |
\eta | eta | 学习率 | |
\lambda | lambda | 正则化系数、特征值 | |
\epsilon | epsilon | 极小值、噪声 | |
\sigma | sigma | 标准差、sigmoid 函数 | |
\phi, \varphi | phi | 模型参数(辅助) | |
\psi | psi | 参数、函数 | |
\alpha, \beta, \gamma | alpha, beta, gamma | 超参数 | |
\mu | mu | 均值 | |
\mathbb{R}^n | n 维实数 | n 维实数空间 | |
\mathbb{Z} | 整数 | 整数集合 | |
\top | 转置 | 矩阵转置(transpose) |
6.2 推荐参考资料
教材
- Mathematics for Machine Learning(Deisenroth et al.)——提供免费 PDF,只专注整理 ML 所需的数学内容
- Deep Learning(Goodfellow, Bengio, Courville)——Part I 是数学基础,可在 deeplearningbook.org 免费阅读
- Pattern Recognition and Machine Learning(Bishop)——涵盖到概率图模型,是贝叶斯视角的经典教材
- Linear Algebra Done Right(Axler)——以线性代数理论为中心,基于证明,适合深入理解
在线课程
- 3Blue1Brown — Essence of Linear Algebra(YouTube)——以可视化为核心的线性代数直觉系列
- 3Blue1Brown — Essence of Calculus(YouTube)——微积分核心概念的可视化理解
- Stanford CS229 — Machine Learning——Andrew Ng 的 ML 课程,数学基础扎实
- MIT 18.06 — Linear Algebra(Gilbert Strang)——工程视角的线性代数名课
工具与参考
- KaTeX 官方文档(katex.org)——支持的函数/符号完整列表
- Detexify(detexify.kirelabs.org)——手绘符号即可查找对应 LaTeX 命令的工具
- Mathpix Snip——拍摄公式图片即可转换为 LaTeX 代码的 OCR 工具
- Overleaf(overleaf.com)——在线 LaTeX 编辑器,支持实时预览
- arXiv Vanity——把 arXiv 论文转换成网页,方便阅读公式
- Papers with Code(paperswithcode.com)——同时查看论文与实现代码,是公式与代码对照的最佳工具
结语
论文中的公式,归根结底是把"数据如何被变换"压缩表达出来的东西。一开始每个符号都会显得陌生,但上面整理的这些模式,已经覆盖了论文公式的 80% 以上。
最有效的学习顺序是:
- 把这篇文章的符号速查表放在手边
- 挑一篇感兴趣的论文
- 只把 3~5 个核心公式用自然语言拆解出来
- 与对应的代码(PyTorch/JAX)对照
一旦能把公式翻译成代码、把代码翻译成公式,双向自如切换,读论文的速度就会大幅提升。