Skip to content

필사 모드: AI/ML 论文阅读必备数学 + LaTeX/KaTeX 全面整理

中文
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.

引言

初次翻开 AI/ML 论文时,最先像一堵墙一样挡在面前的往往是公式。会读写代码的开发者,论文算法本身大多能理解,但只要不熟悉公式记号,从第一页就会卡住。

这篇文章把"读懂论文所需的最低限度数学"和"表达这些数学所需的 LaTeX/KaTeX 语法"一次整理清楚。目标不是从头到尾啃完一本教科书,而是快速掌握论文中反复出现的那些模式。


1. 论文数学路线图

1.1 线性代数(Linear Algebra)

向量与矩阵

论文中的数据几乎总是以向量或矩阵的形式表示。

  • 标量: xRx \in \mathbb{R} — 单个实数值
  • 向量: xRn\mathbf{x} \in \mathbb{R}^nnn 维列向量
  • 矩阵: WRm×n\mathbf{W} \in \mathbb{R}^{m \times n}mmnn
% 向量(粗体)
\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}

核心运算:

y=Wx+b\mathbf{y} = \mathbf{W}\mathbf{x} + \mathbf{b}

这一行公式就是神经网络的一层。W\mathbf{W} 是权重,b\mathbf{b} 是偏置。

内积(Dot Product)

衡量两个向量相似度的最基本运算。

ab=ab=i=1naibi\mathbf{a} \cdot \mathbf{b} = \mathbf{a}^\top \mathbf{b} = \sum_{i=1}^{n} a_i b_i
\mathbf{a}^\top \mathbf{b} = \sum_{i=1}^{n} a_i b_i

特征值分解(Eigendecomposition)

对矩阵 A\mathbf{A},寻找满足 Av=λv\mathbf{A}\mathbf{v} = \lambda \mathbf{v}λ\lambda(特征值)与 v\mathbf{v}(特征向量)。在 PCA、谱聚类等方法中是核心概念。

奇异值分解(SVD)

把任意矩阵 ARm×n\mathbf{A} \in \mathbb{R}^{m \times n} 分解为三个矩阵的乘积。

A=UΣV\mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top
  • URm×m\mathbf{U} \in \mathbb{R}^{m \times m}: 左奇异向量(正交矩阵)
  • ΣRm×n\boldsymbol{\Sigma} \in \mathbb{R}^{m \times n}: 奇异值对角矩阵
  • VRn×n\mathbf{V} \in \mathbb{R}^{n \times n}: 右奇异向量(正交矩阵)

在降维、推荐系统、LoRA 等场景中频繁出现。

\mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top

范数(Norm)

衡量向量的"大小"。

范数公式含义论文中的用途
L1L_1x1=ixi\lVert \mathbf{x} \rVert_1 = \sum_i \lvert x_i \rvert绝对值之和Lasso 正则化、稀疏性
L2L_2x2=ixi2\lVert \mathbf{x} \rVert_2 = \sqrt{\sum_i x_i^2}欧几里得距离Ridge 正则化、weight decay
LL_\inftyx=maxixi\lVert \mathbf{x} \rVert_\infty = \max_i \lvert x_i \rvert最大绝对值adversarial attack bound
FrobeniusAF=i,jaij2\lVert \mathbf{A} \rVert_F = \sqrt{\sum_{i,j} a_{ij}^2}矩阵元素平方和的平方根矩阵近似误差

1.2 微积分(Calculus)

偏导数(Partial Derivative)

对多元函数只针对其中一个变量求导。

fxi\frac{\partial f}{\partial x_i}

它揭示了神经网络每个参数对损失的影响。

Gradient(梯度向量)

把所有偏导数汇总成一个向量。

θL=[Lθ1Lθ2Lθn]\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}
\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)的数学基础。

Lx=Lyyx\frac{\partial \mathcal{L}}{\partial \mathbf{x}} = \frac{\partial \mathcal{L}}{\partial \mathbf{y}} \cdot \frac{\partial \mathbf{y}}{\partial \mathbf{x}}

三层网络示例:

LW1=Ly^y^h2h2h1h1W1\frac{\partial \mathcal{L}}{\partial \mathbf{W}_1} = \frac{\partial \mathcal{L}}{\partial \hat{\mathbf{y}}} \cdot \frac{\partial \hat{\mathbf{y}}}{\partial \mathbf{h}_2} \cdot \frac{\partial \mathbf{h}_2}{\partial \mathbf{h}_1} \cdot \frac{\partial \mathbf{h}_1}{\partial \mathbf{W}_1}

