概率分布


文档摘要

概率分布 概率分布描述随机结果如何在可能的取值上展开。本文件罗列了关键的离散和连续分布——伯努利、二项、泊松、高斯、指数、Beta 等,并给出每个分布的公式、直觉和机器学习应用(损失函数、先验、噪声模型)。 在第 4 章中我们介绍了随机变量、PMF、PDF 和 CDF。这里我们把机器学习和统计学中最重要的概率分布做个汇编,给出每个分布的直觉、公式、均值和方差。 三个核心函数快速回顾(完整定义见第 4 章): PMF $P(X = x)$:给出每个离散结果的概率。柱状图里的那些柱子。 PDF $f(x)$:给出连续变量在每个点处的密度。两点之间曲线下方的面积才是概率。 CDF $F(x) = P(X \le x)$:到 $x$ 为止的累积概率。永远从 0 到 1,单调不减。

概率分布

概率分布描述随机结果如何在可能的取值上展开。本文件罗列了关键的离散和连续分布——伯努利、二项、泊松、高斯、指数、Beta 等,并给出每个分布的公式、直觉和机器学习应用(损失函数、先验、噪声模型)。

  • 在第 4 章中我们介绍了随机变量、PMF、PDF 和 CDF。这里我们把机器学习和统计学中最重要的概率分布做个汇编,给出每个分布的直觉、公式、均值和方差。

  • 三个核心函数快速回顾(完整定义见第 4 章):

    • PMF P(X = x):给出每个离散结果的概率。柱状图里的那些柱子。
    • PDF f(x):给出连续变量在每个点处的密度。两点之间曲线下方的面积才是概率。
    • CDF F(x) = P(X \le x):到 x 为止的累积概率。永远从 0 到 1,单调不减。
  • 一个分布的**支撑集(support)**是 PMF 或 PDF 取正值的那些取值集合。掷一颗骰子的支撑集是 \{1,2,3,4,5,6\}。正态分布的支撑集是所有实数 (-\infty, \infty)

  • 分布可以干净地分成两大家族:离散的(可数结果,用 PMF)和连续的(不可数结果,用 PDF)。

  • 伯努利分布(Bernoulli distribution):最简单的分布。一次试验只有两种结果:成功(1)的概率是 p,失败(0)的概率是 1-p

P(X = x) = p^x (1 - p)^{1-x}, \quad x \in \{0, 1\}
  • 均值:E[X] = p。方差:\text{Var}(X) = p(1-p)

  • 每一次掷硬币、每一个是/否分类、每一个二元结果都是一次伯努利试验。在 ML 中,sigmoid 函数的输出正是某个伯努利分布的 p 参数。

  • 二项分布(Binomial distribution):统计在 n 次独立的伯努利试验中成功的次数,每次成功的概率都是 p

P(X = k) = \binom{n}{k} p^k (1-p)^{n-k}, \quad k = 0, 1, \ldots, n
  • 来自第 1 节的二项式系数 \binom{n}{k} 统计的是在 n 次试验中安排 k 次成功的方式数。

  • 均值:E[X] = np。方差:\text{Var}(X) = np(1-p)

伯努利作为单个柱状图,对比二项分布作为对次数的分布

  • 例子:把一枚偏硬币(p = 0.7)掷 8 次。恰好掷出 6 次正面的概率是 \binom{8}{6}(0.7)^6(0.3)^2 = 28 \times 0.1176 \times 0.09 \approx 0.296

  • 泊松分布(Poisson distribution):在已知平均速率 \lambda 的情况下,统计一段固定时间或空间内事件发生的次数。在事件稀少且相互独立时非常有用。

P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!}, \quad k = 0, 1, 2, \ldots
  • 均值:E[X] = \lambda。方差:\text{Var}(X) = \lambda。均值等于方差,这是它的标志性性质。

  • 例子:每小时邮件数(\lambda = 5)、每页错别字数、每秒服务器请求数。在 ML 中,泊松回归用来对计数数据建模,而线性模型可能会预测出负的计数。

  • n \to \inftyp \to 0 且保持 np = \lambda 不变时,Binomial(n,p) 收敛到 Poisson(\lambda)。这正是泊松分布适合大规模群体中稀有事件的原因。

  • 几何分布(Geometric distribution):统计直到第一次成功为止所进行的试验次数。"我要掷多少次硬币才能得到第一个正面?"

P(X = k) = (1-p)^{k-1} p, \quad k = 1, 2, 3, \ldots
  • 均值:E[X] = 1/p。方差:\text{Var}(X) = (1-p)/p^2

  • 几何分布是无记忆的(memoryless):再等 k 次试验才成功的概率,与你已经等了多少次无关。这让它在离散分布中显得特别。

  • 负二项分布(Negative Binomial distribution):把几何分布推广到统计直到第 r 次成功为止的试验次数(几何分布是 r=1 的特例)。

P(X = k) = \binom{k-1}{r-1} p^r (1-p)^{k-r}, \quad k = r, r+1, r+2, \ldots
  • 均值:E[X] = r/p。方差:\text{Var}(X) = r(1-p)/p^2

  • 负二项分布也常用于对过分散的计数数据建模(方差超过均值的情况),而泊松分布处理不了这种情形。

  • 现在我们转向连续分布。

  • 均匀分布(Uniform distribution):区间 [a, b] 内所有取值等可能。它的 PDF 是一个扁平的矩形。

