样本还是随机变量? 期望和分布的严格Notation
期望角标和括号里的 \(X\) 应该大写还是小写?这个问题看似很简单,但实际并没有那么显然。ML 里的符号有很多工程化简写,再加上不同学科的符号习惯并不完全一致,导致同一个符号在不同语境下可能承担不同角色。
符号是定义的体现。所以这一节先从严格的数学视角出发,区分随机变量、取值、样本和分布;再回到 ML 论文中常见的简写,说明这些简写到底省略了什么。
随机变量、取值和样本
严格来说,期望括号里的对象应该是随机变量,或者是随机变量的函数。例如:
\[ \mathbb{E}[X] \]
这里的 \(X\) 通常使用大写,表示一个随机变量。与之对应,\(x\) 通常使用小写,表示随机变量 \(X\) 的一个具体取值。
例如,如果 \(X\) 表示“从数据集中随机抽取一条样本”,那么 \(X\) 是随机变量;而某一次真正抽到的样本,比如一段具体的文本、一张具体的图片,才是 \(x\)。所以,\(X\) 和 \(x\) 的区别不是“抽象”和“具体”这么简单,而是:
- \(X\):随机变量,还没有真正落到某个具体值上。
- \(x\):随机变量 \(X\) 的一个可能取值,或者一次采样得到的样本。
这个区分在把期望写成积分或者求和时尤其重要。
分布应该怎么写
如果随机变量 \(X\) 服从某个分布,常见写法是:
\[ X \sim p(x) \]
这句话的含义是:随机变量 \(X\) 的分布由概率质量函数或者概率密度函数 \(p(x)\) 描述。其中,\(x\) 是随机变量 \(X\) 的取值。
更严格一点说,\(p\) 表示分布本身,或者表示这个分布对应的概率质量函数、概率密度函数;\(p(x)\) 表示这个函数在具体取值 \(x\) 处的值。
因此,下面几个符号的角色并不完全一样:
- \(X\):随机变量。
- \(x\):随机变量 \(X\) 的取值。
- \(p\):分布,或者分布对应的概率函数。
- \(p(x)\):在取值 \(x\) 处的概率质量或概率密度。
如果这时候\(x \) 被理解成了取值,样本最好就由 \(x_i\) 来表示.然而无论是变量,还是样本本质是都是固定的值,它们都不能服从分布. 只有随机变量才谈得上“服从分布”.这种简写在 ML 论文中非常常见,通常是为了简化表达,表示这个样本符合某个分布.
\[ x \sim p(x) \]
期望角标怎么写
如果上下文已经明确了 \(X\) 的分布,可以直接写:
\[ \mathbb{E}[X] \]
如果想强调“对随机变量 \(X\) 求期望”,但暂时不显式写出它的分布,可以写:
\[ \mathbb{E}_X[f(X)] \]
这里的角标 \(X\) 表示期望是关于随机变量 \(X\) 的。这个写法省略了 \(X\) 具体服从哪个分布,因此适合用于分布已经在上下文中定义清楚的场景。
如果想把分布也写清楚,可以写:
\[ \mathbb{E}_{X \sim p}[f(X)] \]
这个写法比较严格,含义是:随机变量 \(X\) 服从分布 \(p\),然后对随机变量的函数 \(f(X)\) 求期望。
也可以看到下面这种写法:
\[ \mathbb{E}_{X \sim p(x)}[f(X)] \]
它的意思仍然是 \(X\) 服从由 \(p(x)\) 描述的分布。不过从符号层面看,\(p(x)\) 里面的小写 \(x\) 是密度函数或质量函数的自变量,而角标里的 \(X\) 是随机变量。这个写法能读懂,但不如 \(\mathbb{E}_{X \sim p}[f(X)]\) 干净。
在 ML 论文中,更常见的写法是:
\[ \mathbb{E}_{x \sim p(x)}[f(x)] \]
这个写法里的 \(x\) 不再严格表示随机变量,而是更像“从分布 \(p\) 中采样得到的一个样本”。它强调的是采样过程:从 \(p(x)\) 中采样一个 \(x\),然后计算 \(f(x)\),最后对很多次采样结果取平均。
所以,\(\mathbb{E}_{x \sim p(x)}[f(x)]\) 是机器学习语境下非常自然的写法,但如果从严格概率论的角度看,它其实是把随机变量和它的取值都记成了 \(x\)。这种省略通常没有问题,只要读者知道这里的 \(x\) 代表“采样得到的样本”。
还有一种常见简写是:
\[ \mathbb{E}_{p(x)}[f(x)] \]
这里的角标 \(p(x)\) 表示“在分布 \(p(x)\) 下求期望”。严格来说,\(p(x)\) 不是随机变量,而是概率质量函数或概率密度函数,所以这个写法也是一种省略。它省略的是“哪个随机变量服从这个分布”。完整含义可以理解为:
\[ X \sim p, \quad \mathbb{E}_{X \sim p}[f(X)] \]
积分形式和求和形式
假设 \(X\) 是连续随机变量,\(p(x)\) 是 \(X\) 的概率密度函数。对于随机变量函数 \(f(X)\),它的期望可以写成:
\[ \mathbb{E}_{X \sim p}[f(X)] = \int f(x) p(x) dx \]
这里需要注意左右两边的符号变化。左边的 \(f(X)\) 使用大写 \(X\),表示它是随机变量的函数;右边的 \(f(x)\) 使用小写 \(x\),因为积分里需要一个具体的积分变量。
如果 \(X\) 是离散随机变量,\(p(x)\) 是 \(X\) 的概率质量函数,那么对应的求和形式是:
\[ \mathbb{E}_{X \sim p}[f(X)] = \sum_x f(x) p(x) \]
从积分的角度: \[ \mathbb{E}_{x \sim p(x)}[f(x)] = \int f(x) p(x) dx \] 中间的 \(x \) 在某些情况下也被理解成 dummy variable (积分变量),而不是样本或者随机变量. 这确实会引入更多的费解: 积分变量或者样本并不能复合一个分布.
推荐的写法
只能说样本,随机变量,积分变量这几个概念实在是太相似又有点乱,而字母又不够用.所以期望的形式实际并不是那么清晰,
不过始终要牢记,期望是作用于随机变量的算子,而不是样本或者一般变量.(时刻思考期望在对哪个随机变量做积分)这一点会在条件期望的时候变得非常重要,让很多形式变得清晰:
所以我个人更倾向于下面这种写法,强调随机变量的写法:
\[ X \sim p(x), \quad \mathbb{E}_{X \sim p}[f(X)] \]
这种写法清楚地区分了随机变量 \(X\)、分布 \(p\),随机变量取值 \( x \),以及随机变量函数 \(f(X)\)。
如果是在讨论机器学习论文、损失函数或者训练目标,也可以使用更常见的采样式写法:
\[ \mathbb{E}_{x \sim p(x)}[f(x)] \]
这更多是在从积分变量(对随机变量的积分),或者样本采样的角度来理解期望(对某个随机变量采样).但我还是建议时刻从随机变量的角度来思考,就像是括号里的内容.
所以,一个比较实用的阅读规则是:
- 看到 \(\mathbb{E}_{X \sim p}[f(X)]\),把它理解为严格的随机变量记法。
- 看到 \(\mathbb{E}_{x \sim p(x)}[f(x)]\),把它理解为 ML 论文中的采样记法。
- 看到 \(\mathbb{E}_{p(x)}[f(x)]\),把它理解为“在分布 \(p(x)\) 下取期望”的省略写法。
只要先定义清楚符号,这几种写法通常都可以使用。真正重要的是不要在同一段推导里随意切换含义:如果 \(X\) 表示随机变量,\(x\) 表示具体取值,那么后面的公式最好持续保持这个约定。