Jacobian 与 Hessian

  • Jacobian JRm×n\mathbf{J} \in \mathbb{R}^{m \times n}: 向量函数的一阶导数矩阵。Jij=fixjJ_{ij} = \frac{\partial f_i}{\partial x_j}
  • Hessian HRn×n\mathbf{H} \in \mathbb{R}^{n \times n}: 标量函数的二阶导数矩阵。Hij=2fxixjH_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}

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)

概率分布

分布公式论文中的用途
伯努利P(x)=px(1p)1xP(x) = p^x (1-p)^{1-x}二分类
类别分布P(x=k)=πkP(x=k) = \pi_k多分类
高斯分布N(xμ,σ2)=12πσ2exp ⁣((xμ)22σ2)\mathcal{N}(x \mid \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\!\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)VAE 潜空间、噪声建模
多元高斯分布N(xμ,Σ)\mathcal{N}(\mathbf{x} \mid \boldsymbol{\mu}, \boldsymbol{\Sigma})连续潜变量

期望值与方差

E[X]=xxP(x)(离散),E[X]=xp(x)dx(连续)\mathbb{E}[X] = \sum_x x \, P(x) \quad \text{(离散)}, \qquad \mathbb{E}[X] = \int x \, p(x) \, dx \quad \text{(连续)} Var(X)=E[(XE[X])2]=E[X2](E[X])2\text{Var}(X) = \mathbb{E}[(X - \mathbb{E}[X])^2] = \mathbb{E}[X^2] - (\mathbb{E}[X])^2
\mathbb{E}[X] = \sum_x x \, P(x)
\text{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2

条件概率与贝叶斯定理

P(AB)=P(BA)P(A)P(B)P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B)}
  • P(A)P(A): 先验概率(prior)
  • P(BA)P(B \mid A): 似然(likelihood)
  • P(AB)P(A \mid B): 后验概率(posterior)
  • P(B)P(B): 证据(evidence/marginal likelihood)

MLE 与 MAP

Maximum Likelihood Estimation (MLE):

θ^MLE=argmaxθi=1Np(xiθ)=argmaxθi=1Nlogp(xiθ)\hat{\boldsymbol{\theta}}_{\text{MLE}} = \arg\max_{\boldsymbol{\theta}} \prod_{i=1}^{N} p(\mathbf{x}_i \mid \boldsymbol{\theta}) = \arg\max_{\boldsymbol{\theta}} \sum_{i=1}^{N} \log p(\mathbf{x}_i \mid \boldsymbol{\theta})

Maximum A Posteriori (MAP):

θ^MAP=argmaxθ[i=1Nlogp(xiθ)+logp(θ)]\hat{\boldsymbol{\theta}}_{\text{MAP}} = \arg\max_{\boldsymbol{\theta}} \left[ \sum_{i=1}^{N} \log p(\mathbf{x}_i \mid \boldsymbol{\theta}) + \log p(\boldsymbol{\theta}) \right]

MAP 是在 MLE 的基础上加入先验分布(prior)p(θ)p(\boldsymbol{\theta})。L2 正则化等价于假设高斯先验分布的 MAP。


1.4 最优化(Optimization)

梯度下降法(Gradient Descent)

θt+1=θtηθL(θt)\boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \eta \nabla_{\boldsymbol{\theta}} \mathcal{L}(\boldsymbol{\theta}_t)

η\eta 是学习率(learning rate)。使用小批量(mini-batch)时就成为 SGD

Adam Optimizer

使用最广泛的优化器。用一阶矩(均值)与二阶矩(方差)的滑动平均。

mt=β1mt1+(1β1)gtvt=β2vt1+(1β2)gt2m^t=mt1β1t,v^t=vt1β2tθt+1=θtηv^t+ϵm^t\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} \\ \boldsymbol{\theta}_{t+1} &= \boldsymbol{\theta}_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t \end{aligned}
\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)

为防止过拟合,在损失函数中加入惩罚项。

Lreg=Ldata+λθ22\mathcal{L}_{\text{reg}} = \mathcal{L}_{\text{data}} + \lambda \lVert \boldsymbol{\theta} \rVert_2^2
  • λ\lambda: 正则化强度(超参数)
  • L1 正则化(θ1\lVert \boldsymbol{\theta} \rVert_1): 诱导稀疏性 → feature selection
  • L2 正则化(θ22\lVert \boldsymbol{\theta} \rVert_2^2): weight decay → 限制参数大小

Convex vs Non-Convex

  • 凸(convex): 全局最小值 = 局部最小值。逻辑回归、SVM 等。
  • 非凸(non-convex): 存在多个局部最小值。深度学习的损失函数大多属于这一类。

