Skip to content

概率入门 -- 样本空间、事件与条件概率

概率论是 AI 处理不确定性的核心工具。从分类器输出到生成模型采样,概率无处不在。


概念解析

样本空间

所有可能结果的集合

掷骰子:

事件

样本空间的子集

「偶数」=

概率 P(A)

A 发生的可能性,[0,1]

0=不可能, 1=必然

条件概率:已知部分信息后更新判断

P(A|B)=P(AB)P(B)

直觉:把样本空间缩小到 B 发生的范围,看 A 在其中占多大比例。

全概率公式:分情况汇总

P(A)=_iP(A|B_i)P(B_i)

生活例子

大数定律

掷 10 次硬币,可能是 4 正 6 反。掷 10000 次,正面比例一定非常接近 0.5。

次数越多,频率越稳——这是概率论的根基。


Python 动手实践

实例

python

import numpy as np

# 大数定律验证

for n in [10, 100, 1000, 10000]:

    tosses = np.random.choice(['H','T'], size=n)

    freq = np.mean(tosses == 'H')

    print(f"RUNOOB 掷{n:5d}次, 正面频率={freq:.4f}")

# 蒙提霍尔问题:换门胜率 2/3

def monty_hall(switch=True, trials=10000):

    wins = 0

    for _ in range(trials):

        car = np.random.randint(0, 3)

        choice = np.random.randint(0, 3)

        revealed = np.random.choice([d for d in range(3) if d != car and d != choice])

        if switch:

            choice = [d for d in range(3) if d != choice and d != revealed][0]

        wins += (choice == car)

    return wins/trials

print(f"\n蒙提霍尔: 不换={monty_hall(False):.3f}, 换={monty_hall(True):.3f} (理论: 1/3, 2/3)")

输出:

python
RUNOOB10次, 正面频率=0.8000
RUNOOB100次, 正面频率=0.5500
RUNOOB1000次, 正面频率=0.4870
RUNOOB 掷10000次, 正面频率=0.4987

蒙提霍尔: 不换=0.329, 换=0.663 (理论: 1/3, 2/3)

AI 中的应用场景

分类器的输出 = 概率分布

Softmax 输出每个类别的概率,所有类别概率之和为 1。模型不只告诉你「这是猫」,还告诉你「80% 概率是猫,15% 是狗,5% 是其他」。这种概率输出对风险评估、置信度校准至关重要。

生成模型 = 从概率分布中采样

VAE 从学到的潜在分布中采样生成新图片,GAN 从随机噪声分布采样生成逼真图像,扩散模型从纯噪声开始逐步去噪生成高清图片。这些生成过程的核心操作都是「从某个概率分布中采样」。

强化学习中的随机策略

策略梯度方法中,智能体的动作不是确定的,而是从策略网络输出的概率分布中采样(如 70% 向左、30% 向右)。这种随机性保证了探索——如果总是选最高概率的动作,可能永远发现不了更好的策略。


AI 思考中...

泰勒展开 — 用多项式逼近任意函数

贝叶斯定理 — 用新证据更新你的判断

基于 VitePress 构建,部署于 GitHub Pages