当前位置:

OFweek人工智能网

机器学习

正文

人工智能之蒙特卡罗方法(MCM)

导读: 蒙特卡罗方法MCM(Monte Carlo Method),也称随机抽样或统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。

提到蒙特卡罗(也有翻译成“蒙特卡洛”)一词,人们不禁想到摩纳哥的赌城。这两者之间有必然联系么?答案是:Exactly!

人工智能之蒙特卡罗方法(MCM)

大家想想,赌博跟什么有关?首先想到的是随机性和概率性。对,那蒙特卡罗方法就是与概率论和数理统计有关。

MCM提出:

蒙特卡罗方法MCM于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼(计算机之父)首先提出。数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的MonteCarlo—来命名这种方法,为它蒙上了一层神秘色彩。在这之前,蒙特卡罗方法就已经存在。1777年,法国数学家布丰(Georges Louis Leclere de Buffon)提出用投针实验的方法求圆周率π。这被认为是蒙特卡罗方法的起源。

人工智能之蒙特卡罗方法(MCM)

传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法MCM由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。这也是以概率论和数理统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城-蒙特卡罗命名。该命名既反映了该方法的部分内涵,又便于记忆,因此得到人们的普遍接受。

BTWMonteCarlo一词来源于意大利语,是为了纪念王子摩纳哥查理三世。蒙特卡罗(MonteCarlo)虽然是个赌城,但很小,估计跟北京的一条街差不多大。

人工智能之蒙特卡罗方法(MCM)

MCM概述:

蒙特卡罗方法MCM(Monte Carlo Method),也称随机抽样统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)以及人工智能之机器学习等领域应用广泛。

MCM基本思想:

当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。

有一类问题的维数(变量个数)可能高达数百甚至数千,解题难度随维数的增加呈指数增长,这就是所谓的维数的灾难(Curse of Dimensionality)。即使使用速度最快的计算机,传统的数值计算方法也难以对付,但蒙特卡罗方法MCM的计算复杂性不再依赖于维数,MCM能很好地用来对付维数的灾难。为提高方法的效率,科学家们提出了许多所谓的“方差缩减”技巧。

另一类形式与蒙特卡罗方法MCM相似,但理论基础不同的方法—“拟蒙特卡罗方法”(Quasi-Monte Carlo方法)—近年来也获得迅速发展。我国数学家华罗庚、王元提出的“华—王”方法即是其中的一例。这种方法的基本思想是“用确定性的超均匀分布序列(Low DiscrepancySequences)代替蒙特卡罗方法MCM中的随机数序列。该方法对某些问题的求解比蒙特卡罗方法MCM计算速度上提高数百倍,计算精度上也有很大提高。

MCM基本原理

由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可认为该事件的发生频率即为其概率。因此,先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。MCM正是基于此思路进行分析的。

设有统计独立的随机变量Xi(i=1,2,3,…,k),其对应的概率密度函数分别为fx1,fx2,…,fxk,功能函数式为Z=g(x1,x2,…,xk)。

首先根据各随机变量的相应分布,产生N组随机数x1,x2,…,xk值,计算功能函数值Zi=g(x1,x2,…,xk)(i=1,2,…,N),若其中有L组随机数对应的功能函数值Zi≤0,则当N→∞时,根据伯努利大数定理正态随机变量的特性有:结构失效概率,可靠指标。

从MCM的思路可看出,MCM可以回避结构可靠度分析中的数学困难,不管状态函数是否非线性、随机变量是否非正态,只要模拟的次数足够多,就可得到一个比较精确的失效概率和可靠度指标。特别当变异系数较大时,与JC法计算的可靠指标相比,结果更为精确,并且由于思路简单易于编制程序

人工智能之蒙特卡罗方法(MCM)

MCM主要步骤:

蒙特卡罗方法工作过程可以归结为三个主要步骤:

1)构造或描述概率过程

对于本身就具有随机性质的问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即将不具有随机性质的问题转化为随机性质的问题。打个不恰当的比方,工作中有困难,要迎着困难上;没有困难,也要制造困难,再迎着困难上^_^

2)实现从已知概率分布抽样

构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。随机数是具有概率分布的随机变量。随机数是实现蒙特卡罗模拟的基本工具。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数(或伪随机数序列)。但经过多种统计检验表明,伪随机数(或伪随机数序列)与真正的随机数(或随机数序列)具有相近的性质,因此可把它作为真正的随机数来使用。

3)建立各种估计量

构造了概率模型并能从中抽样后,即实现模拟实验后,就要确定一个随机变量,作为所要求的问题的解,称它为无偏估计。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。

通常蒙特卡罗方法通过构造符合一定规则的随机数来解决各种实际问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特卡罗方法是一种有效的求出数值解的方法。

人工智能之蒙特卡罗方法(MCM)

MCM工作过程:

在解决实际问题的时应用蒙特卡罗方法主要有两部分工作:

1.用蒙特卡罗方法模拟某一过程时,需要产生某一概率分布的随机变量。

2.用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。