论文中提到 "non-convex optimization" 时,意味着无法保证达到全局最优点。


2. 论文中常见的公式模式

2.1 Softmax 与 Cross-Entropy

Softmax: 把 logits 向量转换为概率分布。

softmax(zi)=ezij=1Kezj\text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}

Cross-Entropy Loss: 分类问题的标准损失函数。

LCE=i=1Kyilog(y^i)\mathcal{L}_{\text{CE}} = -\sum_{i=1}^{K} y_i \log(\hat{y}_i)

这里 yiy_i 是 one-hot 标签,y^i\hat{y}_i 是 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:

Attention(Q,K,V)=softmax ⁣(QKdk)V\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right)\mathbf{V}
  • QRn×dk\mathbf{Q} \in \mathbb{R}^{n \times d_k}: Query 矩阵
  • KRm×dk\mathbf{K} \in \mathbb{R}^{m \times d_k}: Key 矩阵
  • VRm×dv\mathbf{V} \in \mathbb{R}^{m \times d_v}: Value 矩阵
  • dk\sqrt{d_k}: 缩放因子(防止内积值变得过大)

Multi-Head Attention:

MultiHead(Q,K,V)=Concat(head1,,headh)WO\text{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)\mathbf{W}^O where headi=Attention(QWiQ,KWiK,VWiV)\text{where } \text{head}_i = \text{Attention}(\mathbf{Q}\mathbf{W}_i^Q, \mathbf{K}\mathbf{W}_i^K, \mathbf{V}\mathbf{W}_i^V)
\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: 衡量两个概率分布之间"距离"(非对称)的指标。

DKL(qp)=xq(x)logq(x)p(x)=Eq ⁣[logq(x)p(x)]D_{\text{KL}}(q \,\|\, p) = \sum_x q(x) \log \frac{q(x)}{p(x)} = \mathbb{E}_{q}\!\left[\log \frac{q(x)}{p(x)}\right]

性质:

  • DKL0D_{\text{KL}} \geq 0(恒大于等于 0)
  • DKL(qp)DKL(pq)D_{\text{KL}}(q \| p) \neq D_{\text{KL}}(p \| q)(非对称)

ELBO (Evidence Lower Bound): VAE 的核心目标函数。

logp(x)Eq(zx)[logp(xz)]reconstructionDKL(q(zx)p(z))regularization=ELBO\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}} = \text{ELBO}
  • 第一项: 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:

LayerNorm(x)=xμσ2+ϵγ+β\text{LayerNorm}(\mathbf{x}) = \frac{\mathbf{x} - \mu}{\sqrt{\sigma^2 + \epsilon}} \odot \boldsymbol{\gamma} + \boldsymbol{\beta}

其中 μ=1di=1dxi\mu = \frac{1}{d}\sum_{i=1}^d x_i,σ2=1di=1d(xiμ)2\sigma^2 = \frac{1}{d}\sum_{i=1}^d (x_i - \mu)^2,γ\boldsymbol{\gamma}β\boldsymbol{\beta} 是可学习参数,\odot 表示逐元素乘法(element-wise multiplication)。

Batch Normalization:

x^i=xiμBσB2+ϵ\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}

μB\mu_BσB2\sigma_B^2 是按小批量(mini-batch)计算的。

RMSNorm(LLaMA 等模型使用):

RMSNorm(x)=xRMS(x)γ,RMS(x)=1di=1dxi2\text{RMSNorm}(\mathbf{x}) = \frac{\mathbf{x}}{\text{RMS}(\mathbf{x})} \odot \boldsymbol{\gamma}, \quad \text{RMS}(\mathbf{x}) = \sqrt{\frac{1}{d}\sum_{i=1}^d x_i^2}

Loss 记号惯例:

  • L\mathcal{L}LL: 整体损失函数
  • LCE\mathcal{L}_{\text{CE}},LMSE\mathcal{L}_{\text{MSE}}: 特定损失的下标记号
  • ()\ell(\cdot): 单样本损失(小写)
  • J(θ)J(\boldsymbol{\theta}): 目标函数(= 损失 + 正则化)

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}  % → 路径积分

渲染结果:

ab,i=1Nxi,abf(x)dx\frac{a}{b}, \quad \sum_{i=1}^{N} x_i, \quad \int_{a}^{b} f(x)\,dx

下标与上标

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}    % 黑板粗体(数集)

论文中非常常见的记号组合:

