【人工智能Alphago背后的秘密】全网最全面的蒙特卡洛树搜索算法讲解:系统、简洁、易懂!

本文力求做到系统、准确、简洁、易懂的讲解蒙特卡洛搜索树算法,为此参考了大量资料和文章。

前言

人工智能Alphago,成为最顶尖的围棋大师,不由得让人产生探索它背后的算法的兴趣。

在搜索空间巨大的围棋问题中,Alphago是通过什么算法能在较短的时间搜索每一个局面的(近似)最优解?

Alphago使用的算法如下:

  • 蒙特卡洛树搜索
  • 残余卷积神经网络 - 用于游戏评估和移动先验概率估计的策略和价值网络
  • 用于通过自我游戏训练网络的强化学习

蒙特卡洛树搜索的适用范围

蒙特卡洛树搜索算法本质上是一种启发式搜索算法。

通过蒙特卡洛方法设计出较为准确的估价函数,使得问题在仅需迭代较少的次数就能得出(近似)最优解。

通常,在博弈问题中可以采用蒙特卡洛数搜索。

对于以下情况特别适用:

  • 搜索空间特别大。
  • 难以采用传统方法(如:dp,贪心)直接设计出特别通用的估价函数(比如围棋)。

蒙特卡洛树搜索的作用

要先明确算法有什么作用:

蒙特卡洛树算法用于求当前局面如何决策是最优的。

在围棋中,每次再对手走完一步新局面产生的时候,都要重新运行蒙特卡洛树算法找出面对当前局面自己的最优解。

算法流程

前置:蒙特卡洛方法

用途:评估当前局面选取哪个决策最优

以围棋为例,难以直接用传统的dp,贪心等方法设计出估价函数。

这时可以采用蒙特卡洛方法:

对于每个局面,随机轮流走棋,直到最后定出胜负。

在随机走大量次数的时候,取获胜次数最多的。

这时一个正确性难以保证的伪算法:

对于某个局面的某步决策,如果对方有几乎所有情况都将处于劣势,但是只要有一种情况必胜,那么这样的决策是绝对不可能采取的。

但是直接采用上面的蒙特卡洛方法恰恰容易采取这样的决策,因为这种决策胜率特别高。


流程

算法的设计思路:

类似人的下棋思维,在考虑

你可能感兴趣的:(算法,ai,剪枝)