在现实应用中(如机器学习、统计建模等),我们常常需要从某个概率分布中生成样本,尤其是在以下两种场景:

  • 数据量太小,想通过采样生成合成数据(synthetic data)

  • 模型训练或推理时需要随机变量的样本


🟩 离散分布采样(以颜色为例)

设:

  • 绿色:0.3

  • 蓝色:0.5

  • 橙色:0.2

方法一:逆变换采样(Inverse Transform Sampling)

  1. 构造区间(累积概率):

  2. 采样步骤:

    • 生成

    • 落在哪个区间

    • 输出对应的颜色

方法二:用 CDF(累计分布函数)

  1. 画出柱状图 + 累积分布函数(CDF)

  2. 中均匀采样

  3. 找对应 CDF 的横坐标,得到颜色索引(如 green=0, blue=1)


🟦 连续分布采样(以高斯分布为例)

思路:将采样问题转化为 CDF 的逆

  1. 假设目标分布为 (如标准正态)

  2. 构建其累积分布函数

  3. 采样

  4. ,即 就是服从 的采样结果

📌 注:对于标准正态等复杂分布,通常无法解析写出 ,因此使用数值方法库函数(如 NumPy, PyTorch) 实现。