深挖围棋AI技术:alphaGo在下一盘什么棋?(上)
他们的CNN增加到了12层,feature也有所增加,下面是他们使用的feature。 第一组feature是棋子(Stone)的颜色,和之前一样。 第二组是棋子(所在group)的气,用4个plane来表示,分别是1,2,3 >=4口气。 第三组是走了这步棋之后的气,用了6个plane,代表1,2,3,4,5,>=6口气。 第四组表示这个走法在当前局面是否合法。 第五组表示这个棋子距离当前局面的轮次,比如上一步对手走的就是1,上上一步自己走的就是2。因为围棋很多都是局部的战役,所以这个feature应该是有用的。 第六组就是表示走这这后能吃对方多少个棋子。 第七组表示走这能否征子成功。 第八组feature比较有趣,按照作者的说法就是因为KGS的对弈水平参差不齐,如果只留下高手的对局数据太少,所以用这个feature。 他们在KGS数据上的预测准确率达到55%。相对于Clark等人的工作,Maddison的工作除了增加了CNN的层次(8到12),增加的feature应该是很有帮助的,比如Turns Since,Capture Size和Ladder Move。尤其是Ladder Move,下过围棋的都知道征子能否成功对应是否要走这步棋已经局部的计算非常重要。 根据他们的使用,人类6d的预测准确率也只有52%,所以从预测走法的角度来说,CNN的水平已经达到了6d的水平。 另外他们还做了实验,证明Clark那些用来保证symmetry的tricky并没有什么卵用,直接简单粗暴的把数据做symmetric变换后训练就行了。 完全不用搜索直接用Move Prediction的结果下棋,能97%的比率战胜GnuGo(这个是完全基于alpha-beta搜索的),作者并没有说明只用Move Prediction的绝对水平,而只是和很差的GnuGo比较,所以应该水平不怎么样。 加上MCTS之后他们的水平能达到主流MCTS的开源软件如Pachi何Fuego的水平。当然CNN的预测相对于Simulation来说是很慢的,他们的GPU(4个GeForce GTX Titan Black)评估128个局面需要0.15s,而CPU(16 Intel Xeon E52643 v2 3.5GHz)每秒可以simulation 47,000个局面。所以他们使用了异步的策略,先用先验知识给出一个节点的N(v),Q(v),先搜索着,等GPU运算完了再用CNN预测的胜率更新这些统计量。因此CPU和GPU的速度需要能大致匹配。 Yuandong Tian & Yan Zhu(2015)和Google DeepMind进行围棋竞赛的主要就是Facebook Tian yuandong他们了。在Google宣布文章在Nature发表的前一天,他们在arxiv上发表了自己的工作。 下面我们来看看他们的工作(《Better Computer Go Player with Neural Network and Long-Term Prediction》)。 使用的feature: 除了使用之前工作的标准feature之外,他们增加了一些feature,比如是否边界,距离中心的远近,是否靠近自己与对手的领土(不清楚怎么定义领土的归属的)。此外对于之前的feature也进行了压缩,之前都把特征分成黑棋或者白棋,现在直接变成己方和对手,这样把模型从两个变成了一个(之前需要给黑棋和白棋分别训练一个模型)。此外的一个不同地方就是类似于Multi-task的learning,同时预测未来3步棋的走法(而不是1步棋走法)。 为了与Maddison的工作比较,这里只用了标准的features,比较的也是未来1步棋的准确率,可以发现这个方法还是有效的(不过我个人觉得作者应该自己复现Maddison的结果而不是直接用他的结果) 只使用DCNN的围棋软件(不用MCTS搜索) darkforest: 标准的feature,一步的预测,使用KGS数据 darkforest1:扩展的feature,三步预测,使用GoGoD数据 darkforest2:基于darkforest1,fine-tuning了一下参数。 把它们放到KGS上比赛,darkforest能到1k-1d的水平,darkforest1能到2d的水平,darkforest2能到3d的水平【注:KGS的3d应该到不了实际的业余3段】,下面是具体的情况。 Tree Policy: 走法首先通过DCNN排序,然后按顺序选择,除非累计的概率超过0.8或者超过一定次数的top走法。Expansion使用的UCT算法。 Default Policy:参考的Pachi的tree policy,有3*3的pattern,对手打吃的点(opponent atari point),点眼的检测(detection of nakade points)等。 这个版本的软件叫darkforest3,在KGS上能到5d的水平。 弱点DCNN预测的top3/5的走法可能不包含局部战役的一个关键点,所以它的局部作战能力还比较弱。 对于一些打劫点即使没用,DCNN还是会给高分。 当局面不好的情况下,它会越走越差(这是MCTS的弱点,因为没有好的走法,模拟出来都是输棋,一些比较顽强的抵抗的走法不能走出来)。 从上面的分析可以看出:DCNN给出的走法大局观还是不错的,这正是传统的方法很难解决的问题。局部的作战更多靠计算,MCTS会有帮助。但是我个人觉得MCTS搜索到结束,没有必要。一个局部的计算也许可以用传统的alpha-beta搜索来解决,比如征子的计算,要看6线有没有对手的棋子,另外即使有对手的棋子,也要看位置的高低,这样的计算DCNN是没法解决的,需要靠计算。 AlphaGo终于轮到主角上阵了,您可能不耐烦了。不过有了前面的基础,理解AlphaGo就容易多了,这里我们主要分析AlphaGo的创新点。 Policy Network & Value Network上图是AlphaGo所使用的两个网络以及训练过程。和之前的工作比,除了Policy Network之外,AlphaGo多了一个Value Network。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |