首发于远东轶事

关于围棋AI的新思路

时隔两年,又找到了赶文章的感觉,17号坐飞机从加州飞回匹兹堡,身在万米高空还在跑实验改文章,飞机上的网络实在是破得可以,接了VPN登陆到公司机器,按一个字符都要等半秒钟才看到回显,但是亏得前一天晚上写了个好使的分布式框架,又有协作者@Yan Zhu 的帮忙,真正能做到改几行脚本就启动百台机器跑想要的实验。什么是生产力,这就是生产力。

努力终于有了回报,我们用深度学习做智能围棋的文章终于在arXiv上公开了,链接见arxiv.org/abs/1511.0641。这篇文章同时已投稿至ICLR 2016,中心思想是使用深度学习模型来训练AI走下一步,就能使AI达到KGS Go Server上1d-2d的水平,比去年Google DeepMind团队发布出的性能要好不少(见arxiv.org/abs/1412.6564)。再加上传统的蒙特卡洛树搜索,棋力能更上一层楼,当然,我们现在离最好的软件(比如说天顶,银星)还有相当的差距。

在此之前,11月初已有一系列关于这个项目的媒体报道(Facebook进军智能围棋 欲造新深蓝击败人类)。不过我们的目标并非如媒体所说要战胜顶尖职业棋手,而是借着这个平台来研究传统人工智能(如搜索)和深度学习的结合点。成为”新深蓝“听起来宏伟,但容易陷入为变强而变强的困局,通过打各种补丁以达成一点点的性能提升,并非是我们所要的。一个好的研究课题,应当是在立意时就超越以往方法,而非费尽力气比别人高几个点。

我们一直以来说围棋很难,理由是围棋有着天文数字一样的对局可能性,让搜索无从进行。但这不是围棋困难的唯一原因,大量的问题同样有天文数字一样的穷举复杂度,但是因为估值函数的结构相对简单,所以贪心法,动态规划等就可以得到最优解,而不用穷尽解空间。围棋不是这样,它对盘面的估值函数非常复杂,是棋手通过大量的经验积累而成的直觉,不能用一两个原则简单概括。以前的围棋程序通常将这些直觉总结成一些规则和公式以辅助搜索,这就要求写程序的人有较高的棋力和总结能力,但就算如此,人力毕竟有时而穷,规则的数目上去了之后,调节各规则之间的权重就成为非常累人的工作,往往耗去了大量的时间之后,还离真正的直觉很远(如果大家有兴趣去看开源围棋软件Pachi或者Fuego的代码,就会发现里面的参数之多出乎想像)。深度卷积网络的出现,让通过大量数据直接学习这种直觉成为可能,从而在这个无法搜索并且无法估值的无解问题上撕开一个口子。

当然,“撕开口子”和“解决问题”之间,还差着十万八千里,现有的深度学习框架需要大量数据进行训练,因此对于一些少见的情形效果不好。像我们训练的这个网络,虽然被KGS上的朋友评论为”感觉上和真人在下“,”大局观非常好“,但碰到征子这种初学者都会的局面时,有时还是无所适从(笑)。另外局部战斗的计算也有很多可以改进的地方。我们当然可以加些简单规则以应付大多数征子和一些局部战斗的情况(要全部覆盖那是很难的),这样棋力当然变强,但却违背了用一个比较干净的模型去解决问题的初衷。历史上无数的例子证明,这种方式在将来能走得更远。

将来我们希望通过对网络的分析,能够明白神经网络的学习和决策的过程,看它如何总结,如何应用大量的经验给出下一步。在明白了它的学习思路后,希望能找到进一步改进的方案。比如说人可以从死活题中学到很多东西,并且举一反三地应用到实战中,人看过几盘棋就知道问题在哪儿,并且因此改变自己的应对方案。对此,神经网络能不能做到?另外,人虽然不如机器那样能同时进行海量搜索,但人在应对没见过的局面的时候,仍然会进行推演,将过去的经验“以某种方式”重新组合以应对当前局面,虽然没推几步,但效率比暴力盲目搜索要高多了。长期的由经验习得的模式识别能力,加上在线的高效推演(搜索),可能是解决小样本问题的一把钥匙,同时,推演本身暗含着逻辑,有逻辑的人凭直觉做的推演一般是对的,并且能用逻辑去验证自己的推演过程,找到可能的漏洞以改进;而没逻辑的人在推演时,只会盲目地寻找下一步,走到哪里算哪里。深度学习是否能做到这一点,值得进一步探究。

最后,大家如果有兴趣的话,可以去KGS Go Server和我们的两个AI下几局,他们的名字叫darkforest和darkfores1(笑),更强的darkfores2和基于蒙特卡洛树搜索的改进版会在之后陆续放出。

多谢关注。

==============================

更新及一些问题的回答:

1. 目前在KGS上三个AI都已经放上去了。darkforest是1d,darkfores1是2d,新放的darkfores2在2d和3d间波动,有一次上了4d。总的来说这些AI比较神经刀,能干掉5d也能输给4k,不用搜索,在有些局面下的弱点很明显。尽管如此,KGS上大家纷纷表示对于一个完全不用搜索只凭“感觉”下的AI来说,已经是史无前例了。

2. 目前为止,我们的方法比爱丁堡大学和DeepMind的现有结果好很多;更重要的是,我们公开了对战接口,并在网络平台上与人类棋手进行了实际对战,这使得我们论文的结果更加坚实可信。

3. 源码暂时不会公开,所有数据集都是从网上采得,完全是公开的,欢迎大家重现我们论文中的方法。我相信会有更好的文章出来。

4. 取名darkforest因为我是《三体》的粉丝。而黑暗森林是个人最欣赏的一部。

5. 我们组做围棋的现在有两个,全职的就我一个,主要算法和九成以上的程序都是我亲自操刀的,包括高效走子,神经网络训练和蒙特卡洛树搜索。

编辑于 2015-11-27

文章被以下专栏收录