AlphaGo Zero是如何工作的?——AlphaGo Zero背后的强化学习算法原理

  Deepmind公司的AlphaGo算法是第一个打败人类选手的围棋程序。2016年三月,打败李世石的是AlphaGo Lee,一个靠大量人类围棋专家的棋谱进行监督学习和自对弈强化学习进行训练的AI程序。不久之后,deepmind的新论文展示了不同于之前AlphaGo的全新网络结构——它仅仅用了三天的自对弈强化学习而无需人类的下棋经验就以100-0的战绩打败了AlphaGo。它就是大名鼎鼎的AlphaGo Zero。这篇文章将介绍AlphaGo Zero背后的算法原理。

其他资料可以参考我的另外两篇
一张图读懂AlphaGo Zero背后的强化学习算法原理
AlphaGo Zero强化学习简易教程

蒙特卡洛树搜索

  蒙特卡洛树搜索(Monte Carlo Tree Search)可以说是棋类游戏机器人的入门级算法了。它适合处理离散的、确定性的、完全信息的(perfect information,也就是双方都能看到完全的棋局状态)棋类游戏。当一个机器人开始下棋,最简单的方法就是把所有可能的结果全部尝试一遍,这样就能得到对手所有可能的应对措施,以及下一步应该走哪等等。但是像围棋这样的游戏,动作搜索空间将随着棋局的进行变得越来越庞大,以至于暴力穷举变得极不现实。而蒙特卡洛树搜索可以有选择地尝试它觉得不错的可选动作,如此就将大部分算力集中于最有可能性的走子方案上,使搜索变得高效。

在这里插入图片描述

  我们来具体地看一下MCTS的工作原理,以一字棋(tic-tac-toe)为例来说明。假设游戏的初始状态是 s 0 s_0 s0,轮到程序走子,走子的可选方案是一个动作集合 A A A。蒙特卡洛搜索树初始化为一个只含有单结点 s 0 s_0 s0的树。下面,搜索算法对状态 s 0 s_0 s0下的每一个可能的走子方案 a ∈ A a\in A aA都尝试一次,建立了五个子结点,分别是 s 0 , 1 , s 0 , 2 , s 0 , 3 , s 0 , 4 , s 0 , 5 s_{0,1},s_{0,2},s_{0,3},s_{0,4},s_{0,5} s0,1,s0,2,s0,3,s0,4,s0,5

在这里插入图片描述

接着从每个子结点出发,采用随机走子策略完成当前棋局(rollout),确定 s 0 → s 0 , i s_0 \rightarrow s_{0,i} s0s0,i的动作价值。若MCTS算法一方赢得棋局,这个子结点记为 + 1 +1 +1,输掉为 − 1 -1 1,平局记为 0 0 0。(多说一句,如果从 s 0 , i s_{0,i} s0,i出发,经过足够多次simulation,则累计回报的平均值就可以评价这个状态 s 0 , i s_{0,i} s0,i的好坏了)

在这里插入图片描述

  我们假设从 s 0 , 1 s_{0,1} s0,1结点出发,赢得棋局,得到价值函数的估计值 + 1 +1 +1,但是这个值并不代表下一次走这个方案还会赢,它取决于从 s 0 , 1 s_{0,1} s0,1出发的rollout采取什么样的走子策略完成棋局。从子结点出发,可以采用完全随机的、非智能的走子策略,也可以采取更优秀的随机策略,也可以从 s 0 , 1 s_{0,1} s0,1直接估计价值函数(比如利用神经网络)。

在这里插入图片描述

  上图我们画出来从 s 0 s_0 s0根结点出发,探索了五个子结点的情况。每个结点存储两个变量:

  • N N N表示访问该结点 s 0 , i s_{0,i} s0,i或该结点的子结点 s 0 , i , j s_{0,i,j} s0,i,j的次数。也就是说,在该结点 s 0 , i s_{0,i} s0,i的子结点执行simulation的次数也要在信息回传过程中加到 N s 0 , i N_{s_{0,i}} Ns0,i上,我们之后会讲到回传是怎样进行的。

  • W W W代表累计回报值,将从该结点出发的所有simulation的回报值加起来就是 W W W

  当探索完子结点,就需要把子结点记录的信息回传给它的上级结点。如下图所示,子结点 { s 0 , i , ∣   i = 1 , ⋯   , 5 } \{s_{0,i},\mid \ i=1,\cdots,5\}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值