当前位置: 首页 > news >正文

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

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

第二章 核心定理


文章目录

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

前言

概率论中的三大核心定理——贝叶斯定理(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(AB)=P(B)P(BA)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.047P(阳性)=0.99×0.001+0.02×0.9990.99×0.0010.047

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


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

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

importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.statsimportbeta,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=1nXia.s.μ(强大数定律)

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

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

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


2. Python 验证:模拟 LLN

np.random.seed(42)n_max=10000# 生成 i.i.d. 样本(指数分布,均值=2)true_mean=2samples=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)σ/nXˉnμdN(0,1)

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

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


2. 直观理解

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


3. Python 验证:CLT 模拟

importseabornassns np.random.seed(0)n_samples=10000# 模拟多少次“抽样”n_obs=50# 每次抽多少个样本# 从非正态分布(指数分布)抽样sample_means=[]for_inrange(n_samples):sample=np.random.exponential(scale=2,size=n_obs)# 均值=2sample_means.append(np.mean(sample))sample_means=np.array(sample_means)# 理论:均值 ~ N(μ, σ²/n)mu=2sigma=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)

# 模拟 A/B 测试数据n_A,n_B=1000,1000clicks_A,clicks_B=120,150p_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)
# 先验 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》

http://www.cnnetsun.cn/news/140074.html

相关文章:

  • 【AUTOSAR AP CorAUTOSAR AP 错误处理与返回值规范:ErrorCode / ErrorDomain / Result / Exception / Violation 的工程化选型
  • 舔狗的情绪价值和演员的自我修养
  • 30、编程与脚本编写指南
  • 33、Shell脚本中的控制操作符与交互式输入技巧
  • vue和springboot框架开发的协同过滤算法的电影推荐系统 电影评价管理系统_ 影评解说系统z9p6gctw
  • vscode 连接失败
  • 【Linux系统】初探虚拟地址空间
  • vue和springboot框架开发的小程序 健身服务与轻食间平台系统健身减肥系统_xj840td0
  • vue和springboot框架开发的小程序儿童疫苗接种预约医疗提醒系统_5dq9226p
  • 【记录】Rust|Rust开发相关的7个VSCode插件的介绍和推荐指数(2025年)
  • C++小程序编写系列(2)
  • python-flask-django公司企业员工出差报销管理系统_04446nsn
  • Glyph2D 同一个图形根据点云的输入产生不同位置的输出
  • Lombok 注解:简化 Java 代码
  • 别让大数据“全表扫描”掏空你:数据分区策略与分区裁剪的实战心经
  • (转载)真正的缘分,“推背感”都跟强
  • Hadoop生态下的数据预处理:MapReduce实战案例解析
  • 2025 年 CTF 零基础入门全攻略!新手必藏!这种实战网络对抗机会千万别错过!
  • 新手也能轻松建站!VanBlog+cpolar让博客创作和分享更简单
  • vue导出excel文件
  • 基于STM32的自动售货机控制系统设计
  • 液压挖掘机回转能量回收系统设计与仿真
  • android 媒体之 MediaSession
  • 校园网络规划
  • 护眼灯已足够优秀,为何仍需眼调节训练灯?答案藏在近视防控里
  • Visual Studio中的多态
  • MindSpore硬核实战:彻底搞懂自动混合精度(AMP)与函数式训练
  • Java异常处理详解。零基础小白到精通,收藏这篇就够了
  • 基于深度学习YOLOv12的犬种识别检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 基于深度学习YOLOv11的犬种识别检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)