现在位置: 首页 > AI 数学基础 > 正文

离散随机变量 -- 从掷骰子到概率质量函数

随机变量把「随机事件」形式化为数学工具。离散随机变量取值有限或可数。


概念解析

随机变量

随机变量 = 取值不确定的变量,每个取值有对应的概率。

PMF(概率质量函数)

\[ P(X = x_k) = p_k, \quad \sum_k p_k = 1 \]

伯努利分布

一次试验,两种结果:P(成功)=p,P(失败)=1-p。二分类问题的数学建模。

二项分布

\[ P(X=k) = \binom{n}{k} p^k (1-p)^{n-k} \]

n 次独立伯努利试验,成功 k 次的概率。


生活例子

掷骰子:X 是点数,P(X=1)=1/6, P(X=2)=1/6, ...。

掷 10 次硬币,正面次数 X 服从二项分布 Binomial(10, 0.5),最可能是 5 次。


Python 动手实践

实例

import numpy as np

# 掷骰子 PMF
rolls = np.random.randint(1, 7, size=10000)
for v in range(1, 7):
    print(f"点数{v}: {np.mean(rolls==v):.4f}")

# 伯努利
print(f"\n伯努利 p=0.3, 1000次试验, 成功率={np.random.binomial(1,0.3,1000).mean():.3f}")

# 二项分布 Binomial(10, 0.3)
samples = np.random.binomial(10, 0.3, 10000)
k_best = np.bincount(samples).argmax()
print(f"二项分布 n=10,p=0.3: 最可能 k={k_best} (理论=np=3)")

运行输出:

点数1: 0.1628
点数2: 0.1661
点数3: 0.1686
点数4: 0.1686
点数5: 0.1637
点数6: 0.1702

伯努利 p=0.3, 1000次试验, 成功率=0.295
二项分布 n=10,p=0.3: 最可能 k=3 (理论=np=3)

二项分布 PMF 交互图表

二项分布 Binomial(n=10, p=0.3) 的概率质量函数(PMF)。调整滑块观察不同 p 值下的分布形态:


AI 中的应用场景

二分类标签 = 伯努利分布

逻辑回归和二元分类器将标签 y ∈ {0,1} 建模为伯努利分布:P(y=1|x) = \sigma(wx+b),P(y=0|x) = 1-\sigma(wx+b)。二元交叉熵损失就是在此假设下的负对数似然。这就是为什么二分类任务的输出层用 Sigmoid + BCE。

多分类 = 类别分布(多项分布的一次试验)

多分类中标签是 one-hot 向量,Softmax 输出的每个类别概率之和为 1。这等价于一次 n 面的「骰子」试验,每面概率不同。交叉熵损失在此假设下等于负对数似然。

Dropout 正则化 = 伯努利试验

训练时每个神经元以概率 p 被保留(伯努利试验),以概率 1-p 被丢弃。这相当于每次迭代训练一个不同的子网络,起到了集成学习的效果。测试时所有神经元都激活但输出乘 p 做缩放补偿。

强化学习中的探索 = 从离散分布采样

DQN 中常使用 ε-贪心策略:以 ε 概率随机选动作(伯努利),以 1-ε 选最优动作。这是最简单的探索策略,确保智能体不会永远困在次优策略中。