Markdown 数学公式写作指南(二):分数、求和、积分与根号

文章目录

    • 从符号到运算
    • 一、分数:公式中出现频率最高的语法
      • [1.1 基本写法](#1.1 基本写法)
      • [1.2 嵌套分数](#1.2 嵌套分数)
      • [1.3 行内分数太小怎么办](#1.3 行内分数太小怎么办)
      • [1.4 AI 中的分数实战:梯度下降](#1.4 AI 中的分数实战:梯度下降)
      • [1.5 分数常见错误对照表](#1.5 分数常见错误对照表)
    • [二、求和符号:AI 公式中最常见的运算](#二、求和符号:AI 公式中最常见的运算)
      • [2.1 基本写法](#2.1 基本写法)
      • [2.2 多重求和](#2.2 多重求和)
      • [2.3 求和的范围与条件](#2.3 求和的范围与条件)
      • [2.4 求和常见错误](#2.4 求和常见错误)
    • 三、连乘符号:从最大似然到交叉熵的桥梁
      • [3.1 基本写法](#3.1 基本写法)
      • [3.2 连乘 vs 求和:什么时候用哪个](#3.2 连乘 vs 求和:什么时候用哪个)
      • [3.3 为什么实际代码中很少看到连乘](#3.3 为什么实际代码中很少看到连乘)
    • 四、极限:从理论到实践的桥梁
    • 五、积分:连续世界的求和
      • [5.1 定积分](#5.1 定积分)
      • [5.2 二重积分](#5.2 二重积分)
      • [5.3 实战:高斯分布的归一化](#5.3 实战:高斯分布的归一化)
      • [5.4 常见积分错误对照](#5.4 常见积分错误对照)
    • 六、根号:从归一化到距离度量
      • [6.1 平方根与 n 次方根](#6.1 平方根与 n 次方根)
      • [6.2 AI 中的根号实战](#6.2 AI 中的根号实战)
    • 七、自适应括号:让公式更专业
    • 八、综合实战:从最大似然到交叉熵的完整推导
      • [步骤 1:最大似然估计(连乘)](#步骤 1:最大似然估计(连乘))
      • [步骤 2:取对数(连乘 → 求和)](#步骤 2:取对数(连乘 → 求和))
      • [步骤 3:取负号和均值(求和 → 平均)](#步骤 3:取负号和均值(求和 → 平均))
      • [步骤 4:多分类展开(单层求和 → 双层求和)](#步骤 4:多分类展开(单层求和 → 双层求和))
      • [步骤 5:添加 L2 正则化(求和 + 范数)](#步骤 5:添加 L2 正则化(求和 + 范数))
      • 语法使用统计
    • 九、语法速查:本篇涉及的命令
    • 小结

从符号到运算

上一篇我们学会了写希腊字母和上下标------那是公式的"字母"和"零件"。但只有零件还不够,你还需要把它们组装成数学表达式。

这篇进入数学运算的核心语法:分数、求和、连乘、极限、积分和根号。这些是表达 AI 算法推导过程的基础工具。最大似然估计的连乘、交叉熵的求和、高斯分布的指数和根号------全都需要这些语法。

但本文不只是语法手册。每个语法点都会回答三个问题:怎么写为什么这样写写错了会怎样。最后还有一个完整推导实战,把所有语法串起来用。

前置要求 :阅读本文前,建议先看完系列第一篇(行内/块级公式、希腊字母、上下标)。如果你已经熟悉 $$$ 的区别,可以直接开始。


一、分数:公式中出现频率最高的语法

1.1 基本写法

markdown 复制代码
$\frac{a}{b}$  $\frac{1}{N}$  $\frac{\partial L}{\partial W}$

渲染效果: a b \frac{a}{b} ba 1 N \frac{1}{N} N1 ∂ L ∂ W \frac{\partial L}{\partial W} ∂W∂L

语法是 \frac{分子}{分母},两个参数都用花括号包裹。

为什么用 \frac 而不是 a/ba/b 在渲染时只是一条斜线,分子分母不会上下排列。在复杂公式中(比如 ∂ L ∂ W \frac{\partial L}{\partial W} ∂W∂L),斜线形式几乎无法阅读。\frac 是 LaTeX 的标准分数命令,所有主流编辑器都支持。

1.2 嵌套分数

分数可以无限嵌套,AI 论文中的推导步骤经常用到:

markdown 复制代码
$$
\frac{1}{1 + \frac{1}{1 + \frac{1}{1+x}}}
$$

渲染效果:

1 1 + 1 1 + 1 1 + x \frac{1}{1 + \frac{1}{1 + \frac{1}{1+x}}} 1+1+1+x111

踩坑提醒 :嵌套超过两层时,内层分数会自动缩小,在移动端可能看不清。如果嵌套分数在你的编辑器中渲染太小,考虑用 \dfrac 替代内层 \frac,或者把公式拆成多步推导。

1.3 行内分数太小怎么办

行内公式中分数会自动缩小,在移动端几乎看不清。用 \dfrac 可以保持正常大小:

markdown 复制代码
$\frac{a}{b}$ vs $\dfrac{a}{b}$

渲染效果: a b \frac{a}{b} ba vs a b \dfrac{a}{b} ba

命令 用途 使用场景 兼容性
\frac 行内自动缩小 块级公式、行内简单分数 ✅ 全部支持
\dfrac 强制正常大小 行内公式中需要清晰展示分数 ⚠️ 部分旧编辑器不支持
\tfrac 强制缩小 块级公式中写紧凑的分数 ⚠️ 部分旧编辑器不支持

编辑器兼容性实测

编辑器 \frac \dfrac \tfrac
CSDN
Typora (≥1.5)
Typora (<1.3)
Notion
GitHub README
Jupyter Notebook

最佳实践 :如果不确定目标编辑器的兼容性,优先用 \frac。只在行内公式确实看不清时才换 \dfrac,并在多种设备上预览确认。

1.4 AI 中的分数实战:梯度下降

梯度下降的参数更新规则,是行内分数最经典的用例:

markdown 复制代码
$$
\theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta}
$$

θ ← θ − η ∂ L ∂ θ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} θ←θ−η∂θ∂L

Python 代码对照

python 复制代码
# 对应的 PyTorch 代码
with torch.no_grad():
    theta -= lr * theta.grad  # θ ← θ - η * ∂L/∂θ

公式中的 ∂ L ∂ θ \frac{\partial L}{\partial \theta} ∂θ∂L 在代码里就是 theta.grad。理解公式和代码的对应关系,能帮你写出更准确的技术博客。

1.5 分数常见错误对照表

错误写法 渲染结果 问题 正确写法
1/1+e^{-x} 1 / 1 + e − x 1/1+e^{-x} 1/1+e−x 斜线分数无分组,运算优先级错 \frac{1}{1+e^{-x}}
\frac 1N 1 N \frac 1N N1 单字符可以省略花括号,但不推荐 \frac{1}{N}
\frac{1}{N}/N 1 N / N \frac{1}{N}/N N1/N 混用 \frac 和斜线,语义不清 \frac{1}{N \cdot N}
\frac{1}{N} 在行内 太小 行内自动缩小 \dfrac{1}{N}

写作建议 :写损失函数时, 1 N \frac{1}{N} N1 的 N N N 一定要在正文里说明是什么------是样本数、批次大小还是类别数。不要假设读者都知道。这个细节在论文 review 中也经常被指出。


二、求和符号:AI 公式中最常见的运算

2.1 基本写法

markdown 复制代码
$\sum_{i=1}^{N} x_i$

渲染效果: ∑ i = 1 N x i \sum_{i=1}^{N} x_i ∑i=1Nxi

行内求和的上下标会挤在符号旁边,不太美观。块级公式中会自动放到上下方:

markdown 复制代码
$$
\sum_{i=1}^{N} x_i
$$

渲染效果:

∑ i = 1 N x i \sum_{i=1}^{N} x_i i=1∑Nxi

行内 vs 块级的视觉差异:行内模式下求和符号较小,上下标在右侧;块级模式下符号更大,上下标在正上方和正下方。重要的求和公式建议用块级。

2.2 多重求和

AI 中经常出现双重求和,比如矩阵所有元素的加权求和:

markdown 复制代码
$$
\sum_{i=1}^{N} \sum_{j=1}^{M} x_{ij} w_{ij}
$$

渲染效果:

∑ i = 1 N ∑ j = 1 M x i j w i j \sum_{i=1}^{N} \sum_{j=1}^{M} x_{ij} w_{ij} i=1∑Nj=1∑Mxijwij

Python 代码对照

python 复制代码
# 双重求和对应的 NumPy 实现
total = np.sum(X * W)  # X 和 W 都是 N×M 矩阵

# 或者用显式循环
total = 0
for i in range(N):
    for j in range(M):
        total += X[i][j] * W[i][j]

2.3 求和的范围与条件

求和符号的下方可以写任意条件,不一定是 i=1

markdown 复制代码
$$
\sum_{i \in \mathcal{D}} x_i, \quad \sum_{k=0}^{K} \theta_k x^k, \quad \sum_{c=1}^{C} y_{ic} \log(\hat{y}_{ic})
$$

渲染效果:

∑ i ∈ D x i , ∑ k = 0 K θ k x k , ∑ c = 1 C y i c log ⁡ ( y ^ i c ) \sum_{i \in \mathcal{D}} x_i, \quad \sum_{k=0}^{K} \theta_k x^k, \quad \sum_{c=1}^{C} y_{ic} \log(\hat{y}_{ic}) i∈D∑xi,k=0∑Kθkxk,c=1∑Cyiclog(y^ic)

写法 含义 AI 实例
\sum_{i=1}^{N} 从 1 到 N 样本求和
\sum_{i \in \mathcal{D}} 遍历集合中的元素 对数据集 D \mathcal{D} D 中的样本求和
\sum_{c=1}^{C} 从 1 到 C 多分类中遍历所有类别
\sum_{k=0}^{K} 从 0 到 K 多项式回归中遍历所有阶数
\sum_{(x,y) \in \mathcal{D}} 遍历数据集中的样本对 训练集上的经验损失

2.4 求和常见错误

错误写法 问题 正确写法
\sum_{i=1}^N x_i 单字符上标可以省略花括号,但不推荐 \sum_{i=1}^{N} x_i
\sum_i=1^N x_i i=1 没有用花括号包裹 \sum_{i=1}^{N} x_i
$$\sum_{i=1}^{N}$$ x_i 公式结束标记位置错误 $$\sum_{i=1}^{N} x_i$$

实战举例 :交叉熵损失 L = − 1 N ∑ i = 1 N ∑ c = 1 C y i c log ⁡ y ^ i c \mathcal{L} = -\frac{1}{N}\sum_{i=1}^{N} \sum_{c=1}^{C} y_{ic} \log \hat{y}_{ic} L=−N1∑i=1N∑c=1Cyiclogy^ic 中,外层求和遍历所有 N N N 个样本,内层求和遍历所有 C C C 个类别。两层求和的组合在多分类问题中是标准写法。对应的 PyTorch 代码就是 F.cross_entropy,它内部就是做的这个双重求和。


三、连乘符号:从最大似然到交叉熵的桥梁

3.1 基本写法

markdown 复制代码
$$
L = \prod_{i=1}^{N} P(y_i | x_i; \theta)
$$

渲染效果:

L = ∏ i = 1 N P ( y i ∣ x i ; θ ) L = \prod_{i=1}^{N} P(y_i | x_i; \theta) L=i=1∏NP(yi∣xi;θ)

连乘和求和语法完全对称,只是把 \sum 换成 \prod

3.2 连乘 vs 求和:什么时候用哪个

场景 用求和还是连乘 典型公式
计算总损失 求和 L = ∑ i = 1 N ℓ i \mathcal{L} = \sum_{i=1}^{N} \ell_i L=∑i=1Nℓi
计算联合概率 连乘 L = ∏ i = 1 N P ( y i ∣ x i ) L = \prod_{i=1}^{N} P(y_i | x_i) L=∏i=1NP(yi∣xi)
矩阵元素求和 求和 ∑ i , j x i j \sum_{i,j} x_{ij} ∑i,jxij
矩阵行列式展开 连乘 ∏ i λ i \prod_{i} \lambda_i ∏iλi
边缘概率 求和 P ( x ) = ∑ y P ( x , y ) P(x) = \sum_y P(x, y) P(x)=∑yP(x,y)

3.3 为什么实际代码中很少看到连乘

这是很多初学者的困惑:论文里写的是连乘 ∏ \prod ∏,但代码里全是求和 ∑ \sum ∑。原因如下:

最大似然估计的原始形式是连乘:

L ( θ ) = ∏ i = 1 N P ( y i ∣ x i ; θ ) L(\theta) = \prod_{i=1}^{N} P(y_i | x_i; \theta) L(θ)=i=1∏NP(yi∣xi;θ)

但在实际计算中,连乘有两个严重问题:

  1. 数值下溢 : N N N 个小于 1 的概率相乘,结果趋近于 0。比如 0.1 100 = 10 − 100 0.1^{100} = 10^{-100} 0.1100=10−100,浮点数根本存不下。
  2. 梯度消失:连乘的导数是各概率导数的连乘链,梯度会指数级衰减。

解决方案:取对数,把连乘变成求和:

log ⁡ L ( θ ) = ∑ i = 1 N log ⁡ P ( y i ∣ x i ; θ ) \log L(\theta) = \sum_{i=1}^{N} \log P(y_i | x_i; \theta) logL(θ)=i=1∑NlogP(yi∣xi;θ)

对数是单调递增函数,最大化 log ⁡ L \log L logL 等价于最大化 L L L,但计算上稳定得多。

python 复制代码
# 连乘形式(不推荐,会下溢)
likelihood = 1.0
for i in range(N):
    likelihood *= P(y[i] | x[i], theta)  # N=1000 时几乎必为 0

# 对数求和形式(推荐,数值稳定)
log_likelihood = 0.0
for i in range(N):
    log_likelihood += math.log(P(y[i] | x[i], theta))

# PyTorch 中的交叉熵损失就是对数似然的负数
loss = F.nll_loss(torch.log(probs), labels)  # Negative Log-Likelihood

写博客的关键洞察:当你写 AI 算法博客时,如果涉及最大似然估计,一定要解释"为什么论文写连乘但代码用求和"。这是读者最容易困惑的点,解释清楚了这个细节,文章质量就上了一个档次。


四、极限:从理论到实践的桥梁

markdown 复制代码
$$
\lim_{N \to \infty} \frac{1}{N} \sum_{i=1}^{N} f(x_i) = \mathbb{E}[f(x)]
$$

渲染效果:

lim ⁡ N → ∞ 1 N ∑ i = 1 N f ( x i ) = E f ( x ) \lim_{N \to \infty} \frac{1}{N} \sum_{i=1}^{N} f(x_i) = \mathbb{E}f(x) N→∞limN1i=1∑Nf(xi)=Ef(x)

这个公式为什么重要 :大数定律 lim ⁡ N → ∞ 1 N ∑ i = 1 N X i = E X \lim_{N \to \infty} \frac{1}{N}\sum_{i=1}^{N} X_i = \mathbb{E}X limN→∞N1∑i=1NXi=EX 是机器学习理论基础的核心。它解释了一个根本问题:为什么用训练集上的平均损失(经验风险)能代替真实分布上的期望损失(期望风险)?

答案是:当样本量 N N N 足够大时,经验风险趋近期望风险。这就是机器学习中"更多数据 = 更好模型"的理论依据。

语法注意\to 写箭头,\infty 写无穷符号,\mathbb{E} 写期望算子(双线体)。不要把 \to 写成 ->,后者渲染为 − > -> −> 而不是 → \to →。


五、积分:连续世界的求和

5.1 定积分

markdown 复制代码
$$
\int_{a}^{b} f(x) \, dx
$$

渲染效果:

∫ a b f ( x )   d x \int_{a}^{b} f(x) \, dx ∫abf(x)dx

排版细节\, 是一个细空格(thin space),让 d x dx dx 和被积函数之间有视觉间隔。这是数学排版的国际惯例------论文中几乎都会这样写。

不加 \, 的话 d x dx dx 会紧贴函数,看起来像是函数名的一部分。虽然不影响数学含义,但影响可读性。

间距命令 宽度 用途
\, 3/18 em 细空格, d x dx dx 前用
\; 5/18 em 中空格
\quad 1 em 大空格,分隔多个公式
\qquad 2 em 超大空格

5.2 二重积分

markdown 复制代码
$$
\int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(x, y) \, dx \, dy
$$

渲染效果:

∫ − ∞ ∞ ∫ − ∞ ∞ f ( x , y )   d x   d y \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(x, y) \, dx \, dy ∫−∞∞∫−∞∞f(x,y)dxdy

5.3 实战:高斯分布的归一化

这条公式综合了分数、根号、指数、自适应括号和积分------是检验公式写作能力的好例子:

markdown 复制代码
$$
\int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) dx = 1
$$

渲染效果:

∫ − ∞ ∞ 1 2 π σ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) d x = 1 \int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) dx = 1 ∫−∞∞2π σ1exp(−2σ2(x−μ)2)dx=1

逐层拆解

语法片段 渲染效果 作用
\int_{-\infty}^{\infty} ∫ − ∞ ∞ \int_{-\infty}^{\infty} ∫−∞∞ 从 − ∞ -\infty −∞ 到 ∞ \infty ∞ 的积分
\frac{1}{\sqrt{2\pi}\sigma} 1 2 π σ \frac{1}{\sqrt{2\pi}\sigma} 2π σ1 归一化系数(分数 + 嵌套根号)
\exp\left(...\right) exp ⁡ ( . . . ) \exp\left(...\right) exp(...) 指数函数,自适应括号
\frac{(x-\mu)^2}{2\sigma^2} ( x − μ ) 2 2 σ 2 \frac{(x-\mu)^2}{2\sigma^2} 2σ2(x−μ)2 指数部分的分数
dx = 1 d x = 1 dx = 1 dx=1 积分结果为 1(概率归一化)

这个公式在 AI 中的意义:高斯分布是 VAE、扩散模型、贝叶斯推断等众多 AI 模型的核心假设。理解它的归一化条件(积分等于 1),是理解这些模型推导的基础。

5.4 常见积分错误对照

错误写法 问题 正确写法 错误渲染
\int_a^b f(x) dx d x dx dx 紧贴函数 \int_{a}^{b} f(x) \, dx ∫ a b f ( x ) d x \int_a^b f(x) dx ∫abf(x)dx
\int_{-\infty}^{infty} 少了负号 \int_{-\infty}^{\infty} ∫ − ∞ i n f t y \int_{-\infty}^{infty} ∫−∞infty
\exp(-\frac{...}{...}) 括号太小 \exp\left(-\frac{...}{...}\right) exp ⁡ ( − a b ) \exp(-\frac{a}{b}) exp(−ba) vs exp ⁡ ( − a b ) \exp\left(-\frac{a}{b}\right) exp(−ba)
\int f(x) dx 缺少上下限 \int_{a}^{b} f(x) \, dx 不定积分不需要上下限,但要写 dx

六、根号:从归一化到距离度量

6.1 平方根与 n 次方根

markdown 复制代码
$\sqrt{x}$  $\sqrt{a^2 + b^2}$  $\sqrt[3]{x}$  $\sqrt[n]{x^n}$

渲染效果: x \sqrt{x} x a 2 + b 2 \sqrt{a^2 + b^2} a2+b2 x 3 \sqrt3{x} 3x x n n \sqrtn{x^n} nxn

写法 含义 AI 中的应用
\sqrt{x} x \sqrt{x} x 标准差、RMS
\sqrt[n]{x} x n \sqrtn{x} nx Lp 范数( p p p 次方根)
\sqrt{a^2 + b^2} a 2 + b 2 \sqrt{a^2+b^2} a2+b2 向量模长、欧氏距离

6.2 AI 中的根号实战

RMS 归一化(RMSNorm,Transformer 中常用的归一化方式):

markdown 复制代码
$$
\text{RMS}(x) = \sqrt{\frac{1}{N}\sum_{i=1}^{N} x_i^2}
$$

RMS ( x ) = 1 N ∑ i = 1 N x i 2 \text{RMS}(x) = \sqrt{\frac{1}{N}\sum_{i=1}^{N} x_i^2} RMS(x)=N1i=1∑Nxi2

python 复制代码
# 对应的 PyTorch 实现
rms = torch.sqrt(torch.mean(x ** 2, dim=-1, keepdim=True) + eps)
x_normed = x / rms  # RMSNorm

欧氏距离(KNN、K-Means 等算法的基础):

markdown 复制代码
$$
d(\mathbf{x}, \mathbf{y}) = \sqrt{\sum_{i=1}^{N}(x_i - y_i)^2}
$$

d ( x , y ) = ∑ i = 1 N ( x i − y i ) 2 d(\mathbf{x}, \mathbf{y}) = \sqrt{\sum_{i=1}^{N}(x_i - y_i)^2} d(x,y)=i=1∑N(xi−yi)2

python 复制代码
# 对应的 NumPy 实现
distance = np.sqrt(np.sum((x - y) ** 2))
# 或者直接用库函数
from scipy.spatial.distance import euclidean
distance = euclidean(x, y)

踩坑提醒 :根号内的表达式如果很长,渲染器可能不会自动调整根号上方的横线长度。建议把复杂表达式用 \sqrt{} 完整包裹。如果根号内容确实太长,考虑改用 (...)^{1/2} 的指数形式。


七、自适应括号:让公式更专业

普通括号不会自动调整大小,当公式中有分数或求和时,括号看起来太小:

markdown 复制代码
$(\frac{a}{b})$ vs $\left(\frac{a}{b}\right)$

渲染效果: ( a b ) (\frac{a}{b}) (ba) vs ( a b ) \left(\frac{a}{b}\right) (ba)

写法 渲染 说明
(\frac{a}{b}) ( a b ) (\frac{a}{b}) (ba) 普通括号,太小
\left(\frac{a}{b}\right) ( a b ) \left(\frac{a}{b}\right) (ba) 自适应,正好
[\sum_{i=1}^{N} x_i] ∑ i = 1 N x i \\sum_{i=1}\^{N} x_i ∑i=1Nxi 方括号也偏小
\left[\sum_{i=1}^{N} x_i\right] ∑ i = 1 N x i \left\\sum_{i=1}\^{N} x_i\\right ∑i=1Nxi 自适应方括号
\langle \mathbf{v} \rangle ⟨ v ⟩ \langle \mathbf{v} \rangle ⟨v⟩ 尖括号(期望值)

什么时候必须用自适应括号

场景 普通括号 自适应括号
括号内只有简单变量 x x x ( x ) (x) (x) 可以 不需要
括号内有分数 ( a b ) (\frac{a}{b}) (ba) 太小 ( a b ) \left(\frac{a}{b}\right) (ba) ✅
括号内有求和 ( ∑ i = 1 N x i ) (\sum_{i=1}^{N} x_i) (∑i=1Nxi) 太小 ( ∑ i = 1 N x i ) \left(\sum_{i=1}^{N} x_i\right) (∑i=1Nxi) ✅
括号内有根号 ( x ) (\sqrt{x}) (x ) 还行 ( x ) \left(\sqrt{x}\right) (x ) 更好
嵌套括号 容易混淆 自适应能区分层级 ✅

最佳实践 :当括号内有 \frac\sum\sqrt\int 时,一律用 \left\right。简单公式不需要。这个习惯能让你的公式看起来更专业------审稿人和读者一眼就能看出作者是否熟悉 LaTeX。

注意\left\right 必须成对出现。如果只需要单边括号(比如分段函数的左侧大括号),用 \left.(不可见)配对:

markdown 复制代码
$$
\left. \frac{\partial L}{\partial \theta} \right|_{\theta=\theta_0}
$$

∂ L ∂ θ ∣ θ = θ 0 \left. \frac{\partial L}{\partial \theta} \right|_{\theta=\theta_0} ∂θ∂L θ=θ0


八、综合实战:从最大似然到交叉熵的完整推导

现在把本文学过的所有语法串起来,写一个完整的推导过程。这个推导是机器学习面试的高频考点,也是理解交叉熵损失为什么这样设计的核心。

步骤 1:最大似然估计(连乘)

假设 N N N 个样本独立同分布,似然函数是各样本概率的连乘:

L ( θ ) = ∏ i = 1 N P ( y i ∣ x i ; θ ) L(\theta) = \prod_{i=1}^{N} P(y_i | x_i; \theta) L(θ)=i=1∏NP(yi∣xi;θ)

步骤 2:取对数(连乘 → 求和)

连乘容易数值下溢,取对数变成求和:

log ⁡ L ( θ ) = ∑ i = 1 N log ⁡ P ( y i ∣ x i ; θ ) \log L(\theta) = \sum_{i=1}^{N} \log P(y_i | x_i; \theta) logL(θ)=i=1∑NlogP(yi∣xi;θ)

步骤 3:取负号和均值(求和 → 平均)

最大化似然等价于最小化负对数似然:

L = − 1 N ∑ i = 1 N log ⁡ P ( y i ∣ x i ; θ ) \mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \log P(y_i | x_i; \theta) L=−N1i=1∑NlogP(yi∣xi;θ)

步骤 4:多分类展开(单层求和 → 双层求和)

对于 C C C 分类问题, P ( y i ∣ x i ; θ ) = ∏ c = 1 C y ^ i c y i c P(y_i | x_i; \theta) = \prod_{c=1}^{C} \hat{y}{ic}^{y{ic}} P(yi∣xi;θ)=∏c=1Cy^icyic,取对数后:

L = − 1 N ∑ i = 1 N ∑ c = 1 C y i c log ⁡ ( y ^ i c ) \mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{ic} \log(\hat{y}_{ic}) L=−N1i=1∑Nc=1∑Cyiclog(y^ic)

这就是交叉熵损失。

步骤 5:添加 L2 正则化(求和 + 范数)

L total = − 1 N ∑ i = 1 N ∑ c = 1 C y i c log ⁡ ( y ^ i c ) + λ ∥ w ∥ 2 2 \mathcal{L}{\text{total}} = -\frac{1}{N} \sum{i=1}^{N} \sum_{c=1}^{C} y_{ic} \log(\hat{y}_{ic}) + \lambda \|\mathbf{w}\|_2^2 Ltotal=−N1i=1∑Nc=1∑Cyiclog(y^ic)+λ∥w∥22

语法使用统计

这个推导过程中用到的语法:

语法 出现次数 出现位置
\frac 3 1 N \frac{1}{N} N1、 ∂ L ∂ θ \frac{\partial L}{\partial \theta} ∂θ∂L、归一化系数
\sum 5 样本求和、类别求和、正则化项
\prod 2 连乘似然、多分类概率展开
\log 3 对数似然
` `
\mathcal{L} 3 损失函数
\mathbf{w} 1 权重向量
\lambda 1 正则化系数

写作建议:在博客中展示这种"从零到一"的推导过程,比单独列出每个公式有价值得多。读者能看到公式之间的逻辑递进,而不仅仅是结论。这就是"教学型博客"和"公式手册"的区别。


九、语法速查:本篇涉及的命令

语法 效果 用途 篇章定位
\frac{a}{b} a b \frac{a}{b} ba 分数 §一
\dfrac{a}{b} a b \dfrac{a}{b} ba 行内分数(不缩小) §一
\sum_{i=1}^{N} ∑ i = 1 N \sum_{i=1}^{N} ∑i=1N 求和 §二
\prod_{i=1}^{N} ∏ i = 1 N \prod_{i=1}^{N} ∏i=1N 连乘 §三
\lim_{N \to \infty} lim ⁡ N → ∞ \lim_{N \to \infty} limN→∞ 极限 §四
\int_{a}^{b} ∫ a b \int_{a}^{b} ∫ab 积分 §五
\sqrt{x} x \sqrt{x} x 平方根 §六
\sqrt[n]{x} x n \sqrtn{x} nx n 次方根 §六
\left( ... \right) 自适应括号 括号 §七
\, 细空格 排版 §五
\to → \to → 箭头 §四
\infty ∞ \infty ∞ 无穷 §四、§五
\exp exp ⁡ \exp exp 指数函数 §五
\mathbb{E} E \mathbb{E} E 期望算子 §四

小结

读完这篇,你掌握了:

  • 分数\frac\dfrac、嵌套分数的写法和兼容性
  • 求和:单层/多重求和、条件求和的写法
  • 连乘:连乘与求和的关系、为什么实际代码中用对数求和替代连乘
  • 极限:大数定律的公式写法及其在机器学习中的理论意义
  • 积分:定积分、二重积分、高斯分布归一化的完整写法
  • 根号:平方根、n 次方根在 RMS 和欧氏距离中的应用
  • 自适应括号 :什么时候必须用 \left\right,什么时候不需要
  • 综合推导:从最大似然到交叉熵的完整公式链

下一篇进入论文写作的刚需:矩阵和各种特殊符号(箭头、集合、范数、梯度),再往后就是用 AI 经典公式做综合实战。

如果你在写文章时遇到本文没覆盖的语法,可以在 KaTeX 文档 查到完整的命令列表。