f(x) = \frac{1}{b - a}, \quad a \le x \le b
  • 均值:E[X] = \frac{a+b}{2}。方差:\text{Var}(X) = \frac{(b-a)^2}{12}

  • 随机数生成器以 Uniform(0,1) 样本作为起点。其他分布都是通过对这些均匀样本做变换来生成的。

  • 正态分布(Normal distribution,也称高斯分布 Gaussian distribution):统计学中最重要的分布。它由中心极限定理(见第 4 章)自然产生:许多独立随机变量的平均,无论原分布如何,都会趋向于正态分布。

f(x) = \frac{1}{\sigma\sqrt{2\pi}} \exp\!\left(-\frac{(x - \mu)^2}{2\sigma^2}\right)
  • 均值:E[X] = \mu。方差:\text{Var}(X) = \sigma^2

  • **标准正态分布(standard normal)**有 \mu = 0\sigma = 1。任何正态变量 X 都可以用 Z = (X - \mu)/\sigma 标准化为标准正态变量 Z

钟形曲线,按 68-95-99.7 经验法则标出阴影区域

  • **经验法则(empirical rule,68-95-99.7 法则)**说:

    • 约 68% 的数据落在均值 \pm 1\sigma 范围内
    • 约 95% 落在 \pm 2\sigma
    • 约 99.7% 落在 \pm 3\sigma
  • 在 ML 中,正态分布无处不在:权重初始化、数据增强中的噪声、MSE 损失背后的假设(它隐含假设误差服从高斯分布),以及变分自编码器中的重参数化技巧(reparameterisation trick)。

  • 指数分布(Exponential distribution):对泊松过程中事件之间的时间间隔建模。如果事件以速率 \lambda 到达,那么它们之间的等待时间服从 Exponential(\lambda)

f(x) = \lambda e^{-\lambda x}, \quad x \ge 0
  • 均值:E[X] = 1/\lambda。方差:\text{Var}(X) = 1/\lambda^2

  • 就像离散变量的几何分布一样,指数分布是无记忆的P(X > s + t | X > s) = P(X > t)。再等 t 个单位时间的概率,与你已经等了多久无关。

  • Gamma 分布(Gamma distribution):指数分布的推广。它对泊松过程中直到第 \alpha 次事件为止的时间建模(指数分布对应 \alpha = 1)。

f(x) = \frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha - 1} e^{-\beta x}, \quad x > 0
  • 这里 \alpha(形状)控制形状,\beta(速率)控制尺度。\Gamma(\alpha) 是 Gamma 函数,它把阶乘推广到实数:对正整数 \Gamma(n) = (n-1)!

  • 均值:E[X] = \alpha/\beta。方差:\text{Var}(X) = \alpha/\beta^2

  • Beta 分布(Beta distribution):定义在区间 [0, 1] 上,非常适合用来对概率、比例和速率建模。

f(x) = \frac{x^{\alpha - 1}(1 - x)^{\beta - 1}}{B(\alpha, \beta)}, \quad 0 \le x \le 1
  • 分母 B(\alpha, \beta) = \frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha + \beta)} 是 Beta 函数,一个归一化常数。

  • 均值:E[X] = \frac{\alpha}{\alpha + \beta}。方差:\text{Var}(X) = \frac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)}

  • Beta 分布是伯努利和二项似然的共轭先验(conjugate prior)。这意味着如果你的先验是 Beta,数据是伯努利,那么后验也是 Beta,这让贝叶斯更新在解析上变得可行。我们在第 4 节会用到这一点。

