人工智能之数学基础 概率论与统计
第二章 核心定理
文章目录
- 人工智能之数学基础 概率论与统计
- 前言
- 一、贝叶斯定理(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(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.047P(病∣阳性)=0.99×0.001+0.02×0.9990.99×0.001≈0.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=1∑nXia.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》