人工智能之数学基础 离散数学
第四章 离散概率
文章目录
- [人工智能之数学基础 离散数学](#人工智能之数学基础 离散数学)
- 前言
- 一、离散概率基础
- [1. 概率空间(Probability Space)](#1. 概率空间(Probability Space))
- [2. 条件概率与贝叶斯定理](#2. 条件概率与贝叶斯定理)
- [二、离散型随机变量(Discrete Random Variable)](#二、离散型随机变量(Discrete Random Variable))
- [1. 定义](#1. 定义)
- [2. 概率质量函数(PMF)](#2. 概率质量函数(PMF))
- 三、重要离散分布
- [1. 伯努利分布(Bernoulli Distribution)](#1. 伯努利分布(Bernoulli Distribution))
- [2. 二项分布(Binomial Distribution)](#2. 二项分布(Binomial Distribution))
- [3. 其他重要分布](#3. 其他重要分布)
- 四、期望与方差
- [1. 期望(Expectation)](#1. 期望(Expectation))
- [2. 方差(Variance)](#2. 方差(Variance))
- [五、AI 中的离散概率应用](#五、AI 中的离散概率应用)
- [1. 分类任务的统计建模](#1. 分类任务的统计建模)
- [2. 贝叶斯分类器](#2. 贝叶斯分类器)
- [3. 强化学习中的动作选择](#3. 强化学习中的动作选择)
- [六、Python 代码实现](#六、Python 代码实现)
- [1. 导入库](#1. 导入库)
- [2. 伯努利与二项分布 PMF 可视化](#2. 伯努利与二项分布 PMF 可视化)
- [3. 二项分布模拟:分类任务性能分析](#3. 二项分布模拟:分类任务性能分析)
- [4. 自定义二项 PMF 与累积分布(CDF)](#4. 自定义二项 PMF 与累积分布(CDF))
- [5. AI 应用:分类误差的假设检验](#5. AI 应用:分类误差的假设检验)
- [6. 泊松近似二项分布](#6. 泊松近似二项分布)
- 七、总结
- 后续
- 资料关注
前言
离散概率是离散数学与概率论的交叉核心 ,为机器学习中的分类、采样、不确定性建模提供理论基础。本文系统讲解:
- 离散概率空间与基本公理
- 离散型随机变量及其分布
- 重要离散分布:伯努利、二项、泊松、几何
- 期望与方差
- 在 AI 分类任务中的应用(如二项分布建模正确/错误预测)
- 配套 Python 代码实现 (
scipy.stats、自定义模拟、可视化、分类误差分析)
一、离散概率基础
1. 概率空间(Probability Space)
三元组 (\\Omega, \\mathcal{F}, P) :
- 样本空间 \\Omega :所有可能结果的集合(离散 ⇒ 可数)
- **事件域 \\mathcal{F} ∗ ∗ : \*\*: ∗∗: \\Omega 的子集族(通常为幂集)
- 概率测度 P :满足:
- 0 \\leq P(A) \\leq 1
- P(\\Omega) = 1
- 可列可加性:若 A_i 互斥,则 P\\left(\\bigcup_i A_i\\right) = \\sum_i P(A_i)
✅ 示例:掷骰子
\\Omega = {1,2,3,4,5,6} , , , P({1}) = \\frac{1}{6}
2. 条件概率与贝叶斯定理
- 条件概率 :
P ( A ∣ B ) = P ( A ∩ B ) P ( B ) , P ( B ) > 0 P(A \mid B) = \frac{P(A \cap B)}{P(B)}, \quad P(B) > 0 P(A∣B)=P(B)P(A∩B),P(B)>0 - 贝叶斯定理 :
P ( H ∣ E ) = P ( E ∣ H ) P ( H ) P ( E ) → ∗ ∗ 朴素贝叶斯分类器 ∗ ∗ 的理论基础 P(H \mid E) = \frac{P(E \mid H) P(H)}{P(E)} → **朴素贝叶斯分类器**的理论基础 P(H∣E)=P(E)P(E∣H)P(H)→∗∗朴素贝叶斯分类器∗∗的理论基础
二、离散型随机变量(Discrete Random Variable)
1. 定义
函数 X: \\Omega \\to \\mathbb{R} ,其取值为可数集合(有限或可列无限)。
2. 概率质量函数(PMF)
p X ( x ) = P ( X = x ) 满足: p_X(x) = P(X = x) 满足: pX(x)=P(X=x)满足:
- p_X(x) \\geq 0
- \\sum_{x} p_X(x) = 1
📌 对比:连续变量用概率密度函数(PDF)
三、重要离散分布
1. 伯努利分布(Bernoulli Distribution)
- 场景:单次试验,成功(1)或失败(0)
- PMF :
P ( X = x ) = p x ( 1 − p ) 1 − x , x ∈ { 0 , 1 } P(X = x) = p^x (1 - p)^{1 - x}, \quad x \in \{0, 1\} P(X=x)=px(1−p)1−x,x∈{0,1} - 记作: X \\sim \\text{Bernoulli}§
- 期望/方差 :
E [ X ] = p , Var ( X ) = p ( 1 − p ) \mathbb{E}[X] = p, \quad \text{Var}(X) = p(1 - p) E[X]=p,Var(X)=p(1−p)
✅ AI 应用:单个二分类预测(如"是否垃圾邮件")
2. 二项分布(Binomial Distribution)
- 场景: n 次独立伯努利试验,成功次数
- PMF :
P ( X = k ) = ( n k ) p k ( 1 − p ) n − k , k = 0 , 1 , ... , n P(X = k) = \binom{n}{k} p^k (1 - p)^{n - k}, \quad k = 0,1,\dots,n P(X=k)=(kn)pk(1−p)n−k,k=0,1,...,n - 记作: X \\sim \\text{Binomial}(n, p)
- 期望/方差 :
E [ X ] = n p , Var ( X ) = n p ( 1 − p ) \mathbb{E}[X] = np, \quad \text{Var}(X) = np(1 - p) E[X]=np,Var(X)=np(1−p)
✅ AI 核心应用:
- 分类任务性能建模:假设模型准确率为 p ,在 n 个测试样本中正确预测 k 个的概率
- A/B 测试:比较两个模型的成功率
3. 其他重要分布
| 分布 | 场景 | PMF | 期望 |
|---|---|---|---|
| 几何分布 | 首次成功所需试验次数 | P(X=k) = (1-p)\^{k-1}p | 1/p |
| 泊松分布 | 单位时间事件发生次数 | P(X=k) = \\frac{\\lambda\^k e\^{-\\lambda}}{k!} | \\lambda |
| 多项分布 | 多类别分类(扩展二项) | P(\\mathbf{X}=\\mathbf{k}) = \\frac{n!}{k_1!\\cdots k_m!} p_1\^{k_1}\\cdots p_m\^{k_m} | np_i |
💡 泊松近似:当 n 大、 p 小、 \\lambda = np 适中时, \\text{Binomial}(n,p) \\approx \\text{Poisson}(\\lambda)
四、期望与方差
1. 期望(Expectation)
E [ X ] = ∑ x x ⋅ p X ( x ) \mathbb{E}[X] = \sum_{x} x \cdot p_X(x) E[X]=x∑x⋅pX(x)
- 线性性: \\mathbb{E}\[aX + bY\] = a\\mathbb{E}\[X\] + b\\mathbb{E}\[Y\] (无需独立)
2. 方差(Variance)
Var ( X ) = E [ ( X − E [ X ] ) 2 ] = E [ X 2 ] − ( E [ X ] ) 2 \text{Var}(X) = \mathbb{E}[(X - \mathbb{E}[X])^2] = \mathbb{E}[X^2] - (\mathbb{E}[X])^2 Var(X)=E[(X−E[X])2]=E[X2]−(E[X])2
- 性质: \\text{Var}(aX + b) = a\^2 \\text{Var}(X)
五、AI 中的离散概率应用
1. 分类任务的统计建模
- 假设测试集有 n = 1000 个样本
- 模型真实准确率 p = 0.85
- 则正确预测数 X \\sim \\text{Binomial}(1000, 0.85)
- 可计算:
- P(X \\geq 840) :模型表现不低于 84% 的概率
- 置信区间: \\hat{p} \\pm z \\sqrt{\\frac{\\hat{p}(1-\\hat{p})}{n}}
2. 贝叶斯分类器
- 使用贝叶斯定理计算后验概率:
P ( y ∣ x ) = P ( x ∣ y ) P ( y ) P ( x ) P(y \mid \mathbf{x}) = \frac{P(\mathbf{x} \mid y) P(y)}{P(\mathbf{x})} P(y∣x)=P(x)P(x∣y)P(y) - 朴素贝叶斯假设特征条件独立 → 乘积形式
3. 强化学习中的动作选择
- 策略 \\pi(a \\mid s) 是离散概率分布(如 softmax 输出)
六、Python 代码实现
1. 导入库
python
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import bernoulli, binom, poisson
from scipy.special import comb
# 设置风格
sns.set(style="whitegrid")
plt.rcParams['font.sans-serif'] = ['SimHei'] # 支持中文
2. 伯努利与二项分布 PMF 可视化
python
# 参数
p = 0.7
n = 10
# 伯努利分布
x_bern = [0, 1]
pmf_bern = [1 - p, p]
# 二项分布
x_binom = np.arange(0, n + 1)
pmf_binom = binom.pmf(x_binom, n, p)
# 绘图
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
# 伯努利
axes[0].bar(x_bern, pmf_bern, color='skyblue', edgecolor='black')
axes[0].set_title('伯努利分布 (p=0.7)')
axes[0].set_xlabel('X'); axes[0].set_ylabel('P(X)')
axes[0].set_xticks([0, 1])
# 二项分布
axes[1].bar(x_binom, pmf_binom, color='lightcoral', edgecolor='black')
axes[1].set_title(f'二项分布 (n={n}, p={p})')
axes[1].set_xlabel('成功次数 k'); axes[1].set_ylabel('P(X=k)')
plt.tight_layout()
plt.show()
3. 二项分布模拟:分类任务性能分析
python
# 模拟:1000 次实验,每次测试 100 个样本,真实准确率 0.8
np.random.seed(42)
n_trials = 1000
n_samples = 100
true_acc = 0.8
# 模拟正确预测数
correct_counts = np.random.binomial(n_samples, true_acc, size=n_trials)
# 理论分布
x_theory = np.arange(70, 91)
pmf_theory = binom.pmf(x_theory, n_samples, true_acc)
# 绘图:模拟 vs 理论
plt.figure(figsize=(10, 5))
plt.hist(correct_counts, bins=20, density=True, alpha=0.6, label='模拟结果', color='lightgreen')
plt.plot(x_theory, pmf_theory, 'ro-', label='理论 PMF')
plt.axvline(n_samples * true_acc, color='red', linestyle='--', label=f'期望值 = {n_samples * true_acc}')
plt.title('分类任务正确预测数分布(n=100, p=0.8)')
plt.xlabel('正确预测数'); plt.ylabel('概率密度')
plt.legend()
plt.show()
# 计算 95% 置信区间(经验)
lower = np.percentile(correct_counts, 2.5)
upper = np.percentile(correct_counts, 97.5)
print(f"95% 经验置信区间: [{lower:.1f}, {upper:.1 f}]")
print(f"理论标准差: {np.sqrt(n_samples * true_acc * (1 - true_acc)):.2f}")
4. 自定义二项 PMF 与累积分布(CDF)
python
def binom_pmf(k, n, p):
"""手动计算二项 PMF"""
if k < 0 or k > n:
return 0.0
return comb(n, k) * (p ** k) * ((1 - p) ** (n - k))
def binom_cdf(k, n, p):
"""手动计算二项 CDF"""
return sum(binom_pmf(i, n, p) for i in range(0, k + 1))
# 测试
n, p = 5, 0.5
for k in range(n + 1):
print(f"P(X ≤ {k}) = {binom_cdf(k, n, p):.4f}")
# 验证与 scipy 一致
assert abs(binom_cdf(3, 5, 0.5) - binom.cdf(3, 5, 0.5)) < 1e-10
print("✅ 手动实现与 scipy 一致")
5. AI 应用:分类误差的假设检验
问题:模型 A 在 1000 个样本上正确 850 个,模型 B 正确 830 个。差异是否显著?
python
from statsmodels.stats.proportion import proportions_ztest
# 数据
count = np.array([850, 830])
nobs = np.array([1000, 1000])
# 双样本比例 z 检验
stat, pval = proportions_ztest(count, nobs)
print(f"Z 统计量: {stat:.4f}")
print(f"p 值: {pval:.4f}")
if pval < 0.05:
print("✅ 差异显著(p < 0.05)")
else:
print("❌ 差异不显著")
📌 原理:在零假设(两模型准确率相同)下,正确数服从二项分布,可用正态近似进行检验。
6. 泊松近似二项分布
python
n_large = 1000
p_small = 0.01
lam = n_large * p_small # λ = 10
x = np.arange(0, 20)
pmf_binom = binom.pmf(x, n_large, p_small)
pmf_poisson = poisson.pmf(x, lam)
plt.figure(figsize=(8, 5))
plt.plot(x, pmf_binom, 'bo-', label='Binomial(n=1000, p=0.01)')
plt.plot(x, pmf_poisson, 'r*--', label='Poisson(λ=10)')
plt.title('泊松近似二项分布(n大, p小)')
plt.xlabel('k'); plt.ylabel('P(X=k)')
plt.legend()
plt.show()
七、总结
| 概念 | 公式 | AI 应用 |
|---|---|---|
| 伯努利分布 | P(X=1)=p | 单样本二分类预测 |
| 二项分布 | \\binom{n}{k} p\^k (1-p)\^{n-k} | 分类准确率建模、A/B 测试 |
| 泊松分布 | \\frac{\\lambda\^k e\^{-\\lambda}}{k!} | 稀有事件建模(如异常检测) |
| 期望 | \\mathbb{E}\[X\] = \\sum x p(x) | 损失函数设计、策略梯度 |
| 方差 | \\text{Var}(X) = \\mathbb{E}\[X\^2\] - (\\mathbb{E}\[X\])\^2 | 不确定性量化、置信区间 |
💡 关键洞见:
- 离散概率是理解分类模型性能不确定性的语言;
- 二项分布是评估准确率的标准工具;
- 贝叶斯思维贯穿整个 AI 决策过程;
- 避免"点估计陷阱":报告准确率时应附带置信区间(如 85% ± 1.2%)。
后续
python过渡项目部分代码已经上传至gitee,后续会逐步更新。
资料关注
公众号:咚咚王
gitee:https://gitee.com/wy18585051844/ai_learning
《Python编程:从入门到实践》
《利用Python进行数据分析》
《算法导论中文第三版》
《概率论与数理统计(第四版) (盛骤) 》
《程序员的数学》
《线性代数应该这样学第3版》
《微积分和数学分析引论》
《(西瓜书)周志华-机器学习》
《TensorFlow机器学习实战指南》
《Sklearn与TensorFlow机器学习实用指南》
《模式识别(第四版)》
《深度学习 deep learning》伊恩·古德费洛著 花书
《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》
《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》
《自然语言处理综论 第2版》
《Natural-Language-Processing-with-PyTorch》
《计算机视觉-算法与应用(中文版)》
《Learning OpenCV 4》
《AIGC:智能创作时代》杜雨+&+张孜铭
《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》
《从零构建大语言模型(中文版)》
《实战AI大模型》
《AI 3.0》