拉斯维加斯方法和蒙特卡洛方法简介(二)

拉斯维加斯方法和蒙特卡洛方法简介(二)

首页休闲益智蒙特难题更新时间:2024-05-07
前言

在上一篇文章中,我们对拉斯维加斯方法做了一些简单的介绍。本文我们就来介绍以另一个赌城命名的方法:蒙特卡洛方法。在互联网时代,蒙特卡洛方法的大名只在拉斯维加斯方法之上,不在其下。

蒙特卡洛方法和拉斯维加斯方法都是随机化方法,通俗来说都是在赌。拉斯维加斯方法一定可以得到正确的结果,赌的是得到结果的时间,运气最好的时候一次就能得到结果,运气最坏的情况是变成穷举法。而蒙特卡洛方法却恰恰相反:时间是可控的,赌的是计算结果的可信程度。

蒙特卡洛方法简介

蒙特卡洛方法的基本思路是:通过大量的随机抽样去推测结果,样本容量越大,接近正确结果的概率就越大,在完全采样之前,无法获知正确的结果。

换句话说,蒙特卡洛方法就是一种管中窥豹,用部分抽样去推测结果的思想。在计算机领域,尤其是在大数据和人工智能的时代,很多时候我们是无法进行全量采样或者遍历全部策略分支的,因此蒙特卡洛方法在很多领域都有广泛应用,比如说这几年最火的深度学习领域,在阿尔法狗的实现过程中,就采用了蒙特卡洛方法的思想。

应用之一:计算定积分

微积分是贯穿整个高等数学课程的一大Boss,也是无数学生的噩梦。蒙特卡洛方法最初也是最经典的应用之一,就是用来计算定积分。

如何用严格的数学方法来计算定积分不是本文重点,请读者自行参悟高等数学教材。传统的计算定积分方法,有一个大问题就是推导过程过于困难,尤其是随着函数复杂程度的提升,计算难度也成倍增长。

这个问题对非数学专业人士来说尤为突出,在物理、通信和计算机领域有很多函数非常复杂,然而研究人员又不得不去计算他们的定积分,有时精确推导某个定积分就得研究人员吭哧吭哧算一天,浪费了大量时间。

因此研究人员迫切需要一种快速求定积分的方法来避免节外生枝。于是,蒙特卡洛方法就在这种背景下诞生了。

前面说过,蒙特卡洛方法并不能得到准确的结果,但是采样越多,结果就越可靠。而在很多求定积分的应用场景中,也并不需要得到这个函数的准确值,而是精确到小数点后多少位就可以了。对这种需求,使用蒙特卡洛方法求定积分的函数如下所示(java实现):

代码很简单,其原理是在积分的上下界之间随机抽样去逼近定积分的正确结果,得到一个近似值。这段代码的本质上是下面这个公式:

其中n是样本容量。

这个公式的推导过程涉及到一些数学知识,有兴趣的读者可以自行查阅扩展资料,大部分情况下,使用人员只要掌握其应用即可。

应用之二:计算图形的面积

计算图形的面积是蒙特卡洛方法的另一个基本应用,也常常被用于讲解蒙特卡洛方法。

先来一张经典的图:

使用蒙特卡洛方法计算图形(上图中灰色的部分)的面积时,不一定要得知图像的确切方程,也不需要推导复杂的面积公式,只要满足一个条件,就可以推测图形的面积:任选一点,可以获知该点在图像内部还是图像外部。

就拿上图这个图形来说,包裹图形的正方形面积是1.0*1.0=1,那我们就在这个正方形中随机选取若干个点,看看有多少个点落在图形内,由此来推测灰色部分的总面积是:落在图形内的点数/总点数*正方形的面积。比如说,随机选取5个点,3个点在图形内,2个点在图形外,那我们就推测图形的面积是3/5=0.6。

进阶应用:蒙特卡洛树搜索

比抽样计算更复杂一些的应用是将蒙特卡洛方法略加调整后用于策略选择,大名鼎鼎的Alpha Go就使用了这种思想。

我们知道,围棋的策略选择是非常复杂的,如果采用穷举法的话,假如棋盘上剩余200个空格,那走一步棋至少需要计算200!种不同的策略才能遍历所有的策略分支,这个性能开销即使对现代计算机来说也是吃不消的。因此,在算法取得突破之前,很多年来围棋一直是人工智能难以攻克的堡垒。

蒙特卡洛树搜索的英文是Monte Carlo Tree Search,简称MCTS。MCTS是对蒙特卡洛方法的优化改进,是一种非常复杂的策略,需要很多前置知识。限于篇幅,本文不对MCTS做详细的说明,简单介绍一些基本概念。

围棋是一种两人参与的零和博弈——即总是一胜一败,不存在双赢可能。而针对围棋这种回合制游戏,MCTS的流程可以使用下图这样的策略树来表示:

基本的MTCS算法,大致就是构造搜索树完成搜索策略的过程,基本流程包括几个步骤:

选择(selection):从根节点root开始递归遍历,选择最优子节点L。

扩展(expansion):如果L是终止节点——即导致博弈结束的节点,那么本轮搜索结束。如果不是,继续构建子节点。

模拟(simulation):从新构建的子节点运行模拟,直到博弈结束。

回溯(backpropagation):用模拟结果更新行动序列。

蒙特卡洛树搜索不同于深度优先和广度优先的搜索,有些像启发式搜索。但是不同于传统的搜索算法需要计算完所有后续步骤才做决策的方式,蒙特卡洛树搜索给出的并不是绝对全局最优策略,而是一个局部化最优的评估,这就大大提升了算法的效率。

小结

当今计算机行业最火的领域是深度学习,蒙特卡洛思想在其中扮演了重要角色。了解一些蒙特卡洛方法的基础知识,对理解深度学习也有一些帮助。

在这两篇文章中,作者很粗浅地介绍了一下拉斯维加斯方法和蒙特卡洛方法这两种随机化方法。随机化在计算机领域是一种很重要的思想,在大数据和人工智能的时代可以说无处不在。希望这两篇文章可以起到抛砖引玉的作用,给读者一些启发。

,
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved