加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长资讯 > 评论 > 正文

AlphaGo 的棋局,与人工智能有关,与人生无关

发布时间:2016-03-11 05:30:10 所属栏目:评论 来源:爱范儿
导读:1997 年中考后的暑假在姑父公司的机房第一次接触电脑,当时应该是 80386 的微机。学习电脑就是学习 DOS 命令和打字,完全不懂干什么用的,打字尤其是五笔字型,更是学得头

最早用 CNN(当然还有用其它机器学习方法)来预测走法是 2003 年 Van Der Werf 等人的工作,他们用了很多手工构造的 feature 和预处理方法,他们取得了 25%的预测准确率。没有细看论文,在 2006 年 Deep Learning 火之前,所以估计网络的层次很浅。

Sutskever & Nair(2008)

之后在 2008 年,这个时候 Deep 的神经网络已经逐渐流行了。Sutskever & Nair 用来 2 层的 CNN,第一层有 15 个 7*7 的 filter,第二层用了 5*5 的 filter,最后用了一个 softmax 层,输出 19*19,表示每个可能走法的概率(当然需要后处理去掉不合法或者不合理的走法,比如违反棋规的打劫局面立即提回,或者在自己的眼里下棋)。他们得到了 34%的预测准确率。不过有一点问题就是他们出来使用当前局面,还用了上一步走法(这个走子导致了当前局面,也就是对手的上一步走子),这个可能是有问题的,因为实际对局时对手的水平是不能确定的,用这个 feature 当然能提高“数字”上的准确率,但是对于下棋水平是否有负面影响是很难说的。

Clark & Storkey(2015)

到了 2015 年,计算机的计算能力更强,深度神经网络的层次也越来越深,在围棋领域也能看到这种趋势。Clark & Storkey 使用了 8 层的 CNN,用的特征包括最原始的棋子(用了 3 个 feature plane,表示 361 个点是黑棋/白棋/空白),ko(劫)的约束,一个 group(块)的气。包括使用很多 trick 来保证 symmetries(因为围棋的局面旋转 90/180/270/360 度后以及做 180 度的镜像之后应该是一样的)。他们在 GoGoD 数据上的预测准确率达到了 41.1%,在 KGS 数据上的准确率达到 44.4%。GoGoD 上大部分是职业选手的对局,而 KGS 数据有很多业余高手的对局。

Maddison 等(2015)

光是预测准确率,并不能说明下棋的水平。因此 Maddison 等人的工作把 Move Prediction 用到了实际的对弈当中。

他们的 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 上发表了自己的工作(https://www.zhihu.com/topic/20038840)。

下面我们来看看他们的工作(《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 了一下参数。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读