从理论上来说,蒙特卡罗方法需要大量的实验。但求的是近似解,模拟样本数越大,实验次数越多,所得到的结果才越精确。但样本数增加会带来计算量的大幅上升

MCM估算圆周率:

人工智能之蒙特卡罗方法(MCM)

利用蒙特卡罗方法可用于,如图,在边长为 2r 的正方形内作一个半径为 r 的圆,正方形的面积等于 2r×2r=4r^2,圆的面积等于 π×r×r=πr^2,由此可得出,正方形的面积与圆形的面积的比值为 4:π。假设向正方形的标靶上随机投掷飞镖,如果击中点在标靶上是均匀分布的,即作为某一点的坐标散布于正方形内,那么落在正方形内的点数 N 与落在圆形内的点数 K 的比值接近于正方形的面积与圆的面积的比值,即,N:K ≈ 4:π,因此,π ≈ 4K/N 。用此方法求圆周率,需要大量的均匀分布的随机数才能获得比较准确的数值。

人工智能之蒙特卡罗方法(MCM)

MCM评估围棋盘面:

我们都知道谷歌DeepMind围棋程序 AlphaGo和它超越人类的强大计算能力。事实上,蒙特卡罗方法思想也用在了围棋盘面评估。每个围棋盘面都有一个“最优值”,对应于博弈双方都采用完美走法的情况下得到的围棋盘面的最终结果。对于围棋已经证明,计算这个“最优值”的时间至少随该盘面到终盘之间的步数呈指数级数增长,比如平均200步的话,每步平均增长200倍数量的可能盘面。从理论上无法得到“最优值”,于是人们想到用蒙特卡罗方法思想对整个可能性空间进行某种采样,然后通过统计估值的方法逼近这个“最优值”。这就是2006年提出的一种称为蒙特卡罗树搜索的动态评估方法。

人工智能之蒙特卡罗方法(MCM)

现有的蒙特卡罗树搜索虽然能保证大量采样的结果足够收敛到盘面“最优值”,但为达到“足够收敛”所需的采样次数仍然是随整个可能性空间的规模指数级增长。但是在围棋弈棋系统的实践中,蒙特卡罗树搜索在比赛时间受限的情况下确实表现出远远超过传统方法的棋力。最近几年人们在选择策略中加入更多和围棋相关的专家知识,使得基于蒙特卡罗树搜索的围棋弈棋系统水平不断提高蒙特卡罗树搜索成为在完美信息博弈场景中进行决策的一种关键技术,在很多现实世界的应用中有着广阔前景。

人工智能之蒙特卡罗方法(MCM)

MCM应用领域:

越来越广泛。它不仅较好地解决了多重积分计算、微分方程求解、积分方程求解、特征值计算和非线性方程组求解等高难度和复杂的数学计算问题,而且在统计物理、粒子输运计算、量子热力学计算、空气动力学计算、核物理、真空技术、系统科学、信息科学、公用事业、地质、金融工程学、宏观经济学、生物医学、可靠性、计算机科学及人工智能之机器学习等广泛的领域都得到成功的应用。

MCM发展历程:          

1)公元20世纪初期,尽管实验次数数以千计,利用蒙特卡罗方法所得到的圆周率π值,还是达不到公元5世纪祖冲之的推算精度。这可能是传统蒙特卡罗方法长期得不到推广的主要原因。

2)计算机技术的发展,使得蒙特卡罗方法在最近10年得到快速的普及。现代的蒙特卡罗方法,已经不必亲自动手做实验,而是借助计算机的高速运转能力,使得原本费时费力的实验过程,变成了快速和轻而易举的事情。它不但用于解决许多复杂的科学方面的问题,也被项目管理人员经常使用。

MCM优点:

1)算法简单,省却了繁复的数学推导和演算过程,使得一般人也能够理解和掌握;

2)适应性强,问题的几何形状的复杂性对它的影响不大;

3)速度快,该方法的收敛性是指概率意义下的收敛,因此问题维数的增加不会影响它的收敛速度;

4)存贮少,处理大型复杂问题时的存贮单元很省。

MCM缺点:

如果输入一个模式中的随机数并不像设想的那样是随机数,而却构成一些微妙的非随机模式,那么采用蒙特卡罗方法求解问题的结果有可能是错的

MCMGA比较:

蒙特卡罗方法MCM与遗传算法GA请参加公众号“科技优化生活”-人工智能(28))等智能优化算法有相似之处,都属于随机近似方法,都不能保证得到最优解等,但它们也有着本质的差别。1)层次不一样,MCM只能称之为方法,GA则属于仿生智能算法,比MCM要复杂得多。2)应用领域不同,MCM是一种模拟统计方法,如果问题可以描述成某种统计量的形式,那么就可以用MCM来解决;而GA等则适用于大规模的组合优化问题,以及复杂函数求最值、参数优化等。

人工智能之蒙特卡罗方法(MCM)

结语:

蒙特卡罗方法MCM也称统计模拟方法,是以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特卡罗方法MCM通过构造符合一定规则的随机数来解各种实际问题。在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)以及人工智能之机器学习等领域应用广泛。

原创:张志荣

声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号