读AI论文最大的障碍不是英语,是数学符号。看到 $\sum$、$\nabla$、$\mathbb{E}$ 就头大?本文用符号→读法→含义→代码的模式,30分钟帮你扫清障碍。

前置要求:高中数学水平,会基础Python。


一、求和与连乘

1.1 求和符号 $\sum$

读法:Sigma(西格玛),读作"sum"

含义:把一堆数加起来

公式示例: $$\sum_{i=1}^{n} x_i = x_1 + x_2 + \cdots + x_n$$

论文中常见形式

  • 损失函数:$L = \sum_{i=1}^{N} \ell(y_i, \hat{y}_i)$(所有样本的损失加起来)
  • 注意力权重:$c = \sum_{i=1}^{T} \alpha_i h_i$(加权求和)

Python实现

import numpy as np

# 方法1:直接求和
x = [1, 2, 3, 4, 5]
result = sum(x)  # 15

# 方法2:NumPy
x = np.array([1, 2, 3, 4, 5])
result = np.sum(x)  # 15

# 方法3:带条件的求和(论文常见)
# 例如:只对正数求和
result = sum(xi for xi in x if xi > 0)

1.2 连乘符号 $\prod$

读法:Pi(派),读作"product"

含义:把一堆数乘起来

公式示例: $$\prod_{i=1}^{n} x_i = x_1 \times x_2 \times \cdots \times x_n$$

论文中常见形式

  • 概率链式法则:$P(x_1, x_2, \ldots, x_n) = \prod_{i=1}^{n} P(x_i | x_{<i})$
  • 语言模型:$P(\text{句子}) = \prod_{t=1}^{T} P(w_t | w_1, \ldots, w_{t-1})$

Python实现

import numpy as np

x = [1, 2, 3, 4, 5]
result = np.prod(x)  # 120

# 概率连乘(常用log避免下溢)
probs = [0.9, 0.8, 0.7]
log_prob = sum(np.log(p) for p in probs)  # 用log求和代替连乘
prob = np.exp(log_prob)  # 转回概率

二、向量与矩阵

2.1 向量 $\vec{v}$ 或 $\mathbf{v}$

读法:vector v

含义:一列(或一行)数字

论文中常见形式

  • 词向量:$\vec{v}_{word}$(一个词的向量表示)
  • 隐藏状态:$\mathbf{h}_t$(时刻t的隐藏向量)

Python实现

import numpy as np

# 创建向量
v = np.array([1, 2, 3])  # shape: (3,)

# 向量点积
u = np.array([4, 5, 6])
dot_product = np.dot(v, u)  # 1*4 + 2*5 + 3*6 = 32

# 向量拼接(论文中的 [h; x] 或 [h, x])
h = np.array([1, 2])
x = np.array([3, 4])
concat = np.concatenate([h, x])  # [1, 2, 3, 4]

2.2 矩阵 $W$、$A$、$M$

读法:matrix W

含义:二维数组,神经网络的权重通常用矩阵表示

论文中常见形式

  • 权重矩阵:$W_Q$, $W_K$, $W_V$(Transformer中的Query/Key/Value权重)
  • 注意力矩阵:$A_{ij}$(第i个query对第j个key的注意力)

Python实现

import numpy as np

# 创建矩阵
W = np.array([[1, 2], [3, 4], [5, 6]])  # shape: (3, 2)

# 矩阵乘法(论文中的 Wx)
x = np.array([1, 2])  # shape: (2,)
result = W @ x  # 或 np.dot(W, x),shape: (3,)
# result = [1*1+2*2, 3*1+4*2, 5*1+6*2] = [5, 11, 17]

2.3 转置 $W^T$

读法:W transpose

含义:行变列,列变行

公式:如果 $W$ 是 $m \times n$ 矩阵,则 $W^T$ 是 $n \times m$ 矩阵

论文中常见形式

  • 注意力计算:$QK^T$(Query和Key的转置相乘)

Python实现

import numpy as np

W = np.array([[1, 2, 3], [4, 5, 6]])  # shape: (2, 3)
W_T = W.T  # shape: (3, 2)
# W_T = [[1, 4], [2, 5], [3, 6]]

