#008. 概率一:条件概率、随机变量与常见分布
#学习目标:把不确定性说清楚
本章的核心不是背公式,而是学会用概率语言描述“不确定但可以计算”的问题。面试里,概率题通常不会只问你某个分布的公式,而会追问:样本空间是什么?事件是什么?条件是什么?先验概率有没有被忽略?随机变量到底取什么值?独立假设是否成立?这些问题回答清楚,后面的期望、方差、MLE、KL、风险估计才有稳固基础。
看到一个问题,先说清楚随机实验、样本空间 \(\Omega\)、事件 \(A\)、随机变量 \(X\) 分别是什么,而不是直接套公式。
\(P(A\mid B)\) 读作“在 \(B\) 已经发生的条件下,\(A\) 发生的概率”。竖线右边不是乘法对象,而是新的信息背景。
Bayes 公式把“原因导致证据”反过来变成“看到证据后原因的概率”。base rate 很小的时候,证据再敏感也可能不足以让后验变大。
独立、不相关、条件独立是不同强度的说法。很多 LLM 和量化建模错误,本质是把弱假设当成强假设。
#概念起点:概率是给事件赋数
从零开始看,概率是在做一件很朴素的事:面对未来或未知结果,我们不能确定它会怎样,但可以给“某类结果会发生”赋一个 \(0\) 到 \(1\) 之间的数。这个数越接近 \(1\),表示我们越相信它会发生;越接近 \(0\),表示我们越相信它不会发生。
例如抛一枚均匀硬币,结果不是正面就是反面。我们说“正面概率是 \(1/2\)”,意思不是硬币会出现半个正面,而是如果这个随机机制被重复很多次,正面出现的长期比例会接近 \(1/2\)。在一次具体抛硬币中,它仍然只会出现正面或反面;概率描述的是不确定性结构,不是单次结果的确定答案。
概率的三条基本规则。
第一,任何事件 \(A\) 的概率满足 \(0\le P(A)\le 1\)。这里 \(P\) 是 probability function,\(A\) 是一个事件。
第二,必然事件的概率是 \(1\),也就是 \(P(\Omega)=1\)。\(\Omega\) 表示所有可能结果的集合。
第三,如果两个事件 \(A\) 和 \(B\) 不可能同时发生,也就是互斥,那么 \(P(A\cup B)=P(A)+P(B)\)。符号 \(\cup\) 读作“并”,表示 \(A\) 或 \(B\) 发生。
如何读公式:\(P(A)\) 读作“事件 \(A\) 的概率”;\(A\cap B\) 读作“\(A\) 和 \(B\) 同时发生”;\(A\cup B\) 读作“\(A\) 或 \(B\) 至少一个发生”;\(A^c\) 读作“\(A\) 的补集”,表示 \(A\) 不发生。
#概率空间、事件与随机变量
严格一点说,一个概率模型先要有概率空间。它由三部分组成:样本空间 \(\Omega\)、事件集合 \(\mathcal{F}\)、概率函数 \(P\)。可以把它理解为“所有可能结果是什么、哪些问题允许被问、每个问题的概率是多少”。
\(\Omega\) 是所有基本结果的集合。例如掷一次骰子,\(\Omega=\{1,2,3,4,5,6\}\)。事件是 \(\Omega\) 的子集,例如“点数是偶数”就是 \(A=\{2,4,6\}\)。概率函数 \(P\) 给事件赋数,例如均匀骰子下 \(P(A)=3/6=1/2\)。
\(\mathcal{F}\) 是事件集合。有限样本空间里,可以简单理解为所有子集都可以作为事件;但在连续空间里,不能随意把每个奇怪集合都当作可测事件,所以需要 \(\mathcal{F}\) 来规定哪些集合可以被赋概率。面试中不需要陷入测度论细节,但要知道概率不是直接给“单个公式”赋数,而是给事件集合赋数。
随机变量是从随机结果到数值的映射。它的名字容易误导:随机变量不是“变量自己随机跳动”,而是一个函数,输入是样本空间里的结果,输出是一个数。
上式读法是:\(X\) 把每个基本结果 \(\omega\) 映射为实数;\(P(X\in A)\) 表示“随机变量 \(X\) 的取值落在集合 \(A\) 里”的概率。真正被概率函数 \(P\) 作用的仍然是样本空间中的事件 \(\{\omega:X(\omega)\in A\}\)。
掷一次均匀骰子,定义随机变量 \(X\) 为“点数是否大于 4”:如果点数是 \(5\) 或 \(6\),令 \(X=1\);否则令 \(X=0\)。问 \(P(X=1)\) 和 \(P(X=0)\)。
完整解答。样本空间是 \(\Omega=\{1,2,3,4,5,6\}\)。事件 \(X=1\) 对应原始结果集合 \(\{5,6\}\),所以 \(P(X=1)=2/6=1/3\)。事件 \(X=0\) 对应 \(\{1,2,3,4\}\),所以 \(P(X=0)=4/6=2/3\)。这个 \(X\) 是 Bernoulli 随机变量,因为它只有 \(0\) 和 \(1\) 两个取值。
大模型的 next-token 输出也可以这样理解。给定上下文 \(c\),模型不会直接说“唯一正确的下一个 token 是什么”,而是给词表中每个 token 一个概率。此时随机变量 \(T\) 的取值空间是词表,\(P(T=t\mid c)\) 是在上下文 \(c\) 下抽到 token \(t\) 的概率。
#条件概率、全概率与 Bayes
条件概率解决的问题是:当我们已经知道某个证据发生后,原来事件的概率应该如何重新计算?它不是新公式游戏,而是把样本空间缩小到“证据已经成立”的那一部分。
这条公式读作:在 \(B\) 发生的条件下 \(A\) 发生的概率,等于 \(A\) 与 \(B\) 同时发生的概率,除以 \(B\) 发生的概率。分母 \(P(B)\) 的作用是重新归一化,因为我们现在只在 \(B\) 这个世界里讨论。
掷一次均匀骰子。令 \(A\) 为“点数大于 4”,令 \(B\) 为“点数是偶数”。求 \(P(A)\) 和 \(P(A\mid B)\)。
\(A=\{5,6\}\),所以 \(P(A)=2/6=1/3\)。\(B=\{2,4,6\}\),在已经知道点数是偶数后,可能结果只剩 \(2,4,6\)。其中大于 4 的只有 \(6\),所以 \(P(A\mid B)=1/3\)。用公式算也一样:\(A\cap B=\{6\}\),因此 \(P(A\mid B)=P(A\cap B)/P(B)=(1/6)/(3/6)=1/3\)。
注意这个例子里 \(P(A)=P(A\mid B)\),但这只是恰好相等,不代表所有条件都不改变概率。如果 \(B\) 改成“点数大于 3”,那么 \(P(A\mid B)=2/3\),就明显变大了。
全概率公式用于“把一个结果拆成多个互斥原因的贡献”。如果 \(B_1,\ldots,B_k\) 把样本空间分成互不重叠且覆盖全部的几块,那么事件 \(A\) 的概率可以写成每个原因下生成 \(A\) 的概率加权和。
这里 \(P(B_i)\) 是第 \(i\) 个原因本身出现的概率,\(P(A\mid B_i)\) 是这个原因出现后产生结果 \(A\) 的概率。乘起来是“原因 \(B_i\) 出现并且结果 \(A\) 发生”的概率;再把所有原因加起来,就是 \(A\) 的总概率。
Bayes 公式用于反向推断。全概率是从原因到结果:已知每类原因如何产生证据,算证据总体概率。Bayes 是从结果到原因:看到证据后,反推哪个原因更可能。
\(P(B_i)\):看到证据 \(A\) 之前,原因 \(B_i\) 本来有多常见。
\(P(A\mid B_i)\):如果原因 \(B_i\) 为真,证据 \(A\) 出现的概率。
\(P(A)\):不管原因是哪一个,证据 \(A\) 总体出现的概率。它是分母,负责归一化。
\(P(B_i\mid A)\):看到证据之后,原因 \(B_i\) 的更新概率。
#Bayes base-rate 完整例题
base-rate 是基础率,也就是某个事件在总体中本来有多常见。很多人学 Bayes 时只盯着“测试准确率很高”,却忽略“疾病本来很罕见”。这会导致后验概率被严重高估。
某疾病在人群中的患病率是 \(1\%\)。检测对患病者的阳性率是 \(99\%\),也就是灵敏度 \(P(+\mid D)=0.99\)。检测对未患病者有 \(5\%\) 的假阳性率,也就是 \(P(+\mid D^c)=0.05\)。现在一个人检测阳性,问他真的患病的概率 \(P(D\mid +)\) 是多少?
第一步:定义事件。\(D\) 表示真的患病,\(D^c\) 表示没有患病,\(+\) 表示检测阳性。已知 \(P(D)=0.01\),所以 \(P(D^c)=0.99\)。
第二步:写 Bayes 公式。
第三步:代入数值。
结论。检测阳性后,真正患病的概率约为 \(16.7\%\),不是 \(99\%\)。原因是疾病本来很罕见,未患病者数量很多,哪怕假阳性率只有 \(5\%\),也会贡献大量阳性样本。
用 10000 人重算更直观。患病者约 \(100\) 人,其中阳性约 \(99\) 人;未患病者约 \(9900\) 人,其中假阳性约 \(495\) 人。总阳性约 \(594\) 人,真正患病的只有 \(99\) 人,所以比例是 \(99/594\approx 16.7\%\)。Bayes 公式本质就是把这个计数过程写成概率形式。
这个例子对 LLM 面试也很重要。模型看到一个 token、一个检索证据、一个 classifier 分数时,不能只问“这个证据在正例中多常见”,还要问“正例本来多常见、负例本来多常见、负例也产生这个证据的概率是多少”。对量化也是一样:某个技术形态在暴涨前很常见,并不意味着看到这个形态就大概率暴涨,因为这个形态在普通行情里也可能频繁出现。
#独立、不相关与条件独立
独立表示一个事件或随机变量的信息不会改变另一个事件或随机变量的概率。对事件来说,如果 \(P(A\mid B)=P(A)\),就说明知道 \(B\) 发生并没有改变 \(A\) 的概率。等价地,在 \(P(B)>0\) 时有 \(P(A\cap B)=P(A)P(B)\)。
对随机变量来说,独立更强:不仅某一个取值事件独立,而是任意取值集合都要独立。离散情形下,经常写成联合分布可以拆成两个边缘分布的乘积。
不相关只说线性关系为零,通常用协方差表示。它比独立弱得多。两个变量可能没有线性相关,却存在明确的非线性关系。
令 \(X\) 在 \(\{-1,0,1\}\) 上均匀取值,令 \(Y=X^2\)。说明 \(X\) 和 \(Y\) 不相关,但不独立。
\(X\) 的三个取值概率都是 \(1/3\),所以 \(E[X]=(-1+0+1)/3=0\)。\(Y=X^2\),当 \(X=-1\) 或 \(1\) 时 \(Y=1\),当 \(X=0\) 时 \(Y=0\)。于是 \(XY=X^3\),\(E[XY]=E[X^3]=(-1+0+1)/3=0\)。因此 \(\operatorname{Cov}(X,Y)=E[XY]-E[X]E[Y]=0-0\cdot E[Y]=0\),它们不相关。
但它们不独立,因为一旦知道 \(Y=0\),就能确定 \(X=0\);一旦知道 \(Y=1\),就知道 \(X\) 只能是 \(-1\) 或 \(1\)。例如 \(P(X=0)=1/3\),但 \(P(X=0\mid Y=0)=1\)。条件信息明显改变了 \(X\) 的分布。
条件独立是另一种常见结构:\(X\) 和 \(Y\) 本来看起来相关,但在给定第三个变量 \(Z\) 后,它们不再提供额外信息。
例如“是否带伞”和“地面是否湿”可能相关,但如果已经知道“是否下雨”,二者之间的剩余关系可能大幅减弱。图模型、朴素 Bayes、隐变量模型都大量依赖条件独立假设。面试中要警惕一句话:“给定什么以后独立?”没有条件对象,条件独立就没有意义。
强弱关系。独立通常推出不相关,但不相关通常不推出独立。联合高斯是重要特例:如果 \((X,Y)\) 服从联合高斯,那么零相关可以推出独立。离开这个特例,不能把相关系数为 \(0\) 当成“没有关系”。
#常见分布按生成机制记
分布是随机变量取值规律的描述。不要把常见分布只当公式表背诵,更好的记法是问:它模拟什么随机机制?一次试验还是多次试验?取值是离散还是连续?参数控制什么含义?
| 分布 | 生成机制 | 参数怎么读 | 典型用途 |
|---|---|---|---|
| Bernoulli | 一次二元事件,只能成功或失败 | \(p\):成功概率 | 点击/不点击,涨/不涨,答案对/错 |
| Binomial | \(n\) 次独立 Bernoulli 的成功次数 | \(n\):次数,\(p\):单次成功概率 | 多次实验成功次数、A/B test 统计 |
| Categorical | 一次多类别选择 | \(p_1,\ldots,p_K\):各类别概率,总和为 \(1\) | next-token sampling,多分类标签 |
| Multinomial | \(n\) 次 categorical 后各类别计数 | \(n\):抽样次数,\(p_k\):第 \(k\) 类概率 | 词频计数、投票结果、桶计数 |
| Uniform | 可选结果被同等对待 | 离散集合或连续区间边界 | 随机初始化、无偏抽样、基准模型 |
| Gaussian | 大量小扰动叠加后的近似形状 | \(\mu\):中心,\(\sigma^2\):扩散程度 | 噪声、误差、估计量近似、收益近似 |
| Poisson | 单位时间或空间内稀疏独立事件计数 | \(\lambda\):平均发生次数 | 订单到达、请求数、事故次数 |
| Exponential | Poisson 事件之间的等待时间 | \(\lambda\):到达率,越大等待越短 | 排队等待、故障间隔、成交到达间隔 |
Bernoulli:\(X\in\{0,1\}\),\(P(X=1)=p\),\(P(X=0)=1-p\)。读作“一次成功概率为 \(p\) 的二元试验”。
Binomial:\(X\sim \operatorname{Binomial}(n,p)\),表示 \(n\) 次独立二元试验里的成功次数。概率质量函数是 \(\binom{n}{k}p^k(1-p)^{n-k}\),其中 \(\binom{n}{k}\) 表示 \(n\) 次里选择 \(k\) 次成功的位置数。
Categorical:\(T\sim \operatorname{Categorical}(p_1,\ldots,p_K)\),表示在 \(K\) 个类别中选一个。LLM 的 token 采样就是典型 categorical 分布。
Gaussian:\(X\sim \mathcal{N}(\mu,\sigma^2)\)。\(\mu\) 控制中心位置,\(\sigma\) 控制分散程度。它常作为误差和估计量的近似,但不适合直接描述严重厚尾风险。
Poisson:\(X\sim \operatorname{Poisson}(\lambda)\),表示固定窗口内事件发生次数。若 \(\lambda=3\),意思是平均每个窗口发生 \(3\) 次,不代表每个窗口都恰好发生 \(3\) 次。
某模型在上下文“北京是中国的”后,对三个候选 token 给出概率:\(P(\text{首都})=0.70\),\(P(\text{城市})=0.20\),\(P(\text{大学})=0.10\)。这是什么分布?如果采样一次,是否一定输出“首都”?
这是一个 categorical 分布,因为随机变量 \(T\) 在多个离散类别中选一个。\(0.70\) 表示“首都”在这次抽样中概率最大,但不表示一定输出。若使用采样策略,仍可能抽到“城市”或“大学”;若使用 greedy decoding,才会直接选概率最大的 token。概率分布描述模型的不确定性,解码策略决定如何把分布变成具体输出。
#LLM 与量化面试连接
概率语言在 LLM 和量化里都不是装饰,而是建模入口。只要问题里有“下一步可能是什么”“信号是否可靠”“未来收益如何分布”“风险事件概率多大”,就已经进入概率建模。
语言模型学习的是 \(P(t_{i+1}\mid t_1,\ldots,t_i)\)。上下文在竖线右边,表示条件;token 在左边,表示要预测的随机变量取值。
temperature 不是改变事实本身,而是改变 categorical 分布的尖锐程度。温度低更偏向高概率 token,温度高会给低概率 token 更多机会。
明日收益 \(R_{t+1}\) 不是一个固定未知数,而是一个条件分布。策略关心的不只是 \(E[R]\),还包括尾部损失、条件风险和极端事件概率。
看到某个信号 \(S\) 后,真正关心的是 \(P(\text{上涨}\mid S)\),不是 \(P(S\mid \text{上涨})\)。忽略 base rate 会高估信号有效性。
一个常见追问是:分类器输出 \(0.9\) 能不能解释成真实概率?严谨回答是:只有在模型经过良好校准时,分数才可以近似解释为概率。未校准模型的 \(0.9\) 可能只是排序分数,表示“比其他样本更像正例”,不保证在所有得分为 \(0.9\) 的样本中真有 \(90\%\) 是正例。
量化里同样如此。一个信号的历史胜率、条件收益分布、不同市场状态下的稳定性都要分开看。若只报告“信号出现后平均收益为正”,但没有说明信号频率、交易成本、尾部亏损、样本外表现和条件独立假设,这个概率结论就不完整。
#常见误区与检查清单
| 误区 | 为什么错 | 正确说法 |
|---|---|---|
| 把 \(P(A\mid B)\) 和 \(P(B\mid A)\) 混为一谈 | 条件方向不同,分母不同,通常数值差异很大 | 先明确谁是原因、谁是证据,再写 Bayes |
| 看到高准确率就认为后验很高 | 忽略 base rate 会高估罕见事件概率 | 同时计算真阳性和假阳性贡献 |
| 相关系数为 \(0\) 就说独立 | 零相关只排除线性关系,不能排除非线性依赖 | 只有在联合高斯等特殊条件下才可推出独立 |
| 把随机变量当成事件 | 随机变量是函数,事件是集合 | \(X=1\) 才是事件,\(X\) 本身是映射 |
| 把分布公式当作定义全部 | 公式不说明何时适用 | 先说生成机制,再说参数和概率函数 |
本章检查清单。
你能否看到题目后先定义 \(\Omega\)、事件和随机变量,而不是直接套公式?
你能否解释 \(P(A\mid B)\) 中竖线右边的 \(B\) 是“已知信息背景”?
你能否用全概率公式把一个结果拆成多个原因的加权贡献?
你能否在 Bayes 题里区分 prior、likelihood、evidence 和 posterior?
你能否用罕见病检测例题说明为什么 base rate 不能忽略?
你能否给出“不相关但不独立”的例子,并说明零协方差只排除线性关系?
你能否解释条件独立里的“给定什么以后独立”?
你能否按生成机制区分 Bernoulli、Binomial、Categorical、Gaussian、Poisson 和 Exponential?
你能否把 next-token prediction 读成 \(P(t_{i+1}\mid t_1,\ldots,t_i)\),并说明这是条件 categorical 分布?
你能否把量化信号问题写成 \(P(\text{目标事件}\mid \text{信号})\),而不是只看 \(P(\text{信号}\mid \text{目标事件})\)?