y^,xˉ,x~,x˙,W,L,Rn\hat{y}, \quad \bar{x}, \quad \tilde{x}, \quad \dot{x}, \quad \mathbf{W}, \quad \mathcal{L}, \quad \mathbb{R}^n

矩阵

% 圆括号矩阵
\begin{pmatrix} a & b \\ c & d \end{pmatrix}

% 方括号矩阵
\begin{bmatrix} a & b \\ c & d \end{bmatrix}

% 行列式
\begin{vmatrix} a & b \\ c & d \end{vmatrix}
(abcd),[abcd],abcd\begin{pmatrix} a & b \\ c & d \end{pmatrix}, \quad \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad \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}
$$
f(x)=ax2+bx+c=a(xh)2+k=a(xr1)(xr2)\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}
$$
f(x)={1if x>00if x=01if x<0f(x) = \begin{cases} 1 & \text{if } x > 0 \\ 0 & \text{if } x = 0 \\ -1 & \text{if } x < 0 \end{cases}

在 ReLU 等激活函数的定义中经常出现:

ReLU(x)=max(0,x)={xif x>00otherwise\text{ReLU}(x) = \max(0, x) = \begin{cases} x & \text{if } x > 0 \\ 0 & \text{otherwise} \end{cases}

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}$ 求导时……

→ 对损失函数 L\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)
$$
θL=1Ni=1Nθ(f(xi;θ),yi)\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 中,\\ 只在 alignedcasesbmatrix 等环境内部才有效。想在普通的 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 阅读一篇论文时的检查清单

  1. Abstract → 把握目的: 用一句话概括这篇论文要解决的问题
  2. 先浏览图表: Figure 1 大多是整体架构的概括
  3. 寻找符号表(Notation): 通常整理在第 2~3 页
  4. 识别核心公式: 通常有 3~5 个,优先阅读带编号的公式
  5. 公式自然语言翻译: 把每个公式拆解成"输入 → 运算 → 输出"的流程来表述
  6. 确认实验结果: 在表格/图表中确认相对 baseline 的提升幅度
  7. 解读 Ablation study: 弄清哪个组件对性能有贡献
  8. 对照代码: 与公开的 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}$ |                        |

反查三步骤:

  1. 找到符号定义的位置: 在公式上下文中搜索 "where" 或 "其中"
  2. 反查维度: 矩阵乘法要成立,内部维度必须一致,可据此推断未知符号的维度
  3. 对照代码: 用类似 attention_scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k) 的代码确认公式的含义

5.3 示例: Scaled Dot-Product Attention 逐步推导

Attention(Q,K,V)=softmax ⁣(QKdk)V\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right)\mathbf{V}

Step 1: 确认输入

  • QRn×dk\mathbf{Q} \in \mathbb{R}^{n \times d_k}: nn 个 query,每个 dkd_k
  • KRm×dk\mathbf{K} \in \mathbb{R}^{m \times d_k}: mm 个 key,每个 dkd_k
  • VRm×dv\mathbf{V} \in \mathbb{R}^{m \times d_v}: mm 个 value,每个 dvd_v

Step 2: 计算 QK\mathbf{Q}\mathbf{K}^\top

QKRn×m\mathbf{Q}\mathbf{K}^\top \in \mathbb{R}^{n \times m}

(i,j)(i, j) 元素是第 ii 个 query 与第 jj 个 key 的内积 → 相似度分数

Step 3: 除以 dk\sqrt{d_k}

内积值会随着 dkd_k 增大而绝对值变大。把它除以 dk\sqrt{d_k},可以防止 softmax 饱和。这正是 "scaled" 的含义。

QKdkRn×m\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}} \in \mathbb{R}^{n \times m}

Step 4: 应用 softmax

对每一行(query)应用 softmax,得到注意力权重(概率分布)。

αij=exp(sij)l=1mexp(sil),where sij=(QK)ijdk\alpha_{ij} = \frac{\exp(s_{ij})}{\sum_{l=1}^m \exp(s_{il})}, \quad \text{where } s_{ij} = \frac{(\mathbf{Q}\mathbf{K}^\top)_{ij}}{\sqrt{d_k}}

Step 5: 对 Value 做加权求和

用注意力权重对 Value 向量做加权求和。

outputi=j=1mαijvj\text{output}_i = \sum_{j=1}^{m} \alpha_{ij} \mathbf{v}_j

结果: outputRn×dv\text{output} \in \mathbb{R}^{n \times d_v}