四种常见分布形状:均匀、指数、Beta、泊松

  • 卡方分布(Chi-squared distribution,\chi^2:如果你取 k 个独立的标准正态随机变量,求它们的平方和,结果就服从自由度为 k\chi^2 分布。
f(x) = \frac{1}{2^{k/2}\Gamma(k/2)} x^{k/2 - 1} e^{-x/2}, \quad x > 0
  • 均值:E[X] = k。方差:\text{Var}(X) = 2k

  • \chi^2 分布其实是 Gamma 分布在 \alpha = k/2\beta = 1/2 时的特例。它出现在假设检验(第 4 章的卡方检验)、拟合优度检验,以及计算方差的置信区间中。

  • 学生 t 分布(Student's t-distribution):看起来像正态分布,但尾巴更厚。当你用小样本估计一个正态分布总体的均值、且总体方差未知时,它就会出现。

f(x) = \frac{\Gamma\!\left(\frac{\nu+1}{2}\right)}{\sqrt{\nu\pi}\,\Gamma\!\left(\frac{\nu}{2}\right)} \left(1 + \frac{x^2}{\nu}\right)^{-(\nu+1)/2}
  • 参数 \nu(nu)是自由度。当 \nu \to \infty 时,t 分布收敛到标准正态分布。当 \nu 较小时,更厚的尾巴把更多概率给了极端值,反映出小样本带来的额外不确定性。

  • 均值:E[X] = 0(当 \nu > 1)。方差:\text{Var}(X) = \frac{\nu}{\nu - 2}(当 \nu > 2)。

  • t 分布用于 t 检验(第 4 章),并且在贝叶斯推断中作为把未知方差积分掉后的边缘分布出现。

  • 总结一下关键分布:

分布 类型 支撑集 均值 方差
Bernoulli(p) Discrete \{0,1\} p p(1-p)
Binomial(n,p) Discrete \{0,\ldots,n\} np np(1-p)
Poisson(\lambda) Discrete \{0,1,2,\ldots\} \lambda \lambda
Geometric(p) Discrete \{1,2,3,\ldots\} 1/p (1-p)/p^2
Uniform(a,b) Continuous [a,b] (a+b)/2 (b-a)^2/12
Normal(\mu,\sigma^2) Continuous (-\infty,\infty) \mu \sigma^2
Exponential(\lambda) Continuous [0,\infty) 1/\lambda 1/\lambda^2
Gamma(\alpha,\beta) Continuous (0,\infty) \alpha/\beta \alpha/\beta^2
Beta(\alpha,\beta) Continuous [0,1] \alpha/(\alpha+\beta) 见上文
\chi^2(k) Continuous (0,\infty) k 2k
Student's t(\nu) Continuous (-\infty,\infty) 0 \nu/(\nu-2)

编程练习(使用 CoLab 或 notebook)

  1. 绘制 n=20 时多个 p 值的二项分布 PMF。观察形状如何从左偏变到对称,再到右偏。
import jax.numpy as jnp import matplotlib.pyplot as plt from math import comb n = 20 ks = jnp.arange(0, n + 1) fig, axes = plt.subplots(1, 3, figsize=(12, 4), sharey=True) for ax, p, color in zip(axes, [0.2, 0.5, 0.8], ["#e74c3c", "#3498db", "#27ae60"]): pmf = jnp.array([comb(n, int(k)) * p**k * (1-p)**(n-k) for k in ks]) ax.bar(ks, pmf, color=color, alpha=0.7) ax.set_title(f"Binomial(n={n}, p={p})") ax.set_xlabel("k") axes[0].set_ylabel("P(X = k)") plt.tight_layout() plt.show()
  1. 验证泊松对二项分布的近似。设 n = 1000p = 0.003,比较 Binomial(n, p) 和 Poisson(\lambda = np)
import jax.numpy as jnp import matplotlib.pyplot as plt from math import comb, factorial, exp n, p = 1000, 0.003 lam = n * p ks = jnp.arange(0, 15) binom_pmf = jnp.array([comb(n, int(k)) * p**k * (1-p)**(n-k) for k in ks]) poisson_pmf = jnp.array([lam**k * exp(-lam) / factorial(int(k)) for k in ks]) plt.figure(figsize=(8, 4)) plt.bar(ks - 0.15, binom_pmf, width=0.3, color="#3498db", alpha=0.7, label=f"Binomial({n},{p})") plt.bar(ks + 0.15, poisson_pmf, width=0.3, color="#e74c3c", alpha=0.7, label=f"Poisson({lam})") plt.xlabel("k") plt.ylabel("P(X = k)") plt.title("Poisson approximation to Binomial") plt.legend() plt.show()
  1. 从正态分布中采样,验证经验法则。统计落在 1、2、3 个标准差之内的样本比例。
import jax import jax.numpy as jnp key = jax.random.PRNGKey(42) mu, sigma = 5.0, 2.0 samples = mu + sigma * jax.random.normal(key, shape=(100_000,)) for k in [1, 2, 3]: within = jnp.abs(samples - mu) <= k * sigma print(f"Within {k}σ: {within.mean():.4f} (expected: {[0.6827, 0.9545, 0.9973][k-1]:.4f})")
  1. 通过改变 \alpha\beta 来探索 Beta 分布。绘制几种形状,看看分布如何从均匀变到偏斜,再到集中。
import jax import jax.numpy as jnp import matplotlib.pyplot as plt x = jnp.linspace(0.01, 0.99, 200) def beta_pdf(x, a, b): # 未归一化,仅用于比较形状 return x**(a-1) * (1-x)**(b-1) plt.figure(figsize=(10, 5)) params = [(1,1,"Uniform"), (2,5,"Left skew"), (5,2,"Right skew"), (5,5,"Symmetric"), (0.5,0.5,"U-shape")] colors = ["#999", "#e74c3c", "#3498db", "#27ae60", "#9b59b6"] for (a, b, label), color in zip(params, colors): y = beta_pdf(x, a, b) y = y / jnp.trapezoid(y, x) # 归一化 plt.plot(x, y, label=f"α={a}, β={b} ({label})", color=color, linewidth=2) plt.xlabel("x") plt.ylabel("Density") plt.title("Beta distribution shapes") plt.legend() plt.grid(alpha=0.3) plt.show()

作者与出处
原作者: HenryNdubuaku
来源:HenryNdubuaku
许可证:Apache-2.0
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: HenryNdubuaku 转发
评论区 (0)
U