蒙特卡洛树和alpha go

对Alpha-zero很感兴趣,所以耐心阅读了mastering the game of go without human knowledge 
Deepmind 官网的介绍:AlphaGo Zero: Learning from scratch 
在阅读的过程中,对蒙特卡洛树搜索算法不甚了解,下面翻译了youtube上一位英国教授的网络课程视频。

蒙特卡洛树搜索(MCTS)算法

MCTS算法是一种决策算法,每次模拟(simulation)分为4步: 
1. Tree traversal: 
UCB1(Si)=Vi¯¯¯+clogNni,c=2  
其中, Vi¯¯¯ 表示 Si 状态的平均value(下面会进一步解释) 
2. Node expansion 
3. Rollout (random simulation) 
4. Backpropagation

步骤1,2的流程图如下:

步骤1,2的流程图如下:

步骤3 Rollout 的细节:

Rollout(S_i):
    loop forever:
        if S_i is a terminal state:
            return value(S_i)
        A_i = random(available-actions(S_i))
        S_i = simulate(A_i,S_i)
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

讲一个具体的例子:

  1. 树的初始状态: 
    T 表示总的 value, N 表示被访问的次数(visit count)。A表示动作(action).

这里写图片描述

第一次迭代(iteration)

从状态 S0 开始,要在下面两个动作中进行选择(假设只有两个动作可选),选择的标准就是 UCB1(Si) 值。显然可算得:

UCB1(S1)=UCB1(S2)=

这种情况下,我们就按顺序取第一个,即 A1 。从而,达到状态 S1

按照步骤1,2的流程图,我们现在需要判断目前的结点 S1 (current node)是不是叶节点,这里叶节点是指其没有被展开(expansion)过。显然,此结点没有被展开过,所以是叶节点。接下来,按照流程图,需要判断结点 S1 被访问的系数是否为0。是0,所以要进行Rollout。

Rollout其实就是在接下来的步骤中每一步都随机采取动作,直到停止点(围棋中的对局结束),得到一个最终的value。

假设Rollout最终值为20.

这里写图片描述

接下来,进行步骤4 Backpropagation,即利用Rollout最终得到的value来更新路径上每个结点的T,N值。

这里写图片描述

之后把Rollout的结果删除:

这里写图片描述

MCTS的想法就是要从 S0 出发不断的进行迭代,不断更新结点值,直到达到一定的迭代次数或者时间。

第二次迭代

我们从 S0 出发进行第二次迭代(iteration):

首先,计算下面两个结点 S1,S2  的  UCB1 值: 

UCB1(S1)=20    UCB1(S2)=

所以,选动作 A2 ,从而达到状态 S2

同上,现在要判断结点 S2 是否是叶结点。是,所以继续判断其被访问的次数。是0,所以进入Rollout, 假设Rollout最终值为10.

这里写图片描述

之后进行Backpropogation:

这里写图片描述

第三次迭代:

首先,计算UCB1值:

UCB1(S1)21.67   UCB1(S2)11.67

执行动作 A1 ,进入状态 S1 。 
是否是叶节点? 是。 
被访问次数是否为0?否。 
按照流程图所示,现在进入Node expansion步骤。同样假设只有两个动作可选。

这里写图片描述

选择 S3 进行 Rollout,假设Rollout最终值为0.

这里写图片描述

更新路径上每个结点的值,之后删除Rollout的值:

这里写图片描述

第四次迭代

首先,计算UCB1值:

UCB1(S1)=10+2log3211.48   UCB1(S2)12.10

选择 A2 ,进入状态 S2 , 接下来和第三次迭代一样的步骤:

这里写图片描述

更新路径上的结点:

这里写图片描述

假设我们设定最大迭代次数为4,则我们的迭代完毕。这时,利用得到的树来决定在 S0 处应该选择哪个动作。根据UCB1值,显然我们要选择动作 A2 .

以上就是MCTS的过程,是翻译自youtube.

以上内容如有错误,皆由博主负责,与youtube上教授无关。



以上是最简单的蒙特卡洛树,关于alpha的改进主要有几点。

1、在expand的时候使用概率进行选择

2、得到value的值的时候,使用两个神经网络分别得到,都是人类的知识。

3、为了并行计算,将选择过的路径值+3.进行锁住

### 回答1: Alpha MasterAlphaGo是由DeepMind开发的两个人工智能程序,它们有以下区别: Alpha Master是一个围棋AI程序,是DeepMind在2019年开发的最新围棋AI,其设计目的是要超越AlphaGoAlpha Master不仅在计算能力上比AlphaGo更强,而且还采用了一些新的算法技术,可以更好地应对围棋的复杂性不确定性。 AlphaGo是DeepMind在2016年开发的围棋AI程序,它是第一个在围棋领域战胜人类职业选手的人工智能。AlphaGo采用了深度神经网络蒙特卡洛树搜索等先进技术,成为了人工智能领域的一个里程碑。它的成功也推动了人工智能在其他领域的发展应用。 ### 回答2: Alpha MasterAlpha Go是两个不同的人工智能项目。 Alpha Master是由DeepMind开发的计算机程序,旨在成为围棋领域的专家级程序。它通过机器学习深度神经网络来不断提升自己的棋艺水平。Alpha Master在人类围棋专家中表现出色,并且在多次对决中击败了多名职业围棋选手。与Alpha Go不同,Alpha Master专注于围棋领域,其目标是成为顶级的围棋程序。 相比之下,Alpha Go是DeepMind开发的更广泛的人工智能项目,它不仅擅长围棋,还在其他领域取得了巨大的成功。Alpha Go是通过大规模强化学习深度神经网络来学习发展自己的游戏策略。Alpha Go在2016年击败了世界围棋冠军李世石,引起了广泛关注。该项目随后发展成为Alpha Go ZeroAlpha Zero,这些更高级别的版本使用了更先进的技术,并取得了更加令人瞩目的成就。 总的来说,Alpha MasterAlpha Go是两个不同的计算机程序,它们的差别在于应用领域取得成就的范围。Alpha Master专注于在围棋领域成为顶级程序,而Alpha Go则是在围棋以外的领域取得了广泛成功的更全面的人工智能项目。 ### 回答3: Alpha MasterAlpha Go是两个不同的人工智能项目,这两个项目之间有一些区别。 首先,Alpha Master是一个针对棋类游戏的人工智能项目,而Alpha Go则是专注于围棋的人工智能项目。Alpha Master主要在中国象棋、国际象棋日本将棋等棋类游戏中进行训练对弈,而Alpha Go则专门处理围棋棋局。 其次,这两个项目的算法技术也有所不同。Alpha Master在开发过程中采用了蒙特卡洛树搜索强化学习等技术,而Alpha Go则使用了深度神经网络强化学习,其中深蓝网络是其中的一项重要技术。这些不同的技术选择使Alpha MasterAlpha Go在处理问题时具有不同的优势能力。 另外,Alpha Go在2016年引起了广泛关注,因为它在与围棋世界冠军李世石的比赛中获得了胜利,这被认为是人工智能领域的一个里程碑。而Alpha Master在中国的象棋世界中也有一定的声誉,但它在国际上的知名度相对较低。 总的来说,虽然Alpha MasterAlpha Go都是人工智能项目,但它们之间有不同的应用范围、算法技术,并且在知名度影响力上也存在一定的差异。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值