大数定律详解
前言
本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见《机器学习数学通关指南》
正文
🌟 一、大数定律的核心思想
大数定律(Law of Large Numbers)揭示了一个基本真理:当大量独立同分布随机变量通过算术平均组合时,其平均值会稳定收敛于理论期望值。这一定律从数学上严格证明了统计学中的经验事实:频率依概率收敛于概率(即频率稳定性)。
💡 直观理解:投掷硬币次数越多,出现正面的频率越接近理论概率0.5
🔍 二、大数定律的类型与数学表达
2.1 辛钦大数定律(弱大数定律)
- 条件:随机变量序列 X 1 , X 2 , … , X n X_1, X_2, \dots, X_n X1,X2,…,Xn 独立同分布(i.i.d.),且数学期望 E ( X k ) = μ E(X_k) = \mu E(Xk)=μ 存在。
- 结论:对于任意 ϵ > 0 \epsilon > 0 ϵ>0,有
lim n → ∞ P ( ∣ 1 n ∑ k = 1 n X k − μ ∣ < ϵ ) = 1 \lim_{n \to \infty} P\left( \left| \frac{1}{n} \sum_{k=1}^n X_k - \mu \right| < \epsilon \right) = 1 limn→∞P( n1∑k=1nXk−μ <ϵ)=1 - 意义:随着观测次数 n n n 增大,样本均值 1 n ∑ X k \frac{1}{n} \sum X_k n1∑Xk 与真实期望 μ \mu μ 的偏差超过任意小正数 ϵ \epsilon ϵ 的概率趋近于零。
2.2 伯努利大数定律
- 背景:n 次独立伯努利试验(例如抛硬币),事件 A 发生的次数为 f A f_A fA,单次概率为 p p p。
- 结论:对于任意 ϵ > 0 \epsilon > 0 ϵ>0,有
lim n → ∞ P ( ∣ f A n − p ∣ < ϵ ) = 1 \lim_{n \to \infty} P\left( \left| \frac{f_A}{n} - p \right| < \epsilon \right) = 1 limn→∞P( nfA−p <ϵ)=1 - 意义:试验次数足够多时,事件发生的频率 f A n \frac{f_A}{n} nfA 几乎必然接近真实概率 p p p,这是概率定义的客观基础。
🚀 三、理论与机器学习的实际意义
3.1 频率稳定性的数学证明
- 实际中观察到的频率稳定性(如抛硬币正面占比趋近 50%)不是偶然现象,而是大数定律的必然结果。
- 在机器学习中,这为采样方法和统计推断提供了理论基础。
3.2 数据估计的可靠性与样本量
- 通过大样本的算术平均估计期望值(如估计平均收入、产品合格率等),结果具有强稳定性。
- 机器学习应用:数据量过小时,模型训练结果的不确定性较大;随着样本量增大,参数估计逐渐稳定,模型性能趋于一致。
3.3 机器学习中的应用场景
- 梯度下降算法:随机梯度下降(SGD)方法中,随机采样的梯度虽有波动,但平均来看会收敛到真实梯度,这正是大数定律的应用。
- Monte Carlo方法:通过大量随机采样近似计算复杂积分,广泛应用于强化学习和贝叶斯推断。
- 集成学习:多个独立弱学习器的预测结果聚合,可以提高整体预测性能,这背后也是大数定律在起作用。
🧪 四、实践案例与代码演示
4.1 大数定律的Python可视化示例
import numpy as np
import matplotlib.pyplot as plt# 模拟抛硬币实验
np.random.seed(42) # 设置随机种子
n_flips = 10000 # 抛掷次数
p_true = 0.5 # 真实概率# 生成随机实验结果(1代表正面,0代表反面)
flips = np.random.binomial(1, p_true, n_flips)# 计算累积平均值
cumulative_means = np.cumsum(flips) / np.arange(1, n_flips+1)# 可视化结果
plt.figure(figsize=(10, 6))
plt.plot(range(1, n_flips+1), cumulative_means, label='观测频率')
plt.axhline(y=p_true, color='r', linestyle='-', label='真实概率')
plt.xscale('log') # 对x轴使用对数刻度以便观察
plt.xlabel('抛掷次数')
plt.ylabel('正面频率')
plt.title('大数定律演示:硬币抛掷实验')
plt.legend()
plt.grid(True)
plt.show()
这段代码模拟了抛硬币实验并展示了随着试验次数增加,观测频率如何越来越接近理论概率。
4.2 机器学习中的大数定律应用案例
案例一:随机梯度下降中的批量大小影响
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import SGDRegressor
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error# 生成回归数据集
X, y = make_regression(n_samples=10000, n_features=1, noise=10, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 不同批量大小的SGD
batch_sizes = [1, 10, 100, 1000]
epochs = 50
results = {}for batch_size in batch_sizes:# 初始化模型sgd = SGDRegressor(max_iter=1, learning_rate='constant', eta0=0.01, random_state=42)test_errors = []for _ in range(epochs):# 模拟一次迭代indices = np.random.choice(len(X_train), batch_size)sgd.partial_fit(X_train[indices], y_train[indices])# 计算测试误差y_pred = sgd.predict(X_test)mse = mean_squared_error(y_test, y_pred)test_errors.append(mse)results[batch_size] = test_errors# 可视化结果
plt.figure(figsize=(10, 6))
for batch_size, errors in results.items():plt.plot(range(1, epochs+1), errors, label=f'批量大小={batch_size}')plt.xlabel('迭代次数')
plt.ylabel('测试MSE')
plt.title('不同批量大小对SGD收敛的影响')
plt.legend()
plt.grid(True)
plt.show()
这个例子展示了随机梯度下降中,较大批量大小通常会带来更平滑的收敛曲线,这是因为大数定律使得大批量的平均梯度更接近真实梯度。
🔎 五、注意事项与局限性
5.1 独立同分布假设的重要性
- 若变量间存在强相关性或分布不一致,大数定律可能不成立。
- 机器学习启示:数据预处理时应注意特征间的相关性和数据分布,尤其是时间序列数据等非独立同分布数据。
5.2 收敛方式的局限性
- 大数定律是依概率收敛(而非逐点收敛),即允许小概率的极端偏离,但随着 n n n 增大,偏离的可能性逐渐减小。
- 机器学习启示:模型虽然整体表现良好,但仍可能在少数极端情况下表现失常。
5.3 与样本表示性的关系
- 大数定律要求样本能代表总体,在实际应用中需警惕采样偏差问题。
- 机器学习启示:训练数据的采集方式和质量对模型的最终性能至关重要,需避免数据偏差导致的"垃圾进垃圾出"。
🌐 六、机器学习中的扩展应用
6.1 正则化与防止过拟合
大数定律告诉我们,当观测数据足够多时,经验风险会逐渐接近期望风险。然而,在实际的机器学习任务中,我们往往面临有限的训练样本。正则化可以视为一种补偿机制,当数据不足以让经验风险稳定接近期望风险时,通过引入先验信息来稳定模型表现。
6.2 集成学习中的理论依据
集成学习(如随机森林、Boosting等)的成功很大程度上归功于大数定律。当我们训练多个独立的基学习器并聚合它们的预测结果时,可以显著减少预测方差,从而提高整体模型的稳定性和准确性。
6.3 概率风险最小化原则
在统计学习框架下,机器学习的目标是寻找使期望风险最小的决策函数。由于真实分布未知,我们只能通过经验风险近似。大数定律保证了当样本量足够大时,这种近似是合理的,这也是ERM(经验风险最小化)原则有效性的理论基础。
📊 七、典型案例分析
7.1 伯努利试验的频率收敛
- 重复抛硬币试验中,正面频率 f A n \frac{f_A}{n} nfA 随 n n n 增大逼近真实概率 p p p。
- 机器学习实例:二分类问题中的准确率评估通常需要足够多的测试样本才有统计意义。
7.2 神经网络中的Dropout技术
Dropout是一种防止过拟合的正则化技术,其工作原理可以从大数定律角度理解:通过随机关闭部分神经元,相当于训练了多个不同网络结构的模型,最终结果近似于这些模型的集成,提高了泛化能力。
7.3 保险损失预测与风险评估
- 系统由 100 个独立部件组成,每个损坏概率 0.1,通过大数定律计算系统正常工作的概率(至少 85 个正常)。
- 应用中心极限定理(正态近似)得 P ( 正常部件 ≥ 85 ) P(\text{正常部件} \geq 85) P(正常部件≥85) 的具体值。
- 机器学习扩展:异常检测、风险评估模型同样基于类似概率原理构建。
🎯 八、总结与展望
大数定律作为概率论与统计学的基本定理,为机器学习的众多理论与方法奠定了坚实基础:
- 它解释了为什么机器学习算法能够工作:大样本下的统计推断具有可靠性
- 它指导了如何改进机器学习模型:增加训练样本、采用集成方法、调整批量大小等
- 它揭示了模型训练的局限性:数据质量与代表性的重要性
在实际应用中,理解大数定律的本质,能够帮助我们设计更加健壮的机器学习系统,避免常见陷阱,并对模型性能和可靠性有更为深刻的洞察。
相关文章:

大数定律详解
前言 本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 🌟 一、大数定律的…...

2025生物科技革命:AI驱动的基因编辑与合成生物学新纪元
一、基因编辑技术的精准化突破 第三代基因编辑工具CRISPR-Cas12f的研发成功,将编辑精度提升至0.1碱基对级别。中国科学院团队利用该技术在灵长类动物模型中修复遗传性视网膜病变基因,治愈率达到92%。对比传统CRISPR-Cas9技术,新型编辑器脱靶…...

百度SEO关键词布局从堆砌到场景化的转型指南
百度SEO关键词布局:从“堆砌”到“场景化”的转型指南 引言 在搜索引擎优化(SEO)领域,关键词布局一直是核心策略之一。然而,随着搜索引擎算法的不断升级和用户需求的多样化,传统的“关键词堆砌”策略已经…...

macOS常用网络管理配置命令
目录 **1. ifconfig:查看和配置网络接口****2. networksetup:管理系统网络配置****3. ping:测试网络连通性****4. traceroute:跟踪数据包路径****5. nslookup/dig:DNS 查询****6. netstat:查看网络连接和统…...

Selenium 中 ActionChains 支持的鼠标和键盘操作设置及最佳实践
Selenium 中 ActionChains 支持的鼠标和键盘操作设置及最佳实践 一、引言 在使用 Selenium 进行自动化测试时,ActionChains 类提供了强大的功能,用于模拟鼠标和键盘的各种操作。通过 ActionChains,可以实现复杂的用户交互,如鼠标…...

【五.LangChain技术与应用】【31.LangChain ReAct Agent:反应式智能代理的实现】
一、ReAct Agent是啥?为什么说它比「普通AI」聪明? 想象一下,你让ChatGPT查快递物流,它可能直接编个假单号糊弄你。但换成ReAct Agent,它会先推理(Reasoning)需要调用哪个接口,再行动(Action)查询真实数据——这就是ReAct的核心:让AI学会「动脑子」再动手。 举个真…...

【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(七) -> JS动画(二)
目录 1 -> 动画动效 1.1 -> 创建动画对象 1.2 -> 添加动画事件和调用接口 2 -> 动画帧 2.1 -> 请求动画帧 2.2 -> 取消动画帧 1 -> 动画动效 通过设置插值器来实现动画效果。 说明 从API Version 6 开始支持。 1.1 -> 创建动画对象 通过cre…...

SpaCy处理NLP的详细工作原理及工作原理框图
spaCy处理NLP的详细工作原理及工作原理框图 spaCy处理NLP的详细工作原理 spaCy是一个基于Python的开源自然语言处理(NLP)库,它提供了一系列高效且易用的工具,用于执行各种NLP任务,如文本预处理、文本解析、命名实体识…...

Mysql中的常用函数
1、datediff(date1,date2) date1减去date2,返回两个日期之间的天数。 SELECT DATEDIFF(2008-11-30,2008-11-29) AS DiffDate -- 返回1 SELECT DATEDIFF(2008-11-29,2008-11-30) AS DiffDate -- 返回-1 2、char_length(s) 返回字符串 s 的字符数 3、round(x,d)…...

Linux下find命令的使用方法详解
文章目录 **一、基本语法****二、常用搜索条件****1. 按名称搜索****2. 按类型搜索****3. 按时间搜索****4. 按大小搜索****5. 按权限/所有者搜索** **三、组合条件(逻辑运算符)****四、执行操作****1. 直接输出(默认)****2. 删除…...

Day(19)--IO流(三)
文件加密 ps:^异或: 两边相同就是false 两边不同就是true 如果比较的是数字,那就会把它转换成为二进制,从右自左依次比较 总结:如果一个数字被异或两次,结果还是原来的数字 缓冲流 字节缓冲流 BufferedInputStream------字节缓冲输入流 BufferedOutputStream----字节…...

数据类型——long long
在C语言中,long long 类型是一种有符号的64位整数,其取值范围由二进制补码表示法决定。以下是具体数值及解释: 1. long long 的最大值 最大值(正数):9223372036854775807 计算方式:2^63 - 1 这是…...

网络安全通信架构图
🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 在安全通信里面我经常听到的2个东西就是SSL和TLS,这2个有什么区别呢?以及HTTPS是怎么通信的?包括对称加密、非对称加密、摘要、…...

AMD(xilinx) FPGA书籍推荐
理论到实践,五年磨一剑 以应用为主,书中全部例程均来自工程实践;目的在于培养FPGA工程师良好的代码编写习惯,掌握vivado常用高级技巧。本书详细讲解了: (0)vivado操作基础从工程建立到bit/mcs文…...

考前冲刺,消防设施操作员考试最后一击
考前冲刺,消防设施操作员考试最后一击 考前冲刺阶段至关重要。首先要回归教材,快速浏览重点知识点,强化记忆。同时,对之前做过的错题进行集中复习,分析错误原因,避免在考试中再次犯错。进行全真模拟考试&a…...

【GoTeams】-3:构建api、重构错误码
本文目录 1. 构建api梳理调用关系api包的作用路由梳理注册Register代码语法 2. 重构错误码 1. 构建api 首先复制project-user,改名为project-api,放在总的路径下,然后在工作区中进行导入。 运行命令go work use .\project-api\新建工作区之…...

MuBlE:为机器人操作任务规划提供了逼真的视觉观察和精确的物理建模
2025-03-05,由华为诺亚方舟实验室、捷克技术大学和帝国理工学院联合开发的MuBlE(MuJoCo and Blender simulation Environment)模拟环境和基准测试。通过结合MuJoCo物理引擎和Blender高质量渲染,为机器人操作任务规划提供了逼真的视…...

基于STC89C52的4x4矩阵键盘对应键值显示测试
引言 在众多单片机应用系统中,用户输入功能至关重要。4x4 矩阵键盘因其布局紧凑、按键数量适中,能有效节省 I/O 口资源,成为常用的输入设备。STC89C52 作为一款经典的 8 位单片机,以其丰富的外设资源和简易的开发流程,为矩阵键盘的应用提供了良好平台。同时,LCD1602 作为…...

android13打基础: timepicker控件
public class Ch4_TimePickerActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener {private TextView tv_time; // 声明一个文本视图对象private TimePicker tp_time; // 声明一个时间选择器对象Overrideprotected void onCreate(Nullable Bund…...

【虚拟仿真】Unity3D中实现激光/射线的发射/折射/反射的效果(3D版)
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。...

【预测】-双注意LSTM自动编码器记录
预测-双注意LSTM自动编码器 1 预测-双注意LSTM自动编码器1.1 复现环境配置1.2 数据流记录1.2.1 **构建Dataset**(1) **X 的取数**(2) **y 的取数**(3) **target 的取数** 1.2.2 **举例说明**(1)**X 的取数**(2)**y 的取数**(3)**target 的取数** 1.2.3 **y 取数的问题****修正后…...

S32K3 MCU时钟部分
S32K3 MCU时钟部分 1.系统时钟发生器SCG 系统时钟发生器SCG模块提供MCU的系统时钟,SCG包含一个系统锁相环SPLL,一个慢速的内部参考时钟SIRC,一个快速内部参考时钟FIRC和系统振荡时钟SOSC. 时钟生成的电路提供了多个时钟分频器和选择器允许为不同的模块提供以特定于该模块的频率…...

java开发常用注解
在Java开发中,注解(Annotation)广泛用于简化代码、配置元数据、框架集成等场景。以下是不同场景下常用的注解分类整理: 一、核心Java注解(内置) Override 表示方法重写父类或接口的方法,编译器会…...

Doris vs ClickHouse 企业级实时分析引擎怎么选?
Apache Doris 与 ClickHouse 同作为OLAP领域的佼佼者,在企业级实时分析引擎该如何选择呢。本文将详细介绍 Doris 的优势,并通过直观对比展示两者的关键差异,同时分享一个企业成功用 Doris 替换 ClickHouse 的实践案例,帮助您做出明…...

解锁Egg.js:从Node.js小白到Web开发高手的进阶之路
一、Egg.js 是什么 在当今的 Web 开发领域,Node.js 凭借其事件驱动、非阻塞 I/O 的模型,在构建高性能、可扩展的网络应用方面展现出独特的优势 ,受到了广大开发者的青睐。它让 JavaScript 不仅局限于前端,还能在服务器端大展身手&…...

学习前端前需要了解的一些概念(详细版)
网站的定义与概述 网站(Website)是一个由网络服务器托管的、通过网络访问的、由相关网页和资源组成的集合。它为用户提供信息、服务或娱乐平台,是现代互联网的重要组成部分。网站的基本功能是展示信息和提供服务,用户可以通过浏览…...

分布式数据库中的四种透明性:逻辑透明、位置透明、分片透明和复制透明
四种透明性 1. 逻辑透明(Logical Transparency)2. 位置透明(Location Transparency)3. 分片透明(Fragmentation Transparency)4. 复制透明(Replication Transparency)注意点…...

SSM架构 +java后台 实现rtsp流转hls流,在前端html上实现视频播放
序言:书接上文,我们继续 SSM架构 NginxFFmpeg实现rtsp流转hls流,在前端html上实现视频播放 步骤一:把rtsp流转化为hls流,用Java代码进行转换 package com.tools;import java.io.BufferedReader; import java.io.IOExc…...

时序数据库 TDengine 化工新签约:存储降本一半,查询提速十倍
化工行业在数字化转型过程中面临数据接入复杂、实时性要求高、系统集成难度大等诸多挑战。福州力川数码科技有限公司科技依托深厚的行业积累,精准聚焦行业痛点,并携手 TDengine 提供高效解决方案。通过应用 TDengine,力川科技助力化工企业实现…...

信号完整性基础:高速信号的扩频时钟SSC测试
扩频时钟 SSC 是 Spread Spectrum Clock 的英文缩写,目前很多数字电路芯片都支持 SSC 功能,如:PCIE、USB3.0、SATA 等等。那么扩频时钟是用来做什么的呢? SSC背景: 扩频时钟是出于解决电磁干扰(EMI&#…...