15分钟入门蒙特卡洛 Monte Carlo

数学建模十大算法01-蒙特卡洛算法(Monte Carlo) 蒙特卡洛算法及一些实例。 阅读详情

来自 | 知乎   作者 | 薛定豆

链接 | https://zhuanlan.zhihu.com/p/223042372

编辑 | 深度学习这件小事公众号

本文仅作学术交流,如有侵权,请联系后台删除。

20世纪40年代,蒙特卡洛(Monte Carlo, 位于摩纳哥的赌城,如上图)方法由John von Neumann,Stanislaw Ulam和 Nicholas Metropolis 在 Los Alamos National Lab (LANL) 曼哈顿计划中,为模拟中子扩散发展出的一种统计方法。正如名字反映出的,蒙特卡洛方法本质上是跟赌博一样具有随机特性。

   一、估计圆周率  的值

如果(x,y)是独立地从0到1之间均匀分布抽样出的一系列的数对number pair, 那么这些随机的位置坐标(x,y)落在1为半径圆弧内的概率应该是:四分之一圆的面积➗整个正方形的面积:

而因为(x,y) 是0到1的均匀分布,所以这个概率当抽样足够多的时候就等于红色的点数除以总共点数:

这样一来,只要采样足够多,就可以得到无限趋近于的值。这个例子很好的体现了Monte Carlo(MC)方法的精神:利用随机分布的特性,大数次抽样得到准确的估计。换句话说,就是我猜,我猜地又多又均匀就基本上成功了!

   二、估计定积分的值

微积分里我们学到,定积分(也就是曲线下的面积)可以想象成很多等宽小矩形加起来的面积之和,如下图所示,

如果用蒙特卡洛的思维来做的话,可以从a到b的均匀分布产生一些列的x值: ,只要抽样足够多,就可以估计出在这个区间内  的平均值,记做  这样一来,曲线下面积就等效成一个以这个平均值为高的矩形面积:

   三、重要性抽样(Importance sampling)

其实,很多积分中  还是有一些重要的区域的,为了使采样更有效率,一般我们可以采用重要性抽样来计算积分:

这里,  是任意满足正定  且归一化  条件的概率分布,且  是从这个分布采样的随机数。重要性抽样其实仅仅就是做了个恒等变形,把原来要均匀采样的概率分布(其实就是  )替换成任意概率分布,并把要平均的函数除以这个分布。重要性抽样是统计和物理中常见的方法,可以很好的对重点区域采样而快速估计积分。

另一方面,重要性抽样有着很简单直接的并行化方案:对于多维定积分,  从分布  中采样的话,(这里为了符号简便,现在暂时将第  次采样记做带括号的上标  )

其实,统计力学里常见的积分就是物理量  的系综平均

这里 是正则系综分布函数,  是正则配分函数。

   四、Metropolis Monte Carlo算法 (Markov Chain Monte Carlo, MCMC)

那么,问题来了,怎么对任意分布  采样?这里介绍Metropolis MC算法,也叫Metropolis-Hastings算法,它类似于随机瞎走(Random walk)的方式产生一列数,这些数的总体分布服从  。这里,我们以平衡态统计力学中的最常见的Boltzmann分布为例说明。

玻尔兹曼分布说对于构型  ,它的概率应该是  ,这里  是这个构型的能量。我们想要产生服从玻尔兹曼分布的一系列  ,可以设想如果我基于原来的一个构型  怎么产生下一个构型  呢?

当体系达到平衡时,体系在  的概率  不应该随时间改变,于是有

这里  表示基于  随机产生  的转移概率(Transition probability),求和是对于所有可能的其他构型。从上面关系可以得到只要满足下面细致平衡(detailed balance)条件,就可以产生出服从玻尔兹曼分布的序列:

Metropolis选择的是下面方式选择转移概率(尽量最大化接受新构型):

读者可以将上面两个式子相除,就可以看出在不管新构型的能量是更高还是更低,这个转移概率的比值都服从细致平衡条件,也就是最终产生的分布就会使玻尔兹曼分布了。

Metropolis算法——移动然后选择接受这个移动还是拒绝这个移动

  1. 从起始构型  ,计算能量  ;

  2. 随机移动一些构型坐标得到一个trial构型  ,并计算该构型的能量  ;

  3. 决定是否接受这个移动:
    (1)如果  ,那么100%接受这个移动,正式的下一步构型就是 了;
    (2)如果  ,那么产生一个0到1之间的随机数R, 并跟转移概率  比较,如果  那就接受这个移动  ,否则就拒绝这个移动  ;

  4. 回到第二步,直到累积N个构型。

这一列构型  被称为马尔科夫链(Markov Chain),因为产生的新构型只跟当前构型有关,对前面的构型没有任何的记忆效应,所以这个方法又叫马尔科夫链蒙特卡洛(MCMC)。而且,从任何初始构型出发,最终都会达到平衡而且服从就是玻尔兹曼分布,即通过配比转移概率  达到对某构型的采样概率为 且不随“时间”改变。【注意:MC里序列是没有物理上时间先后关系的,所有说MC“时间序列”都是指随机产生的顺序。】

当然,这个例子只是一个统计力学里的概率分布函数,其实任何形式的分布都可以用MC产生,使得MC方法在统计里应用的不要太多。

蒙特卡洛方法 蒙特卡洛在图形渲染领域中有着大量的应用,其中包括但不限于基于物理的渲染(PBR)、基于图像的光照(IBL)、预计算辐照度全局光照(PRT)等等,最新的高效光追算法 ReSTIR 中也需要以蒙特卡洛作为理论基础,UE5 的 Lumen 目前也实现了基于 ReSTIR 的 Gather…… 阅读详情

相关推荐

Monte Carlo方法实战指南:用随机采样解决高维不确定性问题

Monte Carlo方法是一种基于大数定律和中心极限定理的统计模拟技术,核心是通过大量独立随机采样,将难以解析求解的确定性问题(如高维积分、复杂系统风险评估)转化为可重复、可量化、可收敛的随机实验。其技术价值在于天然支持黑箱模型、多源异构不确定性建模与高维场景,显著降低对函数光滑性、闭式表达和低维假设的依赖。典型应用场景涵盖金融风险计量(VaR/ES)、工程可靠性分析(失效概率)、能源系统不确定性量化(风电出力预测)、生物医药试验模拟等。本文聚焦工程落地视角,结合伪随机数生成器选型、纯函数建模、有效样本量

aikb6223的博客 412

蒙特卡洛模拟(Monte Carlo Simulation)详解

本文介绍了蒙特卡洛模拟基本原理,简单蒙特卡洛方法,重要性采样,马尔可夫链蒙特卡洛,拉丁超立方采样,变异蒙特卡洛方法

m0_66890670的博客 12万+

蒙特卡洛强化学习实战:从21点到工业落地的回合制决策逻辑

蒙特卡洛强化学习(Monte-Carlo Learning)是一种典型的无模型学习方法,其核心原理是通过完整回合采样计算折扣回报G_t,以经验平均替代理论期望,从而绕过环境动力学建模与梯度计算。该方法在奖励稀疏、系统不可微、状态转移未知等工程现实场景中具备独特鲁棒性,技术价值在于‘不依赖模型、不求导、不假设马尔可夫性’。典型应用场景包括回合制任务(如棋牌博弈、医疗诊疗路径、客服对话流程)、工业质检闭环、AGV调度班次优化及推荐系统冷启动。本文聚焦Monte-Carlo Learning与无模型学习两大热词,

weixin_34178244的博客 446

蒙特卡洛算法详解

蒙特卡洛方法也称为 计算机随机模拟方法,它源于世界著名的赌城——摩纳哥的Monte Carlo(蒙特卡洛)。它是基于对大量事件的统计结果来实现一些确定性问题的计算。其实质就是将问题转化为一个概率问题,并用计算机模拟产生一堆随机数,再对随机数进行统计工作。

熬过万丈孤独,藏下星辰大海 1万+

工业级蒙特卡洛强化学习:DFV-MC实战落地指南

蒙特卡洛学习(Monte-Carlo Learning)作为无模型强化学习的核心范式,其理论本质是基于完整经验序列的无偏价值估计,依赖回合制更新与首次访问策略评估。然而在真实工业场景中,标准MC因时间不可逆性、长episode数据成本高、探索敏感等固有约束而难以直接部署。本文聚焦工程可落地的变体——Decay-First-Visit MC(DFV-MC),通过业务驱动的衰减系数校准、在线截断更新机制与状态频次过滤,实现对稀疏奖励、低延迟要求及非马尔可夫行为的鲁棒建模。该方法已在智能仓储、实时广告与金融风控等

weixin_30735745的博客 307

蒙特卡洛欧式期权定价:从原理到生产级实现

蒙特卡洛方法是金融工程中实现风险中性定价的核心数值技术,其本质是通过随机路径模拟逼近衍生品在风险中性测度下的贴现期望值。相比Black-Scholes解析解,它不依赖市场连续、波动率恒定等强假设,天然支持跳跃扩散、随机波动率等复杂模型,具备极强的路径依赖扩展能力。该方法的技术价值在于可验证性、可校准性与生产鲁棒性——通过方差缩减、精确离散、种子可控、ACT/ACT贴现等工程化设计,能将数值误差控制在0.5BP内,并支撑毫秒级实时报价。典型应用场景包括雪球、自动敲出等结构化产品估值、波动率曲面诊断及自营对冲系

weixin_34209851的博客 404

干货 | 蒙特卡洛方法(Monte Carlo)

关于我的更多学习笔记,欢迎您关注“武汉AI算法研习”公众号,本文作者微信comrliuyu。 本文分以下几个部分“【关于蒙特卡洛方法的理解】”、“【无意识统计学家定律】”、“【蒙特卡洛(Monte Carlo)法求定积分】”、“【蒙特卡洛采样】”来进行展开,总共阅读时间大约15分钟。 【关于蒙特卡洛方法的理解】 1、蒙特卡洛方法又称“随机抽样方法”,和一般数值计算方法有本质区别的计算...

码农的科研笔记 1万+

强化学习-概念02:蒙特卡洛【Monte-Carlo(MC)】

本文重点解决如下几个问题:(1)什么是蒙特卡洛法?(2)蒙特卡洛法能够解决什么问题?(3)蒙特卡洛法的优势是什么?或者说为什么要使用蒙特卡洛法?

u013250861的博客 2291

Monte Carlo与Las Vegas算法在机器学习中的确定性选型指南

随机算法是机器学习中处理不确定性的核心范式,其本质并非计算技巧,而是对‘结果容错性’的工程承诺。Monte Carlo算法以统计收敛为前提,用可量化的误差界(如Hoeffding不等式)换取计算效率,适用于用户留存预测、VaR风险估计等统计推断场景;Las Vegas算法则以运行时间随机为代价,确保结果100%正确,是医疗诊断、自动驾驶、金融审计等决策闭环系统的刚性要求。二者分水岭不在速度或实现复杂度,而在于问题是否允许单次错误——这直接决定SLA设计、审计合规性与故障成本。本文结合GARCH引导采样、种子

weixin_33676492的博客 422

LabVIew串口收发的一些问题

LabView串口收发实验总结

weixin_45508826的博客 2065

深度学习十大算法之Word2Vec

Word2Vec的提出,标志着词嵌入技术的一次重大进步。Word2Vec是一种高效的词嵌入模型,由Google的研究团队于2013年开发。它使用一种称为神经网络的机器学习方法,通过学习大量文本数据,生成能够表达词语间丰富语义关系的词向量。Word2Vec的核心优势在于它能够捕捉到词语之间的细微关系。例如,在Word2Vec模型中,可以通过计算向量之间的距离来估计词语之间的相似度。这不仅能帮助理解语言的复杂性,还可以应用于各种NLP任务,如机器翻译和搜索引擎优化。

第欧根尼的酒桶的博客 1864

机器学习中的Monte Carlo与Las Vegas随机性范式

在机器学习系统中,随机性并非简单‘加个seed’就能控制,而是隐含两种根本不同的计算契约:Monte Carlo算法以固定时间为代价接受结果不确定性,常用于SGD、Dropout、近似搜索等场景;Las Vegas算法则以运行时间不确定性换取结果绝对正确,多见于约束满足、无偏采样和关键路径校验。理解二者差异,是保障模型可复现性、推理确定性与线上SLA的底层能力。本文结合PyTorch DataLoader、sklearn train_test_split、TF random等真实接口,解析其默认范式归属,并

weixin_34099526的博客 385

【Python 实战基础】如何绘制热力图来模拟绘制北京景区热度图

Python如何绘制热力图来模拟绘制北京景区热度图 文件读写 基础语法 字符串处理 文件生成 数据构建

菜鸟实战的博客 3401

DLSS Swapper 教程:怎么快速更换游戏里的 DLSS、FSR 与 XeSS DLL 版本

DLSS Swapper 是一款 Windows 上的 DLSS、FSR、XeSS DLL 版本管理工具。它扫描 Steam、GOG、Epic 等平台的已装游戏,让你不等游戏更新,就能升级或降级游戏内的 DLL 版本。 ## 先说说这个麻烦 想尝鲜新版 DLSS 的玩家都遇到过同一堵墙:游戏本体没更新,旧 DLL 就焊死在目录里。手动进游戏目录找文件、下新版、替换、再祈祷别崩,一圈下来很折腾;

gitblog_00599的博客 243

MoveIt控制睿尔曼RM65机械臂:从仿真到实机的3种控制模式对比

本文详细解析了使用MoveIt框架控制睿尔曼RM65机械臂的三种核心模式:拖动规划、目标姿态规划和Python API控制,从Gazebo仿真到实机部署的完整实现路径。通过ROS环境配置、控制参数优化及实机过渡技术,为工业自动化和机器人研究提供实用指南。

727

让 ABAP 程序天生可翻译:Text Symbols 与 Text Pool 从入门到工程化落地

ABAP 国际化实践:Text Symbols 的工程价值与落地方法 摘要: 本文系统阐述了 ABAP 开发中 Text Symbols 的核心价值与实践方法。通过解耦程序逻辑与语言文本,Text Symbols 实现了代码国际化,避免了硬编码带来的维护难题。文章详细介绍了 Text Pool 结构、两种引用方式(独立引用 TEXT-001 和附着式 '(001)'),以及 SE38 和 SE63 的翻译流程。特别强调最大长度预留、术语统一等工程实践,并提供了 READ TEXTPOOL 自动化检查方案。最

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 233

Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)

原文链接:http://tecdat.cn/?p=22862 如何使用Python通过蒙特卡洛模拟自动计算风险值(VaR)来管理投资组合或股票的金融风险。 金融和投资组合风险管理中的VaR? VaR是 "风险价值 "的缩写,是许多公司和银行用来确定其公司内部金融风险水平的工具。风险值是为公司的投资而计算的,也可能是为检查银行或公司所管理的投资组合的风险水平。 该计算可以被认为是一种统计方法。它也可以简化为以下语句 风险值是在一定的概率水平(置信区间)下将产生的最小损失或在一定的概率水平..

大数据部落 5565

DataX对接数据如何在ODS加密脱敏数据(插件开发)

datax对接mysql数据,对姓名只保留姓,名变成**。对这种简单的脱敏,可以不用修改datax源码,直接在配置文件上实现。

大模型大数据攻城狮的专栏 990

蒙特卡罗Monte Carlo模拟计算投资组合的风险价值(VaR)

原文链接:http://tecdat.cn/?p=22862如何使用Python通过蒙特卡洛模拟自动计算风险值(VaR)来管理投资组合或股票的金融风险。金融和投资组合风险管理中的VaR?VaR是 "风险价值 "的缩写,是许多公司和银行用来确定其公司内部金融风险水平的工具。风险值是为公司的投资而计算的,也可能是为检查银行或公司所管理的投资组合的风险水平。该计算可以被认为是一种统计方法。它也可以简化...

拓端研究室TRL 1982

【ComfyUI】Flux + ControlNet 边缘搭配深度、瓷砖、姿态引导图生图

本文介绍了一个基于 Wan 2.1 的 ComfyUI 文生视频工作流,通过 UNet、CLIP 和 VAE 三个核心模型,将文本提示转化为动态视频。工作流包含模型加载、提示词解析、潜空间采样等7个环节,支持分辨率、帧数等参数设置,最终输出高质量视频文件。该方案适用于创意设计、教育培训和多媒体制作等场景,能快速生成符合语义的动态内容。文章还提供了相关开发资源和学习链接,适合AI视频生成领域的研究者和实践者参考。

Mr数据杨 1632

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

蒙特卡洛离策略强化学习:工业级落地实战指南

蒙特卡洛(Monte Carlo)方法是一种基于完整轨迹回报的价值估计技术,其不依赖模型、避免时序差分偏差的特性,使其成为离策略(Off-Policy)学习中保障估计稳定性的关键选择;而离策略机制则支持复用历史数据,显著降低在线探索成本与系统延迟风险。二者结合虽能兼顾安全性与数据效率,但也因重要性采样(Importance Sampling)权重易发散、方差高、对行为策略与目标策略耦合敏感等挑战,导致训练不稳定、线上效果波动。本文聚焦真实推荐、风控、广告等工业场景,解析如何通过自适应权重截断、轨迹软硬截断、

cm333666的博客 363

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

蒙特卡洛方法入门:用随机采样解决复杂工程问题

蒙特卡洛方法是一种基于概率统计的数值计算范式,其核心是将确定性问题转化为随机试验的频率估计——通过在可建模的概率空间中大量采样,用样本均值或比例逼近目标量。它不依赖解析解,而是以计算资源换取对高维、非线性、不确定性系统的可解性,技术价值在于将‘不可算’变为‘可模拟’。广泛应用于金融风险评估、可靠性工程、AI不确定性量化及物理仿真等场景。本文以轴承寿命预测和π值估算为实例,结合NumPy向量化实现与生产级调试技巧,详解如何构建可复现、可验证、可部署的蒙特卡洛模拟器,并融入重要性采样、分位数敏感性分析等实战要点

weixin_30572613的博客 289

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

用蒙特卡洛模拟计算股票VaR:从原理到万次Python实战

VaR(风险价值)是量化金融中衡量资产最大潜在损失的核心指标,其本质是在给定置信水平下对收益率分布尾部的统计推断。传统参数法假设正态分布,易低估肥尾风险;历史模拟法无法捕捉未发生过的极端事件;而蒙特卡洛模拟法通过复现收益率的动态生成机制——尤其是结合GARCH模型刻画波动率聚集与时变特性——能更真实地模拟未来可能情景。本文以苹果公司(AAPL)日度收益率为样本,基于真实市场数据构建可复现的蒙特卡洛框架,重点解析VaR、Monte Carlo两大热词背后的技术逻辑:如何用一万次模拟平衡精度与效率,如何用GAR

weixin_30363509的博客 339
上一篇: 神 经 网 络 内 部 长 啥 样?
下一篇: gcc和g++是什么,有什么区别?
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值