2.4 范数 $|W|$

读法:norm of W

含义:衡量向量/矩阵的"大小"

常见类型

  • L1范数:$|x|_1 = \sum_i |x_i|$(绝对值之和)
  • L2范数:$|x|_2 = \sqrt{\sum_i x_i^2}$(平方和开根号)
  • Frobenius范数:$|W|F = \sqrt{\sum{i,j} W_{ij}^2}$(矩阵的L2范数)

论文中常见形式

  • 正则化:$L = L_{task} + \lambda |W|_2^2$
  • 归一化:$\hat{x} = \frac{x}{|x|_2}$

Python实现

import numpy as np

x = np.array([3, 4])

# L1范数
l1 = np.linalg.norm(x, ord=1)  # |3| + |4| = 7

# L2范数
l2 = np.linalg.norm(x, ord=2)  # sqrt(9 + 16) = 5

# 归一化
x_normalized = x / np.linalg.norm(x)  # [0.6, 0.8]

2.5 逐元素乘法 $\odot$

读法:Hadamard product,或element-wise multiplication

含义:对应位置相乘(不是矩阵乘法!)

公式:$(A \odot B){ij} = A{ij} \times B_{ij}$

论文中常见形式

  • LSTM门控:$c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c}_t$

Python实现

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = a * b  # [4, 10, 18],逐元素相乘

三、概率符号

3.1 概率 $P(\cdot)$

读法:probability of

含义:某事件发生的可能性,取值0到1

论文中常见形式

  • 条件概率:$P(y|x)$(给定x,y发生的概率)
  • 联合概率:$P(x, y)$(x和y同时发生的概率)

Python实现

import numpy as np

# 离散概率分布
probs = np.array([0.1, 0.3, 0.6])  # 三个类别的概率
assert np.isclose(probs.sum(), 1.0)  # 概率和为1

# 从概率分布采样
sample = np.random.choice([0, 1, 2], p=probs)

3.2 期望 $\mathbb{E}[\cdot]$

读法:expectation of,或expected value

含义:平均值的推广,概率加权平均

公式: $$\mathbb{E}[X] = \sum_x x \cdot P(x) \quad \text{(离散)}$$ $$\mathbb{E}[X] = \int x \cdot p(x) dx \quad \text{(连续)}$$

论文中常见形式

  • 损失函数:$L = \mathbb{E}_{x \sim D}[\ell(f(x), y)]$(在数据分布上的期望损失)
  • RLHF:$\mathbb{E}_{y \sim \pi}[r(y)]$(策略产生输出的期望奖励)

Python实现

import numpy as np

# 离散期望
values = np.array([1, 2, 3])
probs = np.array([0.2, 0.3, 0.5])
expectation = np.sum(values * probs)  # 1*0.2 + 2*0.3 + 3*0.5 = 2.3

# 蒙特卡洛估计(采样近似期望)
samples = np.random.choice(values, size=10000, p=probs)
mc_expectation = np.mean(samples)  # 约等于2.3

3.3 高斯分布 $\mathcal{N}(\mu, \sigma^2)$

读法:Normal distribution with mean mu and variance sigma squared

含义:正态分布,最常见的连续概率分布

公式: $$p(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)$$

论文中常见形式

  • VAE编码器:$q(z|x) = \mathcal{N}(\mu(x), \sigma^2(x))$
  • 重参数化:$z = \mu + \sigma \cdot \epsilon, \quad \epsilon \sim \mathcal{N}(0, 1)$

Python实现

import numpy as np

# 从高斯分布采样
mu, sigma = 0, 1
samples = np.random.normal(mu, sigma, size=1000)

# 重参数化技巧(VAE中常用)
mu = np.array([1.0, 2.0])
sigma = np.array([0.5, 0.3])
epsilon = np.random.normal(0, 1, size=mu.shape)
z = mu + sigma * epsilon  # 可微分的采样

四、微积分符号

4.1 偏导数 $\frac{\partial}{\partial x}$

读法:partial derivative with respect to x