一句话总结: "每个 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\nablanabla / 梯度向量微分算子
\partial\partial偏导偏导数符号
\sum\sumsigma / 求和求和
\prod\prodpi / 连乘连乘
\int\intintegral / 积分积分
\lVert \cdot \rVert\lVert \cdot \rVert范数向量/矩阵的大小
\lvert \cdot \rvert\lvert \cdot \rvert绝对值标量绝对值或集合大小
E\mathbb{E}\mathbb{E}期望值随机变量的均值
Var\text{Var}\text{Var}方差随机变量的方差
argmax\arg\max\arg\maxargmax使函数取最大值的参数
argmin\arg\min\arg\minargmin使函数取最小值的参数
\propto\propto正比与……成正比
\sim\simtilde / 服从于xpx \sim p: xx 服从分布 pp
\in\in属于元素关系
\subset\subset子集子集关系
\forall\forall任意全称符号
\exists\exists存在存在符号
\infty\infty无穷无穷大
\approx\approx约等于近似相等
\triangleq\triangleq定义为定义为(definition)
\odot\odotHadamard 积逐元素乘法
\otimes\otimesKronecker 积 / 张量积张量乘法
\oplus\oplus直和直接和
,\langle \cdot, \cdot \rangle\langle \cdot, \cdot \rangle内积内积(inner product)
O\mathcal{O}\mathcal{O}Big-O时间/空间复杂度
θ,θ\theta, \boldsymbol{\theta}\theta, \boldsymbol{\theta}theta模型参数
η\eta\etaeta学习率
λ\lambda\lambdalambda正则化系数、特征值
ϵ\epsilon\epsilonepsilon极小值、噪声
σ\sigma\sigmasigma标准差、sigmoid 函数
ϕ,φ\phi, \varphi\phi, \varphiphi模型参数(辅助)
ψ\psi\psipsi参数、函数
α,β,γ\alpha, \beta, \gamma\alpha, \beta, \gammaalpha, beta, gamma超参数
μ\mu\mumu均值
Rn\mathbb{R}^n\mathbb{R}^nn 维实数n 维实数空间
Z\mathbb{Z}\mathbb{Z}整数整数集合
\top\top转置矩阵转置(transpose)

6.2 推荐参考资料

教材

  1. Mathematics for Machine Learning(Deisenroth et al.)——提供免费 PDF,只专注整理 ML 所需的数学内容
  2. Deep Learning(Goodfellow, Bengio, Courville)——Part I 是数学基础,可在 deeplearningbook.org 免费阅读
  3. Pattern Recognition and Machine Learning(Bishop)——涵盖到概率图模型,是贝叶斯视角的经典教材
  4. Linear Algebra Done Right(Axler)——以线性代数理论为中心,基于证明,适合深入理解

在线课程

  1. 3Blue1Brown — Essence of Linear Algebra(YouTube)——以可视化为核心的线性代数直觉系列
  2. 3Blue1Brown — Essence of Calculus(YouTube)——微积分核心概念的可视化理解
  3. Stanford CS229 — Machine Learning——Andrew Ng 的 ML 课程,数学基础扎实
  4. MIT 18.06 — Linear Algebra(Gilbert Strang)——工程视角的线性代数名课

工具与参考

  1. KaTeX 官方文档(katex.org)——支持的函数/符号完整列表
  2. Detexify(detexify.kirelabs.org)——手绘符号即可查找对应 LaTeX 命令的工具
  3. Mathpix Snip——拍摄公式图片即可转换为 LaTeX 代码的 OCR 工具
  4. Overleaf(overleaf.com)——在线 LaTeX 编辑器,支持实时预览
  5. arXiv Vanity——把 arXiv 论文转换成网页,方便阅读公式
  6. Papers with Code(paperswithcode.com)——同时查看论文与实现代码,是公式与代码对照的最佳工具

结语

论文中的公式,归根结底是把"数据如何被变换"压缩表达出来的东西。一开始每个符号都会显得陌生,但上面整理的这些模式,已经覆盖了论文公式的 80% 以上。

最有效的学习顺序是:

  1. 把这篇文章的符号速查表放在手边
  2. 挑一篇感兴趣的论文
  3. 只把 3~5 个核心公式用自然语言拆解出来
  4. 与对应的代码(PyTorch/JAX)对照

一旦能把公式翻译成代码、把代码翻译成公式,双向自如切换,读论文的速度就会大幅提升。

현재 단락 (1/481)

初次翻开 AI/ML 论文时,最先像一堵墙一样挡在面前的往往是**公式**。会读写代码的开发者,论文算法本身大多能理解,但只要不熟悉公式记号,从第一页就会卡住。

작성 글자: 0원문 글자: 17,562작성 단락: 0/481