人工智能之数学基础 概率论与统计:第二章 核心定理

人工智能之数学基础 概率论与统计

第二章 核心定理


文章目录

  • [人工智能之数学基础 概率论与统计](#人工智能之数学基础 概率论与统计)
  • 前言
  • [一、贝叶斯定理(Bayes' Theorem)](#一、贝叶斯定理(Bayes' Theorem))
    • [1. 定理陈述](#1. 定理陈述)
    • [2. 直观例子:疾病检测](#2. 直观例子:疾病检测)
    • [3. Python 实现:贝叶斯更新(Beta-Bernoulli 共轭)](#3. Python 实现:贝叶斯更新(Beta-Bernoulli 共轭))
  • [二、大数定律(Law of Large Numbers, LLN)](#二、大数定律(Law of Large Numbers, LLN))
    • [1. 定理陈述](#1. 定理陈述)
    • [2. Python 验证:模拟 LLN](#2. Python 验证:模拟 LLN)
  • [三、中心极限定理(Central Limit Theorem, CLT)](#三、中心极限定理(Central Limit Theorem, CLT))
    • [1. 定理陈述](#1. 定理陈述)
    • [2. 直观理解](#2. 直观理解)
    • [3. Python 验证:CLT 模拟](#3. Python 验证:CLT 模拟)
  • 四、三大定理对比总结
  • [五、综合应用:A/B 测试中的 CLT 与贝叶斯](#五、综合应用:A/B 测试中的 CLT 与贝叶斯)
  • 六、结语
  • 后续
  • 资料关注

前言

概率论中的三大核心定理------贝叶斯定理(Bayes' Theorem)大数定律(Law of Large Numbers)中心极限定理(Central Limit Theorem, CLT) ------构成了现代统计推断、机器学习和数据科学的理论基石。本文将深入讲解这些定理的数学含义、直观解释、应用场景 ,并提供完整的 Python 代码实现与可视化验证


一、贝叶斯定理(Bayes' Theorem)

1. 定理陈述

对于两个事件 A B ,若 P(B) \> 0 ,则:

P ( A ∣ B ) = P ( B ∣ A ) ⋅ P ( A ) P ( B ) P(A \mid B) = \frac{P(B \mid A) \cdot P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)⋅P(A)

在参数估计中,常写作:

后验 = 似然 × 先验 证据 ⇒ P ( θ ∣ D ) = P ( D ∣ θ ) P ( θ ) P ( D ) \text{后验} = \frac{\text{似然} \times \text{先验}}{\text{证据}} \quad \Rightarrow \quad P(\theta \mid \mathcal{D}) = \frac{P(\mathcal{D} \mid \theta) P(\theta)}{P(\mathcal{D})} 后验=证据似然×先验⇒P(θ∣D)=P(D)P(D∣θ)P(θ)

其中:

  • P(\\theta) 先验(Prior)--- 对参数的初始信念
  • P(\\mathcal{D} \\mid \\theta) 似然(Likelihood)--- 在参数下观测数据的概率
  • P(\\theta \\mid \\mathcal{D}) 后验(Posterior)--- 观测数据后对参数的更新信念
  • P(\\mathcal{D}) = \\int P(\\mathcal{D} \\mid \\theta) P(\\theta) d\\theta 边缘似然/证据(Evidence)

✅ 贝叶斯定理实现了从"原因→结果"到"结果→原因"的推理逆转


2. 直观例子:疾病检测

  • 某病患病率:P(\\text{病}) = 0.001
  • 检测准确率:
    • P(\\text{阳性} \\mid \\text{病}) = 0.99 (真阳性)
    • P(\\text{阳性} \\mid \\text{健康}) = 0.02 (假阳性)

问:若检测为阳性,实际患病的概率?

P ( 病 ∣ 阳性 ) = 0.99 × 0.001 0.99 × 0.001 + 0.02 × 0.999 ≈ 0.047 P(\text{病} \mid \text{阳性}) = \frac{0.99 \times 0.001}{0.99 \times 0.001 + 0.02 \times 0.999} \approx 0.047 P(病∣阳性)=0.99×0.001+0.02×0.9990.99×0.001≈0.047

即使检测"很准",由于疾病罕见,阳性结果大概率是假阳性


3. Python 实现:贝叶斯更新(Beta-Bernoulli 共轭)

假设我们抛硬币,想知道正面概率 \\theta 。先验用 Beta 分布(共轭先验)。

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import beta, binom

# 先验:Beta(α=1, β=1) → 均匀分布
alpha_prior, beta_prior = 1, 1

# 模拟观测数据:10 次试验,7 次正面
n_trials, n_heads = 10, 7

# 后验参数(共轭性质)
alpha_post = alpha_prior + n_heads
beta_post = beta_prior + n_trials - n_heads

# 绘制先验 vs 后验
x = np.linspace(0, 1, 500)
prior_pdf = beta.pdf(x, alpha_prior, beta_prior)
posterior_pdf = beta.pdf(x, alpha_post, beta_post)

plt.plot(x, prior_pdf, 'r--', label=f'先验 Beta({alpha_prior}, {beta_prior})')
plt.plot(x, posterior_pdf, 'b-', label=f'后验 Beta({alpha_post}, {beta_post})')
plt.axvline(n_heads / n_trials, color='k', linestyle=':', label='MLE = 0.7')
plt.xlabel('θ (正面概率)')
plt.ylabel('密度')
plt.title('贝叶斯更新:硬币偏置估计')
plt.legend()
plt.grid(True)
plt.show()

print(f"后验均值: {alpha_post / (alpha_post + beta_post):.3f}")
print(f"95% 置信区间: {beta.ppf([0.025, 0.975], alpha_post, beta_post)}")

✅ 随着数据增加,后验越来越集中,趋近于真实值。


二、大数定律(Law of Large Numbers, LLN)

1. 定理陈述

X_1, X_2, \\dots, X_n 是独立同分布(i.i.d.)的随机变量,且 \\mathbb{E}\[X_i\] = \\mu 存在,则:

X ˉ n = 1 n ∑ i = 1 n X i → a . s . μ (强大数定律) \bar{X}n = \frac{1}{n} \sum{i=1}^n X_i \xrightarrow{a.s.} \mu \quad \text{(强大数定律)} Xˉn=n1i=1∑nXia.s. μ(强大数定律)

X ˉ n → P μ (弱大数定律) \bar{X}_n \xrightarrow{P} \mu \quad \text{(弱大数定律)} XˉnP μ(弱大数定律)

即:样本均值依概率(或几乎必然)收敛于期望值

💡 直观:抛硬币次数越多,正面频率越接近 0.5。


2. Python 验证:模拟 LLN

python 复制代码
np.random.seed(42)
n_max = 10000

# 生成 i.i.d. 样本(指数分布,均值=2)
true_mean = 2
samples = np.random.exponential(scale=true_mean, size=n_max)

# 计算累积均值
cumulative_means = np.cumsum(samples) / np.arange(1, n_max + 1)

# 绘图
plt.figure(figsize=(10, 5))
plt.plot(cumulative_means, label='样本均值')
plt.axhline(true_mean, color='r', linestyle='--', label=f'真实均值 μ={true_mean}')
plt.xlabel('样本数量 n')
plt.ylabel('累积均值')
plt.title('大数定律验证:指数分布(λ=0.5)')
plt.legend()
plt.grid(True)
plt.show()

📉 可见:随着 ( n ) 增大,样本均值稳定收敛到理论均值。


三、中心极限定理(Central Limit Theorem, CLT)

1. 定理陈述

X_1, \\dots, X_n 独立同分布 (i.i.d.) 随机变量, \\mathbb{E}\[X_i\] = \\mu , , , \\text{Var}(X_i) = \\sigma\^2 \< \\infty ,则当 n \\to \\infty 时:

X ˉ n − μ σ / n → d N ( 0 , 1 ) \frac{\bar{X}_n - \mu}{\sigma / \sqrt{n}} \xrightarrow{d} \mathcal{N}(0, 1) σ/n Xˉn−μd N(0,1)

即:无论原始分布如何,样本均值的标准化形式渐近服从标准正态分布

✅ 这是t 检验、置信区间、A/B 测试等方法的理论基础!


2. 直观理解

即使原始数据高度偏斜(如指数分布、泊松分布),只要样本量足够大,均值的分布就近似正态


3. Python 验证:CLT 模拟

python 复制代码
import seaborn as sns

np.random.seed(0)
n_samples = 10000  # 模拟多少次"抽样"
n_obs = 50         # 每次抽多少个样本

# 从非正态分布(指数分布)抽样
sample_means = []
for _ in range(n_samples):
    sample = np.random.exponential(scale=2, size=n_obs)  # 均值=2
    sample_means.append(np.mean(sample))

sample_means = np.array(sample_means)

# 理论:均值 ~ N(μ, σ²/n)
mu = 2
sigma = 2  # 指数分布标准差 = 均值
theoretical_std = sigma / np.sqrt(n_obs)

# 绘图
plt.figure(figsize=(10, 5))
sns.histplot(sample_means, kde=True, stat='density', bins=50, alpha=0.6, label='样本均值分布')

# 叠加理论正态分布
x = np.linspace(sample_means.min(), sample_means.max(), 200)
theoretical_pdf = norm.pdf(x, loc=mu, scale=theoretical_std)
plt.plot(x, theoretical_pdf, 'r-', lw=2, label=f'理论 N(μ={mu}, σ={theoretical_std:.2f})')

plt.axvline(mu, color='k', linestyle='--', label='真实均值')
plt.xlabel('样本均值')
plt.ylabel('密度')
plt.title(f'中心极限定理验证(n={n_obs})')
plt.legend()
plt.grid(True)
plt.show()

print(f"样本均值均值: {sample_means.mean():.3f} (理论: {mu})")
print(f"样本均值标准差: {sample_means.std():.3f} (理论: {theoretical_std:.3f})")

📊 即使原始分布是右偏的指数分布,均值的分布已非常接近正态


四、三大定理对比总结

定理 核心思想 收敛类型 应用
贝叶斯定理 用数据更新信念 --- 贝叶斯推断、垃圾邮件过滤、医学诊断
大数定律 样本均值 → 期望 依概率 / 几乎必然 蒙特卡洛积分、频率稳定性
中心极限定理 均值分布 → 正态 依分布 假设检验、置信区间、误差分析

五、综合应用:A/B 测试中的 CLT 与贝叶斯

场景:比较两个网页版本的点击率

方法1:频率学派(基于 CLT)

python 复制代码
# 模拟 A/B 测试数据
n_A, n_B = 1000, 1000
clicks_A, clicks_B = 120, 150

p_A = clicks_A / n_A
p_B = clicks_B / n_B

# 标准误(SE)
SE = np.sqrt(p_A*(1-p_A)/n_A + p_B*(1-p_B)/n_B)

# z 统计量
z = (p_B - p_A) / SE
p_value = 2 * (1 - norm.cdf(abs(z)))

print(f"p_A = {p_A:.3f}, p_B = {p_B:.3f}")
print(f"z = {z:.2f}, p-value = {p_value:.4f}")
方法2:贝叶斯(Beta-Bernoulli)
python 复制代码
# 先验 Beta(1,1)
alpha_A, beta_A = 1 + clicks_A, 1 + n_A - clicks_A
alpha_B, beta_B = 1 + clicks_B, 1 + n_B - clicks_B

# 蒙特卡洛模拟后验
samples_A = beta.rvs(alpha_A, beta_A, size=10000)
samples_B = beta.rvs(alpha_B, beta_B, size=10000)

prob_B_better = np.mean(samples_B > samples_A)
print(f"P(版本B更好 | 数据) = {prob_B_better:.4f}")

✅ 贝叶斯给出直接的概率解释,更符合直觉。


六、结语

  • 贝叶斯定理 :教你如何理性更新信念
  • 大数定律 :保证长期频率稳定
  • 中心极限定理 :赋予你用正态分布近似复杂问题的能力。

后续

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》

相关推荐
小徐Chao努力2 小时前
Spring AI Alibaba A2A 使用指南
java·人工智能·spring boot·spring·spring cloud·agent·a2a
啊阿狸不会拉杆2 小时前
《数字图像处理》第7章:小波变换和其他图像变换
图像处理·人工智能·python·算法·机器学习·计算机视觉·数字图像处理
yiersansiwu123d2 小时前
生成式AI重构内容生态,人机协同定义创作新范式
大数据·人工智能·重构
老蒋新思维2 小时前
创客匠人:从个人IP到知识变现,如何构建可持续的内容生态?
大数据·网络·人工智能·网络协议·tcp/ip·创客匠人·知识变现
HyperAI超神经2 小时前
GPT-5全面领先,OpenAI发布FrontierScience,「推理+科研」双轨检验大模型能力
人工智能·gpt·ai·openai·benchmark·基准测试·gpt5.2
老蒋新思维2 小时前
创客匠人洞察:从“个人品牌”到“系统物种”——知识IP的终极进化之路
网络·人工智能·网络协议·tcp/ip·重构·创客匠人·知识变现
阿杰学AI2 小时前
AI核心知识57——大语言模型之MoE(简洁且通俗易懂版)
人工智能·ai·语言模型·aigc·ai-native·moe·混合专家模型
珠海西格电力2 小时前
零碳园区边缘计算节点规划:数字底座的硬件部署与能耗控制方案
运维·人工智能·物联网·能源·边缘计算
臼犀2 小时前
孩子,那不是说明书,那是祈祷文
人工智能·程序员·markdown