含义:函数对某个变量的变化率(其他变量固定)

论文中常见形式

  • 梯度计算:$\frac{\partial L}{\partial W}$(损失对权重的偏导)
  • 链式法则:$\frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial x}$

Python实现(PyTorch自动微分)

import torch

# 定义变量(需要梯度)
x = torch.tensor([2.0], requires_grad=True)
y = x ** 2  # y = x^2

# 计算梯度
y.backward()
print(x.grad)  # tensor([4.]),即 dy/dx = 2x = 4

4.2 梯度 $\nabla$

读法:nabla,或gradient

含义:所有偏导数组成的向量

公式: $$\nabla_\theta L = \left[\frac{\partial L}{\partial \theta_1}, \frac{\partial L}{\partial \theta_2}, \ldots\right]$$

论文中常见形式

  • 梯度下降:$\theta \leftarrow \theta - \eta \nabla_\theta L$

Python实现

import torch

# 多变量函数的梯度
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = (x ** 2).sum()  # y = x1^2 + x2^2 + x3^2

y.backward()
print(x.grad)  # tensor([2., 4., 6.]),即 [2x1, 2x2, 2x3]

五、常见函数

5.1 Sigmoid $\sigma(x)$

公式: $$\sigma(x) = \frac{1}{1 + e^{-x}}$$

含义:把任意实数压缩到(0, 1)区间,常用于门控机制

Python实现

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 或使用scipy
from scipy.special import expit
result = expit(0)  # 0.5

5.2 Tanh $\tanh(x)$

公式: $$\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}$$

含义:把任意实数压缩到(-1, 1)区间

Python实现

import numpy as np

result = np.tanh(0)  # 0.0
result = np.tanh(1)  # 约0.76

5.3 ReLU

公式: $$\text{ReLU}(x) = \max(0, x)$$

含义:负数变0,正数不变。最常用的激活函数

Python实现

import numpy as np

def relu(x):
    return np.maximum(0, x)

x = np.array([-1, 0, 1, 2])
result = relu(x)  # [0, 0, 1, 2]

5.4 Softmax

公式: $$\text{softmax}(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}}$$

含义:把一组数转换为概率分布(和为1)

Python实现

import numpy as np

def softmax(x):
    exp_x = np.exp(x - np.max(x))  # 减max防止溢出
    return exp_x / exp_x.sum()

x = np.array([1, 2, 3])
probs = softmax(x)  # [0.09, 0.24, 0.67]
print(probs.sum())  # 1.0

六、集合与逻辑符号

6.1 属于 $\in$

读法:belongs to,或in

含义:元素属于某个集合

论文中常见形式

  • $x \in \mathbb{R}^d$(x是d维实数向量)
  • $w \in V$(w是词表V中的词)

6.2 对所有 $\forall$

读法:for all

含义:对于所有的…

论文中常见形式

  • $\forall i \in {1, \ldots, n}$(对于所有i从1到n)

6.3 存在 $\exists$

读法:there exists

含义:存在某个…


6.4 argmax / argmin

公式: $$\arg\max_x f(x) = \text{使} f(x) \text{最大的} x \text{值}$$

论文中常见形式

  • 预测:$\hat{y} = \arg\max_y P(y|x)$(选择概率最大的类别)

Python实现

import numpy as np

scores = np.array([0.1, 0.7, 0.2])
best_idx = np.argmax(scores)  # 1
best_value = scores[best_idx]  # 0.7

七、积分符号

7.1 积分 $\int$

读法:integral

含义:连续版本的求和,计算曲线下的面积

公式示例: $$\int_a^b f(x) dx$$

论文中常见形式

  • 连续期望:$\mathbb{E}[X] = \int x \cdot p(x) dx$
  • 信息熵:$H(X) = -\int p(x) \log p(x) dx$
  • KL散度:$D_{KL}(P | Q) = \int p(x) \log \frac{p(x)}{q(x)} dx$

Python实现

import numpy as np
from scipy import integrate

# 数值积分
def f(x):
    return x ** 2

