浅谈MasterGo中的蒙特卡洛算法

新知榜官方账号

2023-06-30 18:36:58

什么是蒙特卡洛算法?

蒙特卡洛算法是一种在海量样本中找到最佳解决方案的算法,它无法保证找到的是最好的方案,但是样本越多,越能找到最佳的解决办法。通俗的解释:假设你需要从1000个苹果中挑出最大的一个苹果,你可以闭着眼睛每次只拿一个,不限制挑选次数。于是,你开始随机的逐一比较,每次比较后留下大的苹果,如此循环往复,拿的次数越多,挑出最大苹果的可能性也就越大。但除非你把1000个苹果都挑一遍,否则你无法确定最终挑出来的就是最大的苹果。在蒙特卡洛算法中,样本越多越能找到最佳的解决办法,不过不能保证是最好的方法。

与蒙特卡洛算法相对的是拉斯维加斯算法:假设你需要开一把锁,有1000把钥匙可供选择,但只有1把能把锁打开。于是你每次随机拿1把钥匙去尝试,直到打开为止。尝试的次数越多,打开锁的机会就越大,但在打开之前,那些错的钥匙都是没有用的。所以,拉斯维加斯算法要求尽量找到最好的解决办法,但是未必能找到。

MasterGo中的蒙特卡洛算法

MasterGo中的蒙特卡洛算法“机器人”与围棋高手的对决,曾被称为人工智能的“阿波罗计划”。传统的棋类软件,包括IBM战胜世界国际象棋冠军的深蓝计算机,一般都是采用暴力搜索,对所有可能的结果进行搜索。这种方法在象棋、跳棋等方面具有一定可实现性,但对于围棋就无法实现。MasterGo则通过蒙特卡洛树搜索算法和策略网络、估值网络这两个深度神经网络合作来完成下棋。

策略网络主要用于生成落子策略,在下棋的过程中,它不是考虑自己应该怎么下,而是学习人类的高手会怎么下。也就是说,它会根据输入棋盘当前的一个状态,预测人类下一步棋会下在哪儿,提出最符合人类思维的几种可行的下法。然而,策略网络并不知道落子的这步棋到底下得好还是不好,这时候就需要估值网络来发挥作用了。估值网络会为各个可行的下法评估整个盘面的情况,然后给出一个“胜率”,这些值会反馈到蒙特卡洛树搜索算法中,通过反复如上过程推演出“胜率”最高的走法。蒙特卡洛树搜索算法决定了策略网络仅会在“胜率”较高的地方继续推演,这样就可以抛弃某些路线,不用一条道算到黑。利用这两个工具来分析局面,MasterGo就能判断每种落子策略的优劣,就像人类棋手会判断当前局面以及推断未来的局面一样;在利用蒙特卡洛树搜索算法分析了比如未来20步的情况下,就能判断在哪里下子赢的概率会高。这就是MasterGo中的蒙特卡洛算法。

总结

蒙特卡洛树搜索算法是在海量样本中找到最佳解决方案的算法,它是MasterGo的核心之一。通过策略网络和估值网络的协作,MasterGo能够判断每种落子策略的优劣,从而在蒙特卡洛树搜索算法中找到“胜率”最高的走法。这种算法能够大幅降低运算量,并判断在哪里下子赢的概率会高。

预告:下一期,我们将为你介绍什么是强化学习和迁移学习。如果你感兴趣,请留意关注微信公众号:智能加研究院。

本页网址:https://www.xinzhibang.net/article_detail-3401.html

寻求报道,请 点击这里 微信扫码咨询

关键词

MasterGo 蒙特卡洛算法 人工智能

分享至微信: 微信扫码阅读

相关工具

相关文章

相关快讯