您的位置:首页 > 编程语言 > Go语言

AlphaGo算法框架解读

2016-06-07 22:17 330 查看
AlphaGo算法框架解读



Author: L. Chen, UoS

1. Introduction:

如图1,在围棋中,每一步棋,从State K到State K+1都有很多种走法(move)。



在信息完整的情况下,在棋局的每一步,计算机可以使用穷举法,自己与自己下棋(self-play),尝试每一个选择,模拟所有可能的完整战局,观察结果,然后选出最佳走法。显然,就围棋而言,穷举法的计算量极其庞大,目前的计算机会很吃力。

对于信息完整的棋局,都会存在某个测量函数(value function), 可以根据每一个state下的每一个move算出整个战局的结果,并以V(value)表示。也就是,把state和move输入给测量函数,就能得到一个V值输出。那么穷举法就是在每个State,算出每个move的V值,然后对比选出最佳的move。

2. AlphaGo的基本思路:

从以下两个方面减少穷举法的穷举空间,减少计算量,以更快地选出最佳走法。

(1) 在每一步(state),依据一个决策P(policy),只筛选出部分move来计算。

(2) 对于每一个move,用一个测量函数(value function)来近似地算出相应的V值,而非穷举整个战局。

在AlphaGo的算法中,决策P和测量函数(value function)分别被两个深度卷积神经网络(deep convolutional neural network)替代,这是AlphaGo贡献的核心内容。

3. 神经网络的训练:

3.1 决策P(policy network):

Step 1: 拆解大量专业棋手的棋局过程,把每一个state及相应的每一个move,都存为数据。整个棋盘可以视为分辨率为19×19的图像,则每个state都是一幅图像,move可以编码为图像上的相应位置或者某个数值。

Step 2: 把不同的state作为data,把相应的专业棋手选择的move作为label,输入神经网络,对网络进行训练。

Step 3: 当policy network训练成功后,称为SL Policy(supervised learning policy),每次输入一个state, 就会输出一个概率分布。这个概率分布表示,在所有符合规则的move当中,每个move是专业棋手走法的概率。概率越大,表示某个move越可能是专业棋手的走法。

Step 4: 计算机使用SL policy模拟完整的战局,也就是,从开始到结束,对峙双方使用同一个policy来下棋(self-play)。

Step 5: 模拟大量的战局,并重复Step 1, Step2 和Step 3,得到强化训练后的神经网络,称为RL Policy(Reinforcement Learning policy)。

3.2 测量函数V(value network):

Step 1: 计算机使用RL Policy自己与自己下棋(sel
4000
f-play), 模拟大量的战局,记录相每个state、相应的move,以及战局结果,战局结果被编码成一个数值。

Step 2: 用这些数据去训练value network。当network训练成功后,输入一个state,它会输出一个对战局结果的预测值。例如,在state_0时,选择了move 1, 则棋局变为state_1,把state_1输入网络,就可以预测到如果选择move 1的战局结果。

4. AlphaGo下棋过程:

假设棋局来到了某个state_N,轮到AlphaGo下,它会做以下操作:

Step 1:使用训练到的policy network和value network自行大量模拟后面的战局(Monte Carlo Simulation)。在模拟时,执行使action value Q最大的move,action value由policy和V值的某种组合计算出来。记录state_N下每个move被执行的次数。

Step 2: 选择在模拟中被执行次数最多的move,下棋。

Reference:

[1] Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., van den Driessche, G., … Hassabis, D. (2016). Mastering the game of Go with deep neural networks and tree search.Nature,
529(7587), 484–489. http://doi.org/10.1038/nature16961
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CV ML 算法 框架