result, error = integrate.quad(f, 0, 1)  # ∫x²dx from 0 to 1 = 1/3
print(f"积分结果: {result:.4f}")  # 0.3333

# 蒙特卡洛积分(高维常用)
samples = np.random.uniform(0, 1, 10000)
mc_result = np.mean(samples ** 2)  # 约0.333

八、信息论符号

8.1 信息熵 $H(X)$

读法:entropy of X

含义:衡量随机变量的不确定性/信息量

公式: $$H(X) = -\sum_x P(x) \log P(x)$$

论文中常见形式

  • MDL原理:最小化描述长度
  • 复杂度度量:系统的信息熵

Python实现

import numpy as np

def entropy(p):
    """计算离散分布的熵"""
    p = np.clip(p, 1e-10, 1)  # 避免log(0)
    return -np.sum(p * np.log2(p))

# 示例
p_uniform = np.array([0.25, 0.25, 0.25, 0.25])  # 均匀分布
p_peaked = np.array([0.9, 0.05, 0.03, 0.02])    # 集中分布

print(f"均匀分布熵: {entropy(p_uniform):.2f}")  # 2.0 (最大)
print(f"集中分布熵: {entropy(p_peaked):.2f}")   # 0.57 (较小)

8.2 互信息 $I(X; Y)$

读法:mutual information between X and Y

含义:X和Y共享的信息量

公式: $$I(X; Y) = H(X) + H(Y) - H(X, Y)$$

Python实现

from sklearn.metrics import mutual_info_score

# 离散变量的互信息
x = [0, 0, 1, 1, 2, 2]
y = [0, 0, 1, 1, 1, 2]
mi = mutual_info_score(x, y)
print(f"互信息: {mi:.4f}")

九、特殊数学符号

9.1 实数集 $\mathbb{R}$

读法:real numbers

含义:所有实数的集合

论文中常见形式

  • $x \in \mathbb{R}^d$:x是d维实数向量
  • $W \in \mathbb{R}^{m \times n}$:W是m行n列的实数矩阵

9.2 约等于 $\approx$

读法:approximately equal to

含义:近似相等

论文中常见形式

  • $\pi \approx 3.14$
  • 近似公式:$\log(1+x) \approx x$(当x很小时)

9.3 正比于 $\propto$

读法:proportional to

含义:成正比,忽略常数因子

论文中常见形式

  • 贝叶斯:$P(\theta|D) \propto P(D|\theta) P(\theta)$

9.4 下取整/上取整 $\lfloor \cdot \rfloor$ / $\lceil \cdot \rceil$

读法:floor / ceiling

含义:向下/向上取整

论文中常见形式

  • 卷积输出尺寸:$H_{out} = \lfloor \frac{H_{in} + 2p - k}{s} \rfloor + 1$

Python实现

import numpy as np

x = 3.7
print(np.floor(x))  # 3.0 (下取整)
print(np.ceil(x))   # 4.0 (上取整)

9.5 最小/最大 $\min$ / $\max$

公式: $$\min_x f(x) = \text{使} f(x) \text{最小的值}$$

论文中常见形式

  • 损失最小化:$\min_\theta L(\theta)$
  • 对抗训练:$\min_G \max_D V(D, G)$(GAN)

Python实现

import numpy as np

x = np.array([3, 1, 4, 1, 5])
print(np.min(x))  # 1
print(np.max(x))  # 5
print(np.argmin(x))  # 1 (最小值的索引)

十、下标与上标约定

符号 含义 示例
$x_i$ 第i个元素 $x_1, x_2, \ldots$
$x_t$ 时刻t的值 序列中第t步
$x^{(l)}$ 第l层的值 神经网络第l层
$W^T$ 转置 矩阵转置
$W^{-1}$ 逆矩阵 矩阵求逆
$x’$ 或 $\hat{x}$ 变换后/预测值 预测输出

完整符号速查表

基础运算符号

符号 读法 含义 Python
$\sum$ sigma 求和 np.sum()
$\prod$ pi 连乘 np.prod()
$\int$ integral 积分 scipy.integrate.quad()
$\min$ / $\max$ min / max 最小/最大值 np.min() / np.max()
$\arg\max$ / $\arg\min$ argmax / argmin 最值索引 np.argmax() / np.argmin()
$\lfloor x \rfloor$ / $\lceil x \rceil$ floor / ceiling 下取整/上取整 np.floor() / np.ceil()

向量与矩阵符号

符号 读法 含义 Python
$\vec{v}$ / $\mathbf{v}$ vector v 向量 np.array([...])
$W$ matrix W 矩阵 np.array([[...]])
$W^T$ W transpose 转置 W.T
$W^{-1}$ W inverse 逆矩阵 np.linalg.inv(W)
$|x|$ / $|x|_2$ norm L2范数 np.linalg.norm(x)
$|x|_1$ L1 norm L1范数 np.linalg.norm(x, ord=1)
$|W|_F$ Frobenius norm F范数 np.linalg.norm(W, 'fro')
$\odot$ hadamard 逐元素乘 a * b
$[h; x]$ / $[h, x]$ concatenate 向量拼接 np.concatenate([h, x])
$\cdot$ / $@$ dot product 矩阵乘法 A @ Bnp.dot(A, B)

概率与统计符号

符号 读法 含义 Python
$P(\cdot)$ probability 概率 -
$P(y|x)$ conditional prob 条件概率 -
$p(\cdot)$ density 概率密度 -
$\mathbb{E}[\cdot]$ expectation 期望 np.mean()
$\text{Var}(\cdot)$ variance 方差 np.var()
$\mathcal{N}(\mu, \sigma^2)$ normal 高斯分布 np.random.normal(mu, sigma)
$\sim$ distributed as 服从分布 -
$H(X)$ entropy 信息熵 -np.sum(p * np.log(p))
$I(X; Y)$ mutual info 互信息 sklearn.metrics.mutual_info_score()
$D_{KL}$ KL divergence KL散度 见第二篇

微积分符号

符号 读法 含义 Python
$\frac{\partial}{\partial x}$ partial 偏导数 tensor.backward()
$\nabla$ nabla / gradient 梯度 tensor.grad
$\frac{d}{dx}$ derivative 导数 torch.autograd.grad()

激活函数

符号 公式 Python
$\sigma(x)$ $\frac{1}{1+e^{-x}}$ 1/(1+np.exp(-x))
$\tanh(x)$ $\frac{e^x-e^{-x}}{e^x+e^{-x}}$ np.tanh(x)
$\text{ReLU}(x)$ $\max(0, x)$ np.maximum(0, x)
$\text{softmax}(x)$ $\frac{e^{x_i}}{\sum_j e^{x_j}}$ 见第二篇
$\text{GELU}(x)$ $x \cdot \Phi(x)$ torch.nn.GELU()

集合与逻辑符号

符号 读法 含义
$\in$ in / belongs to 属于
$\notin$ not in 不属于
$\subset$ subset 子集
$\forall$ for all 对所有
$\exists$ exists 存在
$\mathbb{R}$ real numbers 实数集
$\mathbb{R}^d$ R to the d d维实数空间
$\mathbb{Z}$ integers 整数集

关系符号

符号 读法 含义
$\approx$ approximately 约等于
$\propto$ proportional to 正比于
$\equiv$ equivalent 恒等于
$\leq$ / $\geq$ less/greater or equal 小于等于/大于等于
$\ll$ / $\gg$ much less/greater 远小于/远大于

下标与上标约定

符号 含义 示例
$x_i$ 第i个元素 $x_1, x_2, \ldots$
$x_t$ 时刻t的值 序列中第t步
$x^{(l)}$ 第l层的值 神经网络第l层
$W^T$ 转置 矩阵转置
$W^{-1}$ 逆矩阵 矩阵求逆
$\hat{x}$ 预测值 模型输出
$\tilde{x}$ 变换后的值 候选值
$x'$ 导数或变体 $f’(x)$
$x^*$ 最优值 $\theta^*$
$\bar{x}$ 平均值 样本均值

下一篇:【AI数学速成02】30分钟拆